Kubernetes常见组件有哪些 Kubernetes常见组件介绍

Kubernetes(简称K8s)是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。当我们部署完Kubernetes,即拥有了一个完整的集群,集群具有至少一个工作节点。那么Kubernetes常见组件有哪些?下面一起来看下Kubernetes常见组件介绍。

Kubernetes常见组件有哪些 Kubernetes常见组件介绍插图

一、控制平面组件(Control Plane Components)

控制平面的组件对集群做出全局决策(比如调度),以及检测和响应集群事件(例如,当不满足部署的 replicas 字段时,启动新的 pod)。控制平面组件可以在集群中的任何节点上运行。 然而,为了简单起见,设置脚本通常会在同一个计算机上启动所有控制平面组件, 并且不会在此计算机上运行用户容器。

1、kube-apiserver

API服务器是Kubernetes控制面的组件,该组件公开了Kubernetes API,它是Kubernetes控制面的前端,主要实现是kube-apiserver。

kube-apiserver设计上考虑了水平伸缩,也就是说,它可通过部署多个实例进行伸缩。 你可以运行kube-apiserver的多个实例,并在这些实例之间平衡流量。

2、etcd

etcd是兼具一致性和高可用性的键值数据库,可以作为保存Kubernetes所有集群数据的后台数据库,它通常需要有个备份计划。

3、kube-scheduler

kube-scheduler控制平面组件,负责监视新创建的、未指定运行节点(node)的Pods,选择节点让Pod在上面运行。调度决策考虑的因素包括单个Pod和Pod集合的资源需求、硬件/软件/策略约束、亲和性和反亲和性规范、数据位置、工作负载间的干扰和最后时限。

4、kube-controller-manager

kube-controller-manager运行控制器进程的控制平面组件。从逻辑上讲,每个控制器都是一个单独的进程, 但是为了降低复杂性,它们都被编译到同一个可执行文件,并在一个进程中运行。

5、cloud-controller-manager

云控制器管理器是指嵌入特定云的控制逻辑的控制平面组件。云控制器管理器使得你可以将你的集群连接到云提供商的API之上, 并将与该云平台交互的组件同与你的集群交互的组件分离开来。cloud-controller-manager仅运行特定于云平台的控制回路。如果你在自己的环境中运行Kubernetes,或者在本地计算机中运行学习环境,所部署的环境中不需要云控制器管理器。

二、Node组件

节点组件在每个节点上运行,维护运行的 Pod 并提供 Kubernetes 运行环境。

1、kubelet

kubelet是一个在集群中每个节点(node)上运行的代理,它保证容器(containers)都运行在Pod中,接收一组通过各类机制提供给它的PodSpecs,确保这些PodSpecs中描述的容器处于运行状态且健康。 kubelet不会管理不是由Kubernetes创建的容器。

2、kube-proxy

kube-proxy 是集群中每个节点上运行的网络代理,实现Kubernetes服务(Service)概念的一部分。它维护节点上的网络规则。这些网络规则允许从集群内部或外部的网络会话与Pod进行网络通信。如果操作系统提供了数据包过滤层并可用的话,kube-proxy会通过它来实现网络规则。否则,kube-proxy仅转发流量本身。

三、容器运行时(Container Runtime)

容器运行环境是负责运行容器的软件。Kubernetes支持容器运行时,例如Docker、containerd、CRI-O以及 Kubernetes CRI (容器运行环境接口) 的其他任何实现。

目前Vultr、Linode等海外服务器商家提供Kubernetes服务支持,我们可按需部署Kubernetes集群。

更多:《热门海外服务器推荐》

THE END
点赞519 分享