kubernetes系列文章三:选择containerd作为容器运行时

系列文章目录

第一章 kubernetes1.24部署
第二章 选择docker作为容器运行时
第三章 选择containerd作为容器运行时
第四章 选择cri-o作为容器运行时
第五章 网络插件flannel部署
第六章 网络插件calico部署
第七章 网络插件cilium部署



选择containerd作为kubernetes运行时

作为CNCF目前为止唯一一个在运行时毕业的项目,Containerd 是一个工业级标准的容器运行时,它强调简单性、健壮性和可移植性。Containerd 可以在宿主机中管理完整的容器生命周期:容器镜像的传输和存储、容器的执行和管理、存储和网络等。

1. 安装containerd

1.1 containerd安装

  1. 下载压缩包:
# wget https://github.com/containerd/containerd/releases/download/v1.6.6/containerd-1.6.6-linux-amd64.tar.gz
  1. 解压:
# tar Cxzvf /usr/local containerd-1.6.6-linux-amd64.tar.gz
  1. 验证一下contaienrd是否安装成功:
# containerd -v
//出现版本信息则为安装成功,示例如下:
containerd github.com/containerd/containerd v1.6.6 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1

1.2 设置containerd的system启动

  1. 创建文件夹:
# mkdir -p /usr/local/lib/systemd/system/
  1. 写入官网给的service代码
# vim /usr/local/lib/systemd/system/containerd.service
//文件内容如下:
[Unit]
Description=containerd container runtime
Documentation=https://containerd.io
After=network.target local-fs.target

[Service]
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/local/bin/containerd

Type=notify
Delegate=yes
KillMode=process
Restart=always
RestartSec=5

LimitNPROC=infinity
LimitCORE=infinity
LimitNOFILE=infinity

TasksMax=infinity
OOMScoreAdjust=-999

[Install]
WantedBy=multi-user.target

由于篇幅限制,去掉了注释行。源代码可以去github官网拿:

https://github.com/containerd/containerd/blob/main/containerd.service

  1. 配置重载以及启动:
# systemctl daemon-reload
//设置开机自启
# systemctl enable --now containerd
//查看是否启动成功
# systemctl status containerd.service

1.3 安装runc

//下载
# wget https://github.com/opencontainers/runc/releases/download/v1.1.2/runc.amd64
//安装
# install -m 755 runc.amd64 /usr/local/sbin/runc

1.4 安装CNI插件

//下载
# wget https://github.com/containernetworking/plugins/releases/download/v1.1.1/cni-plugins-linux-amd64-v1.1.1.tgz
//解压到指定目录
# mkdir -p /opt/cni/bin
# tar Cxzvf /opt/cni/bin cni-plugins-linux-amd64-v1.1.1.tgz

2. 配置containerd

通过生产containerd的配置文件来修改containerd的配置。

2.1 containerd的cgroup驱动

设置containerd的cgroup,改为systemd的驱动方式

# mkdir -p /etc/containerd
//生成containerd的配置文件
# containerd config default | sudo tee /etc/containerd/config.toml

然后找到SystemCgroup字段,改为true

在这里插入图片描述

最后重载以及重启:

# systemctl daemon-reload
# systemctl restart containerd
# systemctl status containerd

2.2 containerd的网络代理

设置containerd的网络代理,使其能访问外网拉取镜像

# mkdir -p /etc/systemd/system/containerd.service.d/
# vim /etc/systemd/system/containerd.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.229,master2,"

代理配置部分根据自己环境修改。

重载以及重启:

# systemctl daemon-reload
# systemctl restart containerd
# systemctl status containerd

3. 总结

containerd的安装方法相对简单,踩坑的地方比较少,不仅如此,安装containerd,runc,cni,以及配置contianerd.service的部分还能做成一个shell脚本,安装比较方便。


编辑时间:2022-8-22

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值