百度和谷歌都搜过了,确实有人遇到过,但是没有解决办法
可怕,都是没有强迫症的人吗?
PS:我用 vagrant 启动 centos-7 安装 k8s 没有这个警告
[preflight] Running pre-flight checks
[WARNING SystemVerification]: missing optional cgroups: hugetlb
1
defunct9 2021-07-05 19:12:15 +08:00 via iPhone
ignore
|
2
liuxu 2021-07-05 20:12:21 +08:00
新 debian 启动 docker 一直有一些 warning,都是 swap 、memory 相关,一般只需要在 grub 启动配置里面加一些参数就好了,修改 /etc/default/grub,GRUB_CMDLINE_LINUX 的后面加上 cgroup_enable=memory 后重启看看
|
3
12101111 2021-07-05 20:17:22 +08:00 1
Debian10 内核版本低, 没有 backport 此功能, 需要 Linux 5.6+
红帽的内核会 backport 大量的功能, 版本号仅代表原始 fork 的版本 https://github.com/torvalds/linux/commit/faced7e0806cf44095a2833ad53ff59c39e6748d#diff-e529163925764917220948502e9b83c1faebff54c7cd739b93b96b4641f930f1 |
6
dunhanson OP @12101111 我对比了,debian10 的内核是 Linux 4.19.0-16-amd64,centos7 是 Linux 3.10.0-1127.el7.x86_64
|
7
liuxu 2021-07-05 20:35:58 +08:00
@dunhanson 他的意思是说,centos7 的内核版本号虽然低,但其实代码一只有从新内核里拉代码进来,debian 没有
test :/boot$ cat /etc/debian_version 10.2 test :/boot$ cat config-4.19.0-11-amd64 |grep -i hugetlb # CONFIG_CGROUP_HUGETLB is not set CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y 我看了下 debian10 的内核选项,cgroup hugetlb 选项已经有了,只不过没打开,你如何很想去掉这个 warning 的话就拿 /boot/config-4.19.0-11-amd64 这个配置重新编译内核,把 hugetlb 打开 |
8
dunhanson OP # 设置
sudo apt-get remove docker docker-engine docker.io sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - sudo add-apt-repository \ "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \ $(lsb_release -cs) \ stable" # 安装 sudo apt-get update sudo apt-get install docker-ce # 服务开启并设置开机启动 systemctl start docker systemctl enable docker # 关闭 firewalld systemctl stop firewalld systemctl disable firewalld # 关闭 swap swapoff -a sed -i 's/^.*swap.*$/#&/' /etc/fstab # cgroupdriver 修改(不设置 kubeadm init 会有警告) vi /etc/docker/daemon.json { "exec-opts": ["native.cgroupdriver=systemd"], "registry-mirrors": ["https://tp9vl69u.mirror.aliyuncs.com"] } systemctl daemon-reload systemctl restart docker |
9
dunhanson OP 允许 iptables 检查桥接流量
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf br_netfilter EOF cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sudo sysctl --system |
10
dunhanson OP 安装 kubeadm 、kubelet 和 kubectl
# 这一步需要手动下载保存到对应路径 # https://mirrors.tuna.tsinghua.edu.cn/help/kubernetes/ # mv /home/vagrant/apt-key.gpg /usr/share/keyrings/kubernetes-archive-keyring.gpg sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/kubernetes/apt kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl |
11
dunhanson OP kubeadm init --apiserver-advertise-address=192.168.33.10
|
14
liuxu 2021-07-05 21:11:20 +08:00
@dunhanson 对的,或者你可以试试新内核有没有默认选中这个选项
我重新用 debian10 重现了下你的环境,可以看到 cgroup 的 hugetlb 没有选中,而且 swap 也不是开机启动的,需要 linux kernel 启动命令行里面添加上 General setup -> Control Group support -> HugeTLB controller |
15
liuxu 2021-07-05 21:26:58 +08:00
反正你也是用 vagrant 搭建环境,我建议你直接 debian11,我刚刚试了下,vagrant 的 debian/bullseye64 默认是打开的
vagrant@bullseye:/boot$ cat config-5.10.0-5-amd64 | grep -i hugetlb CONFIG_CGROUP_HUGETLB=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y |
17
liuxu 2021-07-05 21:29:57 +08:00
或者我建议你用 ubuntu20.04 ,容器环境选 ubuntu 准没错,很久以前 docker 官方都是直接建议 ubuntu,我看了我的 ubuntu20.04.2,默认也是开启的,而且 ubuntu server lts 也是 5 年维护期
|
21
Yadomin 2021-07-05 23:33:55 +08:00 via Android
装 debian 的 backports 内核
不过 bullseye 也要出了 |
22
dunhanson OP @liuxu 对了,Control Group support 安装完,还能回去设置吗?用 dpkg-reconfigure
|
25
ysicing 2021-07-06 13:07:31 +08:00
额,使用 debian 不都默认安装 backports 么 😊😭么
|