昨天它的基本概念等一些功能、来由、特点,希望大家可以反复查阅。在此我白天想到如今容器化技术越发火热,编排自动化也是重中之重,我也尽量多参考一些重点热门技术分享给爱学习的伙伴!!

说一点我预测未来的技术发展,我认为随着人工智能关于“深度、机器学习”发展越发成熟,“接入式AGI”将取代大多数关于自动化技术,且不用做复杂的计算资源整合再“容器化”

这个步骤其实是也浪费了一部分性能、资源。我们可以有个AI数据中台,实时记录业务对应资源,多种增强算法实现并代替人工和脚本式平台,也就不需要k8s,docker,我们只需要基础设施,类似于noService(计算资源等)
`

一、简述k8s核心组件原理及分类

从上面一篇文章最后我们可以看到架构图,分别是控制层面、工作节点上的组件,当然还有一些附加组件


1. 1 控制层面的组件

  • kubernetes API Server (API服务器)
    • 众所周知,提到api就是类似于HTTP RESTful接口,通过接口与各个模块组件之间的数据交互和通信,简单的一句话描述它是整个系统的数据总线和数据中心
    • 功能特性
      • 集群管理的API入口
      • 是资源配额的入口
      • 提供了完备的集群安全机制
  • Controller Manager (控制器管理器)
    在这里插入图片描述

    • 我们需要讲一个上帝视角,就像是现在流行的可视化面板、zabbix等监控技术用来给工程师们轻松看出问题发生在哪个角落,而这里引出一个比较特别的机制,它(list-watch)会实时通过API提供的接口实时监控集群中的特定资源。
    • 简而言之,它是各种资源对象的管理者,是集群内部的控制中心。

  • Scheduler (Pod调度器)
    在这里插入图片描述

  • 简单地说,就是通过调度算法调度为待调度Pod列表中的每个Pod从Node列表中选择一个最合适节点上的kubelet通过API Server监听到Kubernetes Scheduler产生的Pod绑定事件,然后获取对应的Pod清单,下载Image镜像并启动容器。
    看到这里相信大家会疑问Pod是什么,以及其他一些陌生词,没关系前期不懂,坚持看到后边的文章会有一种恍然大悟的感觉,这种感觉是美好的。
  • 调度流程
    • 1.通过内置的预选策略算法筛选出符合要求的候选节点
    • 2.再采用优选策略计算出积分最高的节点
  • ETCD (分布式持久化存储)眼熟它,后面几张大概会说到它

1.2 工作节点上的层面的组件

  • kubelet
    • 每个node节点上都会运行一个kubelet并在API注册自身节点信息和定期向Master汇报及监控(cAdviors)资源使用情况
    • 功能介绍
      • 节点管理
      • Pod管理
      • 容器健康检查
      • cAdviors资源监控
  • kube-proxy
    起初,kube-proxy进程是一个真实的TCP/UDP代理,类似HA Proxy,负责从Service到Pod的访问流量的转发,这种模式被称为userspace(用户空间代理)模式之所以叫这个名字是因为它确实就是一个代理器,不过当前性能更好的实现方式仅仅通过iptables规则重定向数据包到一个随机选择的后端pod,而不会传递到一个实际的代理服务器

1.3 附加组件

  1. Kubernetes DNS服务器
  2. 仪表板
  3. Ingress控制器
  4. Heapster(容器集群监控),将在第14 章讨论
  5. 容器网络接口插件

二、组件架构解析及原理

在一个太空探险的旅程中,有一个名叫K8的勇敢航天员。他的任务是到达一个遥远的行星,并为地球人建立一个可靠的殖民基地。为了成功完成这个任务,K8带着一支由不同种类的机器人组成的小队,这些机器人将协同工作来建设基地。

首先,K8带来了一个叫做Master的机器人。Master机器人是整个系统的大脑,它负责管理和监控基地的各个方面。Master机器人根据任务需求,将自身分成了三个部分,分别是API Server、Controller Manager和Scheduler。

API Server机器人是基地的信息中心,他负责接收和处理来自其他机器人的请求,并将它们指派给正确的机器人来执行。Controller Manager机器人是基地的规划师,他负责监控基地的状态,并根据需要做出相应的调整。Scheduler机器人是基地的分配器,他负责根据机器人的负载情况和资源需求,将任务分配给合适的机器人来执行。

接下来,K8带来了一些名叫Node的机器人。Node机器人是基地的工作者,他们负责运行和管理基地的各个组件。每个Node机器人上都有一个叫做kubelet的小机器人,它负责与Master机器人通信,向Master机器人报告自己的状态,并接收Master机器人分配的任务。除了kubelet机器人之外,每个Node机器人上还有一个叫做kube-proxy的机器人,它负责基地内部的网络通信。

最后,K8带来了一些名叫Pod的机器人。Pod机器人是基地的资源管理者,它们负责运行基地内的各个应用程序。每个Pod机器人包含一个或多个容器,每个容器都运行着一个独立的应用程序。Pod机器人通过与Node机器人的kubelet机器人通信,将自己的容器部署到合适的Node机器人上,并监控容器的状态。

在这个基地建设的过程中,K8不断地调度和管理各个机器人的工作,使得基地能够高效地运行。当有新的机器人加入基地时,K8会自动将其纳入系统,并为其分配相应的任务。当有机器人出现故障或失效时,K8会及时察觉并做出相应的调整,以确保基地的稳定运行。

最终,经过K8的努力和协调,基地顺利建设完成,并成为地球人的一个重要据点。K8也因此成为了宇宙中最受尊敬的航天员之一。

通过这个故事,我们可以将Kubernetes(简称K8s)的组件架构解析及原理比喻为一个太空探险的故事。

K8s的Master组件(API Server、Controller Manager和Scheduler)相当于基地的大脑负责管理和监控基地的各个方面。

而Node组件(kubelet和kube-proxy)相当于基地的工作者,
负责实际执行任务和协调工作。

Pod则是基地的资源管理者,负责运行和管理应用程序。
K8s通过不断调度和管理各个组件的工作,
使得整个系统能够高效运行,并随时应对各种情况的变化。

总结

明天继续深度解析组件原理,今天看完这个故事就睡觉吧,晚安!

各位看官遇到不理解的可以评论,或者哪里写的不好请赐教哈

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐