Kubernetes 系列 - 0. 架构

111 阅读1分钟

0. 架构

1. 整体架构

抽象架构图如下:

image.png

整体架构(图片参考:https://thenewstack.io/kubernetes-an-overview/)

k8s整体上包含控制面和数据面两个部分,控制面通常由以下几个组件组成:

  • etcd:存储整个集群的资源;
  • apiserver:负责与etcd交互,并接收所有外部请求;
  • controller-manager:所有内建的controller集合;
  • scheduler:负责节点的调度;
  • metrics-server:提供node和pod的CPU和内存使用情况;
  • cluster-autoscaler:集群与云厂商搭配使用时,使用cluster-autoscaler扩容实例;

数据面由以下几个组件组成:

  • kubelet:管理节点上的Pods和容器的生命周期,从apiserver获取Pod的指令,并保证容器运行在这些Pods中;
  • kube-proxy:是网络代理,它维护节点上的网络规则,允许网络会话内或跨节点的Kubernetes网络通信;
  • container runtime:是负责运行容器的软件。k8s 支持多种容器运行时,如Docker、containerd、CRI-O等;

各组件通信架构图:

image.png

通信架构(图片来源于网络)