前言
跟着尚硅谷老师学习了一版K8S相关内容,相关视频地址:B站K8S视频地址
架构
工作方式
Kubernetes Cluster = N Master Node + N Worker Node:N主节点+N工作节点; N>=1
组件架构
-
Controller Manage:在主节点上运行控制器的组件,主要包括以下控制器:
-
节点控制器(Node Controller): 负责在节点出现故障时进行通知和响应
-
任务控制器(Job controller): 监测代表一次性任务的 Job 对象,然后创建 Pods 来运行这些任务直至完成
-
端点控制器(Endpoints Controller): 填充端点(Endpoints)对象(即加入 Service 与 Pod)
-
服务帐户和令牌控制器(Service Account & Token Controllers): 为新的命名空间创建默认帐户和 API 访问令牌
-
Kube-api-service:与etcd、node节点等交互的前端,类似于Nginx;
-
etcd:etcd 是兼具一致性和高可用性的键值数据库,可以作为保存 Kubernetes 所有集群数据的后台数据库;
-
sched:调度者,负责监视新创建的、未指定运行节点(node)的 Pods,选择节点让 Pod 在上面运行;
-
Kubelet:一个在集群中每个节点(node)上运行的代理。 它保证容器(containers)都运行在 Pod 中。kubelet 接收一组通过各类机制提供给它的 PodSpecs,确保这些 PodSpecs 中描述的容器处于运行状态且健康。 kubelet 不会管理不是由 Kubernetes 创建的容器;
-
kube-proxy 是集群中每个节点上运行的网络代理, 实现 Kubernetes 服务(Service) 概念的一部分。kube-proxy 维护节点上的网络规则。这些网络规则允许从集群内部或外部的网络会话与 Pod 进行网络通信。