系列文章目录
第一章 kubernetes1.24部署
第二章 选择docker作为容器运行时
第三章 选择containerd作为容器运行时
第四章 选择cri-o作为容器运行时
第五章 网络插件flannel部署
第六章 网络插件calico部署
第七章 网络插件cilium部署
文章目录
选择docker作为kubernetes运行时
2022年5月3日kubernetesV1.24版本发布,移除了docker-shim插件后,kubernetes不再支持直接使用docker作为容器运行时。
如果要继续使用docker作为kubernetes的容器运行时,则要下载docker的cri插件:cri-dockerd。
1. 安装docker
如果机器上已有docker请跳过安装步骤,建议更新到最新的版本。
1.1卸载旧版本
如果安装了旧版本,可以卸载它们
# sudo apt-get remove docker docker-engine docker.io containerd runc
1.2设置存储库
- 更新软件包索引并安装软件包,
# sudo apt-get update
# sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
- 添加docker的官网GPG密钥
# sudo mkdir -p /etc/apt/keyrings
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
3.设置存储库:
# echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
1.3 安装docker
# sudo apt-get update
# sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
安装完成后可以验证一下docker是否安装成功:
docker -v
2. 配置docker
2.1配置cgroup驱动
配置docker的cgroup
驱动,与kubernetes v1.24版本默认systemd驱动保持一致。
//daemo.json文件没有则手动创建
# vim /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
配置完成后载入配置以及重启:
# systemctl daemon-reload
# systemctl restart docker
(可选)提供一下kubernetes的cgroup配置方法:
# cat /etc/sysconfig/kubelet KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
配置后需要载入配置以及重启:
# systemctl daemon-reload # systemctl restart kubelet //设置自启动 systemctl enable kubelet
2.2配置docker拉取镜像时访问外网的代理
docker的镜像仓库是国外的,需要配置代理才能访问
//文件夹和文件没有则创建
# cat /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://***********************************"
Environment="HTTPS_PROXY=http://*************************************"
Environment="NO_PROXY=localhost,127.0.0.1,192.168.10.92,master"
代理配置部分根据自己环境修改。
配置重载以及重启:
# systemctl daemon-reload
# systemctl restart docker
可以拉取一个简单的
hello-world
镜像来测试是否配置成功:# docker run hello-world
拉取成功参考:
3. 安装cri-dockerd
关于cri-dockerd的安装,稍微有点复杂,而且在github上也是不断在改变,因为cri-dockerd刚出来不到半年。如果以上安装方式有问题,建议去查看官网最新的安装方法,链接:https://github.com/Mirantis/cri-dockerd
下载cri-dockerd源代码:
# git clone https://github.com/Mirantis/cri-dockerd.git
# mkdir /bin
# VERSION=$((git describe --abbrev=0 --tags | sed -e 's/v//') || echo $(cat VERSION)-$(git log -1 --pretty='%h')) PRERELEASE=$(grep -q dev <<< "${VERSION}" && echo "pre" || echo "") REVISION=$(git log -1 --pretty='%h')
# go build -ldflags="-X github.com/Mirantis/cri-dockerd/version.Version='$VERSION}' -X github.com/Mirantis/cri-dockerd/version.PreRelease='$PRERELEASE' -X github.com/Mirantis/cri-dockerd/version.BuildTime='$BUILD_DATE' -X github.com/Mirantis/cri-dockerd/version.GitCommit='$REVISION'" -o cri-dockerd
构建:
//Run these commands as root
//Install GO
# wget https://storage.googleapis.com/golang/getgo/installer_linux
# chmod +x ./installer_linux
# ./installer_linux
# source ~/.bash_profile
# cd cri-dockerd
# mkdir bin
# go build -o bin/cri-dockerd
# mkdir -p /usr/local/bin
# install -o root -g root -m 0755 bin/cri-dockerd /usr/local/bin/cri-dockerd
# cp -a packaging/systemd/* /etc/systemd/system
# sed -i -e 's,/usr/bin/cri-dockerd,/usr/local/bin/cri-dockerd,' /etc/systemd/system/cri-docker.service
# systemctl daemon-reload
# systemctl enable cri-docker.service
# systemctl enable --now cri-docker.socket
4.验证cri-dockerd
可以查看cri-dockerd的版本和查看cri-dockerd服务的状态来验证是否安装成功。
# cri-dockerd --version
# systemctl status cri-docker.service
示例:
5.总结
到这里docker和cri-dockerd安装完成了,接下来可以去尝试初始化集群了。
编辑时间:2022-8-22