华为鲲鹏麒麟安装containerd
一、安装containerd的先决的条件
cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf overlay br_netfilter EOF sudo modprobe overlay sudo modprobe br_netfilter # 设置必需的 sysctl 参数,这些参数在重新启动后仍然存在。 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 # 应用 sysctl 参数而无需重新启动 sudo sysctl --system
二、安装containerd
参考官网地址:https://github.com/containerd/containerd
下载containerd ARM版 我选的是1.6.0
下载地址是:https://github.com/containerd/containerd/releases/download/v1.6.0/containerd-1.6.0-linux-arm64.tar.gz
上传到服务器解压到/usr/local/下
tar -zxvf containerd-1.6.0-linux-arm64.tar.gz -C /usr/local/
创建相应的目录
mkdir /etc/containerd
生成的默认配置文件
containerd config default> /etc/containerd/config.toml
修改配置文件
sed -i "s#k8s.gcr.io/pause:3.2#registry.aliyuncs.com/google_containers/pause:3.6#g" /etc/containerd/config.toml [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc] ... [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] SystemdCgroup = true
配置containerd服务 参考https://github.com/containerd/containerd/blob/main/containerd.service地址
vim /usr/lib/systemd/system/containerd.service # Copyright The containerd Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. [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 # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container-local accounting. LimitNPROC=infinity LimitCORE=infinity LimitNOFILE=infinity # Comment TasksMax if your systemd version does not supports it. # Only systemd 226 and above support this version. TasksMax=infinity OOMScoreAdjust=-999 [Install] WantedBy=multi-user.target
启动服务
[root@ecs-arm-ky-003 ~]# systemctl enable containerd [root@ecs-arm-ky-003 ~]# systemctl start containerd [root@ecs-arm-ky-003 ~]# systemctl status containerd ● containerd.service - containerd container runtime Loaded: loaded (/usr/lib/systemd/system/containerd.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2022-03-30 22:37:14 CST; 8s ago Docs: https://containerd.io Process: 6741 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS) Main PID: 6743 (containerd) Tasks: 9 Memory: 22.3M CGroup: /system.slice/containerd.service └─6743 /usr/local/bin/containerd Mar 30 22:37:14 ecs-arm-ky-003 containerd[6743]: time="2022-03-30T22:37:14.493840223+08:00" level=info msg=serving... address=/run/containerd/containerd.sock.ttrpc Mar 30 22:37:14 ecs-arm-ky-003 containerd[6743]: time="2022-03-30T22:37:14.493883563+08:00" level=info msg=serving... address=/run/containerd/containerd.sock Mar 30 22:37:14 ecs-arm-ky-003 containerd[6743]: time="2022-03-30T22:37:14.493931984+08:00" level=info msg="containerd successfully booted in 0.029548s" Mar 30 22:37:14 ecs-arm-ky-003 systemd[1]: Started containerd container runtime. Mar 30 22:37:14 ecs-arm-ky-003 containerd[6743]: time="2022-03-30T22:37:14.501938402+08:00" level=info msg="Start subscribing containerd event" Mar 30 22:37:14 ecs-arm-ky-003 containerd[6743]: time="2022-03-30T22:37:14.502427106+08:00" level=info msg="Start recovering state" Mar 30 22:37:14 ecs-arm-ky-003 containerd[6743]: time="2022-03-30T22:37:14.502525827+08:00" level=info msg="Start event monitor" Mar 30 22:37:14 ecs-arm-ky-003 containerd[6743]: time="2022-03-30T22:37:14.502546498+08:00" level=info msg="Start snapshots syncer" Mar 30 22:37:14 ecs-arm-ky-003 containerd[6743]: time="2022-03-30T22:37:14.502559648+08:00" level=info msg="Start cni network conf syncer for default" Mar 30 22:37:14 ecs-arm-ky-003 containerd[6743]: time="2022-03-30T22:37:14.502569768+08:00" level=info msg="Start streaming server"
三、安装crictl
安装crictl 参考:https://github.com/kubernetes-sigs/cri-tools
下载地址:https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.20.0/crictl-v1.20.0-linux-arm64.tar.gz
tar xvf crictl-v1.20.0-linux-arm64.tar -C /usr/local/bin/ cat > /etc/crictl.yaml <<EOF runtime-endpoint: unix:///run/containerd/containerd.sock image-endpoint: unix:///run/containerd/containerd.sock timeout: 10 debug: false EOF crictl config runtime-endpoint unix:/run/containerd/containerd.sock [root@ecs-arm-ky-003 ~]# crictl pull nginx Image is up to date for sha256:fd3d31a07ae69fb788a579676d2c5f4c3dd201f57bcd6c174cd0bd6475886f23 [root@ecs-arm-ky-003 ~]# crictl images IMAGE TAG IMAGE ID SIZE docker.io/library/nginx latest fd3d31a07ae69 55.4MB
四、安装runc
下载地址:https://github.com/opencontainers/runc/releases/download/v1.1.1/runc.arm64
wget https://github.com/opencontainers/runc/releases/download/v1.1.1/runc.arm64 chmod +x runc.arm64 ./runc.arm64 mv runc.arm64 /usr/bin/runc runc