- Master: 管理(控制)节点,相当于公司的管理层
- Master 节点主要由 API Server 、Controller-Manager 和Scheduler 三个组件,以及一个用于存储
- 集群状态的 Etcd存储服务组成
- Node (Worker): 工作worker节点,相当于公司具体完成工作的基层员工
- Node节点则主要包含 Kubelet 、Kube Proxy 及容器运行时( 当前docker 仍是最为常用的实现)
- 三个组件,它们承载运行各类应用容器
三个网络功能
节点网络
- 集群主机节点间的通信网络,并负责打通与集群外部端点间的通信 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
安装工具:https://www.cncf.io/certification/software-conformance/
第三方平台和工具
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
systemctl enable kubelet && systemctl start kubelet