天天看點

k8s使用containerd作為容器運作時

主機初始化

安裝containerd容器運作時

  • 擷取阿裡雲鏡像源
$ wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo      
  • yum安裝containerd
$ yum install -y containerd      
  • 啟動containerd服務
$ systemctl start containerd && systemctl enable containerd       
  • 建立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      
  • 重新開機containerd服務
$ 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