主機初始化
安裝containerd容器運作時
$ wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
$ yum install -y containerd
$ systemctl start containerd && systemctl enable containerd
$ mkdir -p /etc/containerd
$ containerd config default > /etc/containerd/config.toml #替換配置檔案
$ vim /etc/containerd/config.toml #修改配置
sandbox_image = "k8s.gcr.io/pause:3.2" #鏡像拉取位址
endpoint = ["https://registry-1.docker.io"] #???
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] #???
$ sed -i "s#k8s.gcr.io#registry.cn-hangzhou.aliyuncs.com/google_containers#g" /etc/containerd/config.toml
$ sed -i '/containerd.runtimes.runc.options/a\ \ \ \ \ \ \ \ \ \ \ \
SystemdCgroup = true' /etc/containerd/config.toml
$ sed -i "s#https://registry-1.docker.io#https://registry.cn-hangzhou.aliyuncs.com#g" /etc/containerd/config.toml
$ systemctl restart containerd
kubeadm初始化k8s叢集
設定容器運作時
$ crictl config runtime-endpoint /run/containerd/containerd.sock #master節點操作
$ crictl config runtime-endpoint /run/containerd/containerd.sock #node節點操作
初始化叢集配置檔案
$ kubeadm config print init-defaults > kubeadm.yaml
$ vim kubeadm.yaml
apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:
- system:bootstrappers:kubeadm:default-node-token
token: abcdef.0123456789abcdef
ttl: 24h0m0s
usages:
- signing
- authentication
kind: InitConfiguration
localAPIEndpoint:
advertiseAddress: 192.168.2.60 #控制節點的 ip
bindPort: 6443
nodeRegistration:
criSocket: /run/containerd/containerd.sock #用 containerd 作為容器運作時
imagePullPolicy: IfNotPresent
name: master1 #控制節點主機名
taints: null
---
apiServer:
timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns: {}
etcd:
local:
dataDir: /var/lib/etcd
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers #指定鏡像倉庫位址
kind: ClusterConfiguration
kubernetesVersion: 1.23.3 #k8s 版本
networking:
dnsDomain: cluster.local
podSubnet: 10.244.0.0/16 #指定 pod 網段
serviceSubnet: 10.96.0.0/16 #指定 Service 網段
scheduler: {}
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs
---
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
cgroupDriver: systemd