Kubernetes(通常缩写为 K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。Kubernetes 集群由控制平面组件和节点组成,下面是一些核心的 Kubernetes 组件:
-
etcd:一个分布式键值存储系统,用于保存整个集群的状态。
-
kube-apiserver:API 服务器,它是 Kubernetes 控制平面的前端,负责公开 Kubernetes API 并处理所有请求。
-
kube-controller-manager:在主节点上运行的控制器组件,负责运行集群中的各种控制器进程。
-
kube-scheduler:调度器,负责决定将新创建的 Pods 安排到哪个节点上运行。
-
kubelet:在每个节点上运行的代理,负责维护容器的生命周期,包括启动容器、监控容器运行状态以及资源使用情况等。
-
kube-proxy:网络代理,运行在每个节点上,负责维护节点的网络规则和转发。
-
Container Runtime Interface (CRI):容器运行时接口,用于与不同的容器运行时(如 Docker、containerd 等)交互。
-
CoreDNS:集群内部 DNS 服务,为 Kubernetes 集群提供服务发现功能。
-
Dashboard:可选的 Web UI 组件,用于对 Kubernetes 集群进行可视化管理。
-
Ingress Controller:负责管理外部访问集群内服务的流量。
-
Service:定义了访问一组 Pod 的策略,无论这些 Pod 如何变化,Service 都保持不变。
-
Pod:Kubernetes 的基本执行单元,可以包含一个或多个容器。
这些组件共同工作,提供了一个强大的平台,用于管理大规模的容器化应用程序。控制平面组件负责集群的全局决策和事件响应,而节点上的组件则负责执行具体的任务,如运行容器和维护网络。