Kubernetes是谷歌公司一款开源的容器编排管理工具,它的本质是一组服务器集群管理工具,能够在集群的每个节点上运行特定的程序,它的目的是实现资源的管理自动化,主要提供了自我修复,弹性伸缩、服务发现、负载均衡、版本回退、存储编排等功能。
1、自我修复:一个容器崩溃,会立马启动另一个新的容器来替代。
2、弹性伸缩:可以根据并发需要,自动对集群中的运行容器数量进行动态扩展。
3、服务发现:主要用于微服务部署,可以通过自动发现的形式找到它所依赖的另一个服务。
4、负载均衡:如果一个服务启动了多个容器,能够自动实现请求的负载均衡。
5、版本回退:如果发现新发布的版本有问题,可以立即回退到原来的版本。
6、存储编排:可以根据容器自身的需求自动创建存储卷。
Kubernetes集群主要由控制节点master、工作节点node构成,每个节点上都会安装不同的Kubernetes组件。控制节点主要对节点进行管理和集群决策,包含ApiServer、Scheduler、ControllerManager、Etcd组件。工作节点主要负责提供容器的运行时环境,包含Kubelet、KubeProxy、容器运行时等。
1、ApiServer: 控制节点的组件, 该组件公开了 Kubernetes API,是 Kubernetes 控制节点的前端,提供了资源操作的唯一入口,接收用户输入的命令,提供认证授权、API注册和发现机制。
2、Scheduler:控制节点的组件,负责集群资源调度,按照预定的调度策略将POD调度到相应的node节点上。
3、ControllerManager:控制节点的组件,运行控制器进程,负责维护集群的状态,比如部署、故障检测、自动扩展、滚动更新等。控制器包括节点控制器(Node Controller)、任务控制器(Job controller)、端点控制器(Endpoints Controller)、服务帐户和令牌控制器(Service Account & Token Controllers)。
4、CloudControllerManager:指嵌入特定云的控制逻辑的控制节点组件,云控制器管理器使得你可以将你的集群连接到云提供商的 API 之上, 并将与该云平台交互的组件同与你的集群交互的组件分离开来。
5、Etcd:兼具一致性和高可用性的键值数据库,可以作为保存 Kubernetes 所有集群数据的后台数据库。 Kubernetes 集群的 etcd 数据库通常需要有个备份计划。
6、kubelet:工作节点的组件, 负责维护容器的生命周期,控制容器运行时来创建、更新和销毁容器。
7、KubeProxy:集群中每个节点上运行的网络代理,负责提供集群内部的服务发现和负责均衡。
8、Container Runtime:容器运行时,是负责运行容器的软件。例如 Docker、 containerd、CRI-O 以及 Kubernetes CRI (容器运行环境接口) 的其他任何实现。
9、Addons:插件,通过使用k8s的资源实现集群功能。 因为这些插件提供集群级别的功能,插件中命名空间域的资源属于 kube-system 命名空间。例如DNS插件、Web界面插件、容器资源监控插件、集群日志插件等。
标签:容器,插件,Kubernetes,哪些,集群,组件,k8s,节点 From: https://www.cnblogs.com/zqhIndex/p/18283420