
概念 | 含义 |
---|---|
Cluster | Cluster 是计算、存储和网络资源的集合,k8s利用这些资源运行各种基于容器的应用 |
Master | 负责调度,决定应用的运行位置。可以是物理机或虚拟机 |
Node | 运行容器应用,被 Master 管理, Node 定期汇报容器状态并接受 Master 的管理指令 |
Pod | K8s 上的最小工作单元。每个 Pod 包含一个或多个容器。 Pod 中的容器会被作为整体被 Master 调度到某个 Node 上运行。 |
Controller | K8s 通过 Controller 间接管理 Pod。Controller 决定 Pod 的部署特性(副本、Node等)。 |
Service | 定义外界访问特定 Pod 的方式。Service 有自己的 IP 和端口,为 Pod 提供负载均衡。 |
多个 Pod 之间如何通信?
一个应用可以产生多个副本运行在多个 Pod 上,以实现高可用。这些 Pod 通过Service互相访问对方,而不是 IP,因为 Pod 频繁启停,IP 变化不定。
K8s 通过Controller运行容器;通过Service访问容器
K8s 提供的 Controller
Deployment | 最常用的Controller。管理 Pod 的多个副本,并确保 Pod 按照期望的状态运行 |
ReplicaSet | 实现 Pod 的多副本管理。实际上,Deployment 就是通过 ReplicaSet 来管理 Pod 副本的。 |
DaemonSet | 用于每个 Node 最多只运行一个 Pod 副本的场景 |
StatefulSet | 保证 Pod 在其生命周期中,名称是不变的。对于其他 Controller,Pod 重启后名称会发生变化。 |
Job | 用于运行结束就要删除的应用。其他 Controller 中的 Pod 持续运行 |
网友评论