Cgroup不支持pids子系统。
    工作节点加入后,一直是NotReady状态。describe后发现报错如下:

    Warning FailedNodeAllocatableEnforcement (x1411 over 23h)
    kubelet, lbw-node-3
    Failed to update Node Allocatable Limits [“kubepods”]: failed to set supported cgroup subsystems for cgroup [kubepods]: Failed to find subsystem mount for required subsystem: pids
    1
    2
    3
    由错误日志可知是节点中的Cgroup不支持子系统pids所致。于是用uname -r查看内核版本:

    [root@localhost ~]# uname -r
    3.10.0-327.el7.x86_64
    1
    2
    然后查看该内核所支持的CGROUP,发现的确不支持PIDS。

    [root@localhost ~]# cat /boot/config-3.10.0-327.el7.x86_64 | grep CGROUP
    CONFIG_CGROUPS=y
    # CONFIG_CGROUP_DEBUG is not set
    CONFIG_CGROUP_FREEZER=y
    CONFIG_CGROUP_DEVICE=y
    CONFIG_CGROUP_CPUACCT=y
    CONFIG_CGROUP_HUGETLB=y
    CONFIG_CGROUP_PERF=y
    CONFIG_CGROUP_SCHED=y
    CONFIG_BLK_CGROUP=y
    # CONFIG_DEBUG_BLK_CGROUP is not set
    CONFIG_NETFILTER_XT_MATCH_CGROUP=m
    CONFIG_NET_CLS_CGROUP=y
    CONFIG_NETPRIO_CGROUP=m
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    然后在运行yum update -y后,使用yum list kernel命令查看当前安装的内核.

    [root@lbw-master ~]# yum list kernel
    Installed Packages
    kernel.x86_64 3.10.0-327.el7 @anaconda
    kernel.x86_64 3.10.0-862.3.2.el7 @updates
    kernel.x86_64 3.10.0-957.21.3.el7 @updates
    kernel.x86_64 3.10.0-957.27.2.el7 @updates
    1
    2
    3
    4
    5
    6
    查看新版内核所支持的CGOURP

    [root@lbw-master ~]# cat /boot/config-3.10.0-957.27.2.el7.x86_64 | grep CGROUP
    CONFIG_CGROUPS=y
    # CONFIG_CGROUP_DEBUG is not set
    CONFIG_CGROUP_FREEZER=y
    CONFIG_CGROUP_PIDS=y
    CONFIG_CGROUP_DEVICE=y
    CONFIG_CGROUP_CPUACCT=y
    CONFIG_CGROUP_HUGETLB=y
    CONFIG_CGROUP_PERF=y
    CONFIG_CGROUP_SCHED=y
    CONFIG_BLK_CGROUP=y
    # CONFIG_DEBUG_BLK_CGROUP is not set
    CONFIG_NETFILTER_XT_MATCH_CGROUP=m
    CONFIG_NET_CLS_CGROUP=y
    CONFIG_NETPRIO_CGROUP=y
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    发现的确有PIDS支持。于是接下来就是想办法将内核进行升级了。
    用以下命令查看所有可用的内核

    [root@lbw-master ~]# awk -F\’ ‘$1==”menuentry “ {print i++ “ : “ $2}’ /etc/grub2.cfg
    0 : CentOS Linux (3.10.0-957.27.2.el7.x86_64) 7 (Core)
    1 : CentOS Linux (3.10.0-957.21.3.el7.x86_64) 7 (Core)
    2 : CentOS Linux (3.10.0-862.3.2.el7.x86_64) 7 (Core)
    3 : CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)
    4 : CentOS Linux (0-rescue-c4da2e677e384e85b9fd9f27eb3a9f8a) 7 (Core)
    1
    2
    3
    4
    5
    6
    用grub2-set-default命令设置默认启动内核。利用设为0表示使用上一个命令输出的第一个内核。

    grub2-set-default 0
    1
    然后用grub2-mkconfig命令生成配置文件并应用在grub.config文件中。

    grub2-mkconfig -o /boot/grub2/grub.cfg
    1
    执行完毕后,用reboot命令重启机器即可。
    ————————————————
    版权声明:本文为CSDN博主「满天星lbw」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/lbw520/java/article/details/96446272