Kubernetes (k8s) 主要由以下组件构成:
- etcd:Kubernetes 使用 etcd 作为其分布式键值存储,以存储集群的所有配置数据。
- kube-apiserver:该组件是 Kubernetes API 的前端,负责处理用户或其他组件发出的所有请求,并将它们转换为 etcd 内部操作。
- kube-controller-manager:包含多个 controller,用于监控并维护集群状态。其中一些 controller 包括 ReplicaSet Controller、Deployment Controller 和 Node Controller 等。
- kube-scheduler:负责将新创建的 Pod 配置到可用的节点上。
- kubelet:在每个节点上运行,它是主要的节点代理,负责管理容器的生命周期和与 kube-apiserver 的通信。
- kube-proxy:负责在节点上实现 Kubernetes Service 的网络规则,以及将入站流量引导到正确的 Pod 上。
此外,还有一些辅助组件,如 CNI 插件、Container Runtime(如 Docker 或 Containerd)、Ingress Controllers 和 Dashboard 等,这些组件不是必需的,但可以提供 Kubernetes 功能的增强。