K8s 架构原理
K8s 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化
通过 K8s 我们可以:
-
快速部署应用
-
快速扩展应用
-
无缝对接新的应用功能
-
节省资源,优化硬件资源的使用
K8s 有如下特点:
-
可移植:支持公有云,私有云,混合云,多重云 multi-cloud。
-
可扩展:
-
自动化:自动部署,自动重启,自动复制,自动伸缩/扩展。
架构原理
概括来说 K8s 架构就是一个 Master 对应一群 Node 节点。下面我们来逐一介绍 K8s 架构图中的 Master 和 Node。
Master 节点结构如下:
-
apiserver 即 K8s 网关,所有的指令请求都必须要经过 apiserver。
-
Scheduler 调度器,使用调度算法,把请求资源调度到某一个 Node 节点。
-
Controller 控制器,维护 K8s 资源对象。
-
etcd 存储资源对象。
Node 节点结构如下:
-
Kubelet 在每一个 Node 节点都存在一份,在 Node 节点上的资源操作指令由 Kubelet 来执行。
-
Kube-proxy 代理服务,处理服务间负载均衡。
-
Pod 是 K8s 管理的基本单元(最小单元),Pod 内部是容器,K8s 不直接管理容器,而是管理 Pod。
-
Docker 运行容器的基础环境,容器引擎。
-
Fluentd 日志收集服务。