Ubutun Deploy Kubernetes With Containerd

环境准备

1. multipass 虚拟机创建

# 生成密钥对
ssh-keygen -t rsa -b 4096 -f ~/k8s_rsa -C k8s

# 创建 Master 节点
multipass launch -c 2 -m 2G -d 20G -n master --cloud-init - << EOF
ssh_authorized_keys:
- $(cat ~/.ssh/k8s_rsa.pub)
EOF

# 创建 Node 节点
multipass launch -c 1 -m 2G -d 20G -n node1 --cloud-init - << EOF
ssh_authorized_keys:
- $(cat ~/.ssh/k8s_rsa.pub)
EOF

multipass launch -c 1 -m 2G -d 20G -n node2 --cloud-init - << EOF
ssh_authorized_keys:
- $(cat ~/.ssh/k8s_rsa.pub)
EOF

--cloud-init :导入本地生成的公钥文件到初始化系统中,可以使用密钥免密 SSH

2. 主机与网络规划

主机 IP

主机名

主机配置

节点角色

192.168.64.4

master1

2C/2G

master 节点

192.168.64.5

node1

1C/1G

node 节点

192.168.64.6

node2

1C/1G

node 节点

子网 Subnet

CIDR 网段

nodeSubnet

192.168.64.0/24

PodSubnet

172.16.0.0/16

ServiceSubnet

10.10.0.0/16

3.软件版本

软件

版本

操作系统

Ubuntu 20.04.4 LTS

内核版本

5.4.0-109-generic

containerd

1.5.10-1

kubernetes

v1.23.2

kubeadm

v1.23.2

kube-apiserver

v1.23.2

kube-controller-manager

v1.23.2

kube-scheduler

v1.23.2

kubectl

v1.23.2

kubelet

v1.23.2

kube-proxy

etcd

v3.5.1

CNI 插件(calico)

v3.18

集群配置(所有节点执行)

1. 节点初始化

  • 主机名与 host 解析

  • 关闭防火墙与禁用 swap 分区

k8s集群安装为什么需要关闭 swap 分区? swap 必须关,否则 kubelet 起不来,进而导致 k8s 集群起不来; 且考虑 kublet 会用 swap 做数据交换的话,对性能影响比较大

  • 同步时间与时区

  • 内核模块加载与配置

  • 配置免密登录(master 节点执行,非必须)

2. 容器运行时安装

构建集群

1.组件安装(所有节点执行)

2.初始化主节点

  • Master 节点执行

  • Node 节点执行

3.安装 CNI 网络插件(calico)

calico 插件官方地址: https://projectcalico.docs.tigera.io/getting-started/kubernetes/quickstart

4.集群部署验证

5.Kubernetes 组件

控制平面组件

  • kube-apiserver:多实例伸缩,高可用且可均衡流量?

  • etcd:高可用与备份策略?

  • kube-scheduler 调度策略:Pod 资源需求、硬件/软件/策略约束、亲和性和反亲和性规范、数据位置、工作负载间干扰和最后时限

  • kube-controller-manager

**数据平面组件(所有节点) **

  • kubelet

  • kubeproxy

  • 容器运行时(CR) :containerd(Kubernetes 后续版本不使用 docker)

插件 Addons

  • 网络插件:calico、flannel

可观测性:日志与监控

  • 日志:fluentd

  • 监控:Prometheus

Kubernetes 仪表板(Dashboard)

1. Kubernetes 原生仪表板

官方文档:https://kubernetes.io/zh/docs/tasks/access-application-cluster/web-ui-dashboard/

2. K9S 集群管理工具

官方文档:https://k9scli.io/

Reference:

Last updated