• Master: 管理(控制)节点,相当于公司的管理层
  • Master 节点主要由 API Server 、Controller-Manager 和Scheduler 三个组件,以及一个用于存储
  • 集群状态的 Etcd存储服务组成
  • Node (Worker): 工作worker节点,相当于公司具体完成工作的基层员工
  • Node节点则主要包含 Kubelet 、Kube Proxy 及容器运行时( 当前docker 仍是最为常用的实现)
  • 三个组件,它们承载运行各类应用容器

kubernetes集群架构_k8s

三个网络功能

     节点网络

  • 集群主机节点间的通信网络,并负责打通与集群外部端点间的通信 Pod网络
  • 为集群上的Pod对象提供的网络
  • 每个pod 从此网络动态获取地址,且每次重启pod后IP地址可能会变化
  • 需要经由CNI网络插件实现,例如Flannel、Calico、Cilium等 Service网络
  • 主要用于解决 pod 使用动态地址问题


3 Kubernetes 集群组件

  • kubernetes组件分成三种

Control Plane Components 控制平台组件: master主机

  • API Server
  • Controller-Manager
  • Scheduler
  • Etcd

Node Components 节点组件

  • Kubelet
  • Kube Proxy
  • Docker

Addons 附件

  • flannel
  • CoreDNS

kubernetes集群架构_docker_02

安装工具:​​​​https://www.cncf.io/certification/software-conformance/​

第三方平台和工具

kubernetes集群架构_k8s_03


Kubernetes集群部署流程说明

  • 每个节点主机的初始环境准备
  • 准备代理服务,以便访问k8s.gcr.io,或根据部署过程提示的方法获取相应的Image
  • Kubernetes集群API访问入口的高可用和harbor(可选)
  • 在所有Master和Node节点都安装容器运行时,实际Kubernetes只使用其中的Containerd
  • 在所有Master和Node节点安装kubeadm 、kubelet、kubectl(在node节点可不安装)
  • 在第一个 master 节点运行 kubeadm init 初始化命令 ,并验证 master 节点状态
  • 在第一个 master 节点安装配置网络插件
  • 在其它master节点运行kubeadm join 命令加入到控制平面集群中(测试环境可选)
  • 在所有 node 节点使用 kubeadm join 命令加入集群 , 并验证 node 节点状态
  • 创建 pod 并启动容器测试访问 ,并测试网络通信

阿里云k8s镜像站地址

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
setenforce 0
yum install -y kubelet kubeadm kubectl
指定版本安装:yum -y install kubeadm-1.22.1 kubelet-1.22.1 kubectl-1.22.1 --nogpgcheck
systemctl enable kubelet && systemctl start kubelet