kubernetes系列文章二:选择docker作为容器运行时

系列文章目录

第一章 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设置存储库

  1. 更新软件包索引并安装软件包,
# sudo apt-get update

# sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
  1. 添加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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值