做網(wǎng)站1g網(wǎng)頁空間夠嗎百度推廣退款電話
安裝前準(zhǔn)備
同《kubernetes集群部署:環(huán)境準(zhǔn)備及master節(jié)點(diǎn)部署(二)》
安裝cri-docker
在 Kubernetes 1.20 版本之前,Docker 是 Kubernetes 默認(rèn)的容器運(yùn)行時(shí)。然而,Kubernetes 社區(qū)決定在 Kubernetes 1.20 及以后的版本中逐步淘汰對(duì) Docker 的直接支持,一直到Kubernetes 1.24版本徹底不再支持Docker作為kubernetes的默認(rèn)容器運(yùn)行時(shí),原因如下:
- CRI 標(biāo)準(zhǔn)化:Kubernetes 團(tuán)隊(duì)推出了 CRI(Container Runtime Interface),旨在標(biāo)準(zhǔn)化容器運(yùn)行時(shí)的接口,使 Kubernetes 能夠與不同的容器運(yùn)行時(shí)(如 containerd、CRI-O)無縫集成。
- Docker Shim:為了使 Kubernetes 能夠與 Docker 一起工作,Kubernetes 需要一個(gè)稱為 "dockershim" 的組件,充當(dāng) Kubernetes 和 Docker 之間的橋梁。這增加了額外的復(fù)雜性和維護(hù)負(fù)擔(dān)。
為了解決這一問題,并讓仍然依賴 Docker 的用戶繼續(xù)使用,cri-dockerd
?項(xiàng)目應(yīng)運(yùn)而生。
什么是?cri-dockerd
cri-dockerd
?是一個(gè)外部的開源項(xiàng)目,目的是提供一個(gè)兼容 Kubernetes CRI 的 Docker 運(yùn)行時(shí)。它是 Docker 和 Kubernetes 之間的橋梁,使 Kubernetes 可以使用 Docker 作為容器運(yùn)行時(shí),同時(shí)符合 CRI 標(biāo)準(zhǔn)。
功能和特點(diǎn)
- 兼容性:
cri-dockerd
?保持與現(xiàn)有 Docker 工作流程和工具的兼容性,用戶可以繼續(xù)使用熟悉的 Docker CLI 和生態(tài)系統(tǒng)。 - 標(biāo)準(zhǔn)化接口:通過實(shí)現(xiàn) CRI 接口,
cri-dockerd
?確保 Kubernetes 可以與 Docker 一起無縫工作。 - 開源項(xiàng)目:
cri-dockerd
?是一個(gè)社區(qū)驅(qū)動(dòng)的開源項(xiàng)目,保證了其可持續(xù)性和社區(qū)支持。
安裝Docker
1、配置第三方鏡像源
~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2、安裝Docker
dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
3、修改Docker配置文件,修改私有倉庫地址。
tee /etc/docker/daemon.json<<-'EOF'
{
"registry-mirrors": ["https://mirror.ccs.tencentyun.com"
],"insecure-registries": ["192.168.XX.101"]
}
EOF
4、啟動(dòng)并設(shè)置開機(jī)啟動(dòng)項(xiàng)
systemctl start docker
systemctl enable docker.service
安裝?cri-dockerd
1、下載cri-dockerd軟件包
wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.14/cri-dockerd-0.3.14-3.el8.x86_64.rpm
2、安裝cri-dockerd
~]# rpm -ivh cri-dockerd-0.3.14-3.el8.x86_64.rpm?
~]# cri-dockerd --version
cri-dockerd 0.3.14 (683f70f)
3、修改cri-dockerd服務(wù)文件,增加紅色字體配置(配置網(wǎng)絡(luò)插件和pause image),否則~~哼哼
ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd://?--network-plugin=cni --pod-infra-container-image=192.168.XX.101/kubeadm/pause:3.9
4、啟動(dòng)并配置開機(jī)啟動(dòng)項(xiàng)
systemctl enable cri-docker
systemctl enable --now cri-docker.socket
systemctl start cri-docker
安裝kubeadm、kubelet、kubectl
同《kubernetes集群部署:環(huán)境準(zhǔn)備及master節(jié)點(diǎn)部署(二)》
Node加入集群
同《kubernetes集群部署:node節(jié)點(diǎn)部署和CRI-O運(yùn)行時(shí)安裝(三)》
但是初始化啟動(dòng)文件需要改一下:
~]# cat kubeadm-join.default.yaml?
apiVersion: kubeadm.k8s.io/v1beta3
caCertPath: /etc/kubernetes/pki/ca.crt
discovery:
? bootstrapToken:
? ? apiServerEndpoint: k8s130-node190:6443
? ? token: abcdef.0123456789abcdef
? ? unsafeSkipCAVerification: true
? timeout: 5m0s
? tlsBootstrapToken: abcdef.0123456789abcdef
kind: JoinConfiguration
nodeRegistration:
? criSocket: unix:///run/cri-dockerd.sock
? imagePullPolicy: IfNotPresent
? name: k8s130-node189
? taints: null
安裝之后處理
同《kubernetes集群部署:node節(jié)點(diǎn)部署和CRI-O運(yùn)行時(shí)安裝(三)》
集群搭建完成后聯(lián)調(diào)
1、啟動(dòng)1個(gè)mysql,然后啟動(dòng)3個(gè)myweb,可看到均衡調(diào)度到了2個(gè)Node上了。
2、分別創(chuàng)建了mysql的svc和myweb的svc,并將myweb的8080端口映射到Node上的30080,通過如下URL訪問效果如下:
至此,我們部署的1master+2node的集群環(huán)境,分別嘗試使用了Containerd、CRI-O、Docker三種運(yùn)行時(shí),其中Docker比較特殊,需要額外部署一個(gè)CRI(cri-docker)作為橋梁。本人不禁感嘆一聲:昔日的小甜甜 現(xiàn)在的牛夫人。