什么是 k8s(Kubernetes)?
k8s 是一个容器编排系统。它用于容器部署和管理。它的设计受谷歌内部系统 Borg 的影响。
k8s 集群由一组运行容器化应用程序的工作机(称为节点)组成。每个集群至少有一个工作节点。
工作节点承载着作为应用工作负载组件的 Pod。控制平面管理集群中的工作节点和 Pod。在生产环境中,控制平面通常在多台计算机上运行,一个群集通常运行多个节点,以提供容错性和高可用性。
图片
1.控制平面组件
API 服务器
API 服务器与 k8s 集群中的所有组件对话。Pod 上的所有操作都是通过与 API 服务器对话来执行的。
调度程序
调度器负责监控 pod 上的工作负载,并为新创建的 pod 分配负载。
控制器管理器
控制器管理器运行控制器,包括 Node Controller、Job Controller、EndpointSlice Controller 和 ServiceAccount Controller。
etcd
etcd 是一个键值存储,用作 Kubernetes 所有集群数据的后备存储。
2.节点
pod
Pod 是一组容器,是 k8s 管理的最小单位。Pod 中的每个容器都有一个 IP 地址。
Kubelet
在集群中每个节点上运行的代理。它能确保容器在 Pod 中运行。
Kube 代理
Kube-proxy 是一个网络代理,在集群中的每个节点上运行。它可以路由从服务进入节点的流量。它将工作请求转发给正确的容器。
你知道 Kubernetes 为什么被称为 “k8s ”吗?
“Kubernetes” 这个单词较长,因此社区采用了一种缩写方式:
- 取首字母“K”和末尾的字母“s”。
- 中间有 8 个字母(ubernete),因此用 8 代替。
- 这种缩写方式在技术领域也很常见,如 i18n(internationalization,国际化) 和 l10n(localization,本地化)。