工作节点NotReady处理

工作节点NotReady处理

情况一

参考链接 《Docker中的Cgroup Driver:Cgroupfs 与 Systemd》

异常信息如下

failed to run Kubelet: failed to create kubelet: misconfiguration: kubelet cgroup driver: "systemd" is different from docker cgroup driver: "cgroupfs"

原因分析

文件驱动默认由systemd改成cgroupfs, 而我们安装的docker使用的文件驱动是systemd, 造成不一致, 导致镜像无法启动

查看Docker信息

docker info
Cgroup Driver: systemd
或者
Cgroup Driver: cgroupfs

现在有两种方式, 一种是修改docker, 另一种是修改kubelet

启动kubelet

service kubelet start

查看kubelet日志

journalctl -f -u kubelet

解决方式一:修改docker

修改/etc/docker/daemon.json,加入以下内容:

{
  "exec-opts": ["native.cgroupdriver=systemd"]
}

重启docker

systemctl restart docker
systemctl status docker

解决方式二:修改kubelet

DOCKER_CGROUPS=$(docker info | grep 'Cgroup'| cut -f4 -d' ')

echo $DOCKER_CGROUPS

cat >/etc/sysconfig/kubelet<<EOF
KUBELET_EXTRA_ARGS="--cgroup-driver=$DOCKER_CGROUPS --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.1"
EOF

重启docker配置和kubelet

systemctl daemon-reload
systemctl enable kubelet && systemctl restart kubelet

情况二

查看NotReady节点,发现flannel并没有在/etc下创建/etc/cni/net.d/10-flannel.conflist文件,而其它工作节点都有此文件

# 10-flannel.conflist
{
  "name": "cbr0",
  "plugins": [
    {
      "type": "flannel",
      "delegate": {
        "hairpinMode": true,
        "isDefaultGateway": true
      }
    },
    {
      "type": "portmap",
      "capabilities": {
        "portMappings": true
      }
    }
  ]
}

从其它工作节点将该文件拷贝过来,并重启kubelet

systemctl restart kubelet
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值