kubelet初始化中版本不匹配的问题

K8S部署常见问题

这个错误是kubelet没启动正常

环境

Docker version 23.0.1, build a5ee5b1

[root@xxx docker]# uname -a
Linux iZ2ze1yhibrihmd2jgfji7Z 3.10.0-1160.81.1.el7.x86_64 #1 SMP Fri Dec 16 17:29:43 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
[root@xxx docker]# uname -srm
Linux 3.10.0-1160.81.1.el7.x86_64 x86_64
[root@xxx docker]# uname -r
3.10.0-1160.81.1.el7.x86_64

1.18.0版本的K8s

解决方案

检查 kubelet 配置文件,例如 /etc/kubernetes/kubelet.conf文件

vi /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

添加以下内容

# Note: This dropin only works with kubeadm and kubelet v1.11+
[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
# This is a file that "kubeadm init" and "kubeadm join" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
# This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use
# the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file.
EnvironmentFile=-/etc/default/kubelet
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS

每次kubeadm 初始之前要先 reset下

换 docker 18.09 看一下,内核版本3的有cgroups的bug,建议升级到5.x的内核版本

Docker 和 K8s 之间也有版本依赖对应关系。

1.25的 K8s 默认不支持 Docker了。需要用 containerd

推荐个K8s安装工具 。。。

其操作系统内核较低,需要更新

  1. 重置操作系统
  2. 升级系统内核版本:centos7升级内核版本到5.19.0 - sky_cheng - 博客园
  3. 安装依赖软件 yum install -y socat conntrack ebtables ipset ipvsadm
  4. 选择容器运行环境,Docker 还是containerd,如果用 docker 就要选择 K8s 1.23.8 以下的版本,1.25的版本太高,默认不支持Docker,需要装插件比较复杂。
  5. K8s 运行相关文件

工具安装K8s
0. 每个服务器安装依赖:yum install -y socat conntrack ebtables ipset ipvsadm

  1. 下载并解压缩文件,得到kk文件,https://github.com/kubesphere/kubekey/releases/download/v3.0.7/kubekey-v3.0.7-linux-amd64.tar.gz
    2。 生成K8s集群配置文件 ./kk create config --with-kubernetes 1.25.1 -f k8s1.yaml
  2. 配置服务器信息
  3. 创建 K8s 集群 ./kk create cluster --container-manager containerd -f k8s1.yaml

各服务器配置

如果只是玩的话,推荐Kind去弄个K8s玩玩

https://kind.sigs.k8s.io/docs/user/quick-start/#installation