Kubernetes:基础的架构
kubernetes的一个简朴机构图形https://i-blog.csdnimg.cn/direct/10aaa915bc0143a0b9d76cba18b87df1.pngk8s 重要分为两个大结构 :
1 控制面:master 是集群的大脑和心脏
2 数据面:worker 重要在master 的指挥下进行工作,也称之为node
kubectl 是k8s的管理工具
我们可以使用kubectl get node来查察节点的状态 因为 Master 和 Node 的划分不是绝对的。当集群的规模较小,工作负载较少的时候,Master 也可以承担 Node 的工作
https://i-blog.csdnimg.cn/direct/7b6fb841479c409eb3f2b373b47225be.png
使用kubectl get pod 来查察pod的状态
https://i-blog.csdnimg.cn/direct/bd71adb393e54a49ba6a92c3a965c21f.png
master节点内部的结构
Kubernetes 的节点内部也具有复杂的结构,是由很多的模块构成的,这些模块又可以分成组件(Component)和插件(Addon)两类。
组件是k8s的核心功能的特性,而插件是一些附件的功能,是一些锦上添花的作用。
Master的组件构成有哪些?
apiserver 是 Master 节点,是整个 Kubernetes 系统的唯一入口,它对外公开了一系列的 RESTful API,而且加上了验证、授权等功能,全部的组件都必须通过apiserver来沟通。
etcd 是一个高可用的分布式 Key-Value 数据库,用来恒久化存储系统里的各种资源对象和状态,重要做K8S的设置。 任何其他组件想要读写ETCD 必须通过apiserver来实现
scheduler 负责容器的编排工作,查抄节点的资源状态,把pod调理到符合的节点来运行,因为节点状态和 Pod 信息都存储在 etcd 里,以是 scheduler 必须通过 apiserver 才能获得。
controller-manager 负责维护容器和节点等资源的状态,实现故障检测、服务迁徙、应用伸缩等功能。必须通过apiserver 获取etcd中的节点和资源状态来进行工作。
通过 kubectl get pod -n kube-system 我们可以查察组件的状态https://i-blog.csdnimg.cn/direct/b305708551154f478cb210e753d39442.png
node节点内部都有哪些组件?
kubelet 是 Node 节点的代理,负责管理 Node 相干的绝大部分操纵,Node 上只有它能够与 apiserver 通信,实现状态陈诉、命令下发、启停容器等功能,负责Node节点的运行维护。
kube-proxy 的作用有点特殊,它是 Node 的网络代理,负责管理容器的网络通信, Pod 转发 TCP/UDP 数据包。
container-runtime 是容器和镜像的实际使用者 ,负责创建容器,管理 Pod 的生命周期。
末了我们总结下团体的调理流程:
kubelet 向 master的apiserver 上报节点的状态,并通过apiserver存入到etcd中
kube-proxy 负责tcp和udp的数据包 让容器可以对外提供服务
scheduler 通过apiserver 从etcd中获取到当前节点的状态,从而调理pod(apiserver 下发命令给某个 Node 的 kubelet,kubelet 调用 container-runtime 启动容器。)
controller-manager apiserver 获得节点状态,监控异常环境。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]