containerd加入k8s集群

1、關(guān)閉selinux&firewalld

systemctl stop firewalld && systemctl disable firewalld

setenforce 0

sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/g' /etc/selinux/config


2、關(guān)閉swap

swapoff -a

sed -i 's/^[^#].*swap*/#&/g' /etc/fstab


3、安裝依賴及常用工具

yum install -y yum-utils device-mapper-persistent-data lvm2 wget vim yum-utils net-tools epel-release

添加加載的內(nèi)核模塊

cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf

overlay

br_netfilter

EOF


4、加載內(nèi)核模塊

modprobe overlay

modprobe br_netfilter


5、設(shè)置內(nèi)核參數(shù)

cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf

net.bridge.bridge-nf-call-iptables? = 1

net.ipv4.ip_forward? ? ? ? ? ? ? ? = 1

net.bridge.bridge-nf-call-ip6tables = 1

EOF


6、應用內(nèi)核參數(shù)

sysctl --system


7、添加docker源

cat <<EOF | sudo tee /etc/yum.repos.d/docker-ce.repo

[docker]

name=docker-ce

baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/

enabled=1

gpgcheck=1

gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

EOF


8、安裝containerd

yum -y update && yum -y install containerd.io

# 指定版本使用containerd.io-x.x.x

# 需要升級系統(tǒng)則yum -y update


9、配置containerd

mkdir -p /etc/containerd

containerd config default | sudo tee /etc/containerd/config.toml

(1)修改cgroup Driver為systemd

在配置文件中如下位置添加SystemdCgroup = true


(2)鏡像加速

endpoint位置添加阿里云的鏡像源

$ vim /etc/containerd/config.toml

? ? [plugins."io.containerd.grpc.v1.cri".registry]

? ? ? [plugins."io.containerd.grpc.v1.cri".registry.mirrors]

? ? ? ? [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]

? ? ? ? ? endpoint = ["https://xxxxxxxx.mirror.aliyuncs.com"]


(3)更改sandbox_image

$ vim /etc/containerd/config.toml

...

? [plugins."io.containerd.grpc.v1.cri"]

? ? disable_tcp_service = true

? ? stream_server_address = "127.0.0.1"

? ? stream_server_port = "0"

? ? stream_idle_timeout = "4h0m0s"

? ? enable_selinux = false

? ? selinux_category_range = 1024

# 將這里改為aliyun的鏡像源

? ? sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.4.1"



10、啟動服務(wù)

systemctl enable containerd && systemctl start containerd


11、(可選)如果你的環(huán)境中網(wǎng)絡(luò)代理去訪問外網(wǎng),containerd也需要單獨添加代理

mkdir /etc/systemd/system/containerd.service.d

cat > /etc/systemd/system/containerd.service.d/http_proxy.conf << EOF

[Service]

Environment="HTTP_PROXY=http://<proxy_ip>:<proxy_port>/"

Environment="HTTPS_PROXY=http://<proxy_ip>:<proxy_port>/"

Environment="NO_PROXY=x.x.x.x,x.x.x.x"

EOF


12、加載配置并重啟服務(wù)

systemctl daemon-reload && systemctl restart containerd


13、下載鏡像檢測containerd是否正常

ctr images pull docker.io/library/nginx:alpine

ctr是containerd自帶的命令行客戶端


14、添加kubernetes 源

cat > /etc/yum.repos.d/kubernetes.repo << EOF

[kubernetes]

name=Kubernetes

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64

enabled=1

gpgcheck=0

repo_gpgcheck=0

gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF


15、安裝kubeadm,kubelet和kubectl

yum install -y kubelet-1.21.0 kubeadm-1.21.0 kubectl-1.21.0

systemctl enable kubelet


16、設(shè)置crictl

使用除docke以外的CRI時,需要使用crictl來進行鏡像管理,相當于docker-cli

Containerd 只支持通過 CRI 拉取鏡像的 mirror,也就是說,只有通過 crictl 或者 Kubernetes 調(diào)用時 mirror 才會生效,通過 ctr 拉取是不會生效的。crictl是k8s內(nèi)部的鏡像管理命令。

cat << EOF >> /etc/crictl.yaml

runtime-endpoint: unix:///var/run/containerd/containerd.sock

image-endpoint: unix:///var/run/containerd/containerd.sock

timeout: 10

debug: false

EOF


17、下載鏡像

crictl pull nginx:latest

crictl基本上與docker用法一致



18、對接kubelet

vi /etc/sysconfig/kubelet

KUBELET_EXTRA_ARGS=--container-runtime=remote --container-runtime-endpoint=unix:///run/containerd/containerd.sock --cgroup-driver=systemd


19、master需要重新創(chuàng)建token,可以直接使用命令快捷生成:

kubeadm token create --print-join-command

生成的命令在worknode上執(zhí)行加入集群

若創(chuàng)建鏡像超時,可手工拉取kube-proxy、core-dns、pause


20、master 節(jié)點再次執(zhí)行kubectl apply -f calico.yaml,使worknode節(jié)點部署calico網(wǎng)絡(luò)組建。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容