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安装工具 。。。
其操作系统内核较低,需要更新
- 重置操作系统
- 升级系统内核版本:centos7升级内核版本到5.19.0 - sky_cheng - 博客园
- 安装依赖软件 yum install -y socat conntrack ebtables ipset ipvsadm
- 选择容器运行环境,Docker 还是containerd,如果用 docker 就要选择 K8s 1.23.8 以下的版本,1.25的版本太高,默认不支持Docker,需要装插件比较复杂。
- K8s 运行相关文件
工具安装K8s
0. 每个服务器安装依赖:yum install -y socat conntrack ebtables ipset ipvsadm
- 下载并解压缩文件,得到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 - 配置服务器信息
- 创建 K8s 集群 ./kk create cluster --container-manager containerd -f k8s1.yaml
各服务器配置
如果只是玩的话,推荐Kind去弄个K8s玩玩
https://kind.sigs.k8s.io/docs/user/quick-start/#installation