Kubernetes介绍和各组件盘点
01、K8S总览
Kubernetes(K8s),用于自动部署、扩容、缩容和管理容器化应用程序的开源系统。
它将组成应用程序的容器组合成逻辑单元,以便于管理和服务发现。
Kubernetes源自Google 15年生产环境的运维经验,同时凝聚了社区最佳创意和实践。
简单讲,K8s 就是一个生产级别的容器编排平台和集群管理系统,不仅能够创建、调度容器,还能够监控、管理服务器,它凝聚了Google和开源社区的集体智慧,从而让中小型公司也可以具备轻松运维海量计算节点----也就是“云计算”的能力。
![[01_K8s总览.png]]
02、k8s核心组件
![[02_k8s核心组件.png]]
Master节点
![[master节点的功能.png]]
[!NOTE] Master节点
- API Server
Apiserver是整个K8s系统的唯一入口,以 RESTful API 提供接口服务,并且加上了验证、授权等功能,所以其他组件都只能和它直接通信,可以说是K8s里的联络员。- Controller-manage
控制中心,负责维护容器和节点等资源的状态,实现故障检测、服务迁移、应用伸缩等功能。
因为节点状态和Pod信息都存储在etcd里,所以要通过apiserver获得信息,才能够实现对资源的各种操作。- Etcd
是一个高可用的分布式Key-Value数据库,用来持久化存储系统里的各种资源对象和状态。
注意它只与 apiserver 有直接联系,也就是说任何其他组件想要读写etcd里的数据都必须经过apiserver。
![[node节点功能.png]]
[!NOTE] Node节点
- Kubelet
是Master在Node节点上的Agent,通过指挥容器引擎实现管理本机运行容器,比如创建容器、Pod挂载数据卷、下载secret、获取容器和节点状态等工作。- Kube-proxy
在Node节点上实现Pod网络代理,维护网络规则和四层负载均衡共作。- Container-runtime
容器运行时,即容器引擎,列如docker、containerd、podman。
是容器和镜像的实际使用者,在 kubelet 的指挥下创建容器,管理Pod生产周期