记一次openSUSE Tumbleweed下安装 k8s

发布时间 2023-07-12 11:38:11作者: Rexxar

因为没有K8s基础的坑

kubeadm kubelet 最好指定版本安装,因为kubelet的版本需要小于等于kubeadm的版本,否则就会报错。

运行 kubeadm init,不用手动 systemctl start kubelet,因为会报错不满足某某条件。

openSUSE的官方的kubernetes-kubelet包安装后,/usr/bin/kubelet只是一个shell脚本而非k8s官方的可执行文件
/usr/bin/kubelet1.22才是可执行文件,因为kubeadm init会默认引用/usr/bin/kubelet,所以要ln -sf /usr/bin/kubelet1.22 /usr/bin/kubelet来使用。

安装不指定版本就会出现报错:
this version of kubeadm only supports deploying clusters with the control plane version >= 1.26.0. Current version: v1.23.4
很奇怪的是,/usr/bin/kubelet/usr/bin/kubeadm/usr/local/bin/kubectl的版本分别为v1.27.3、v1.26.6、v1.26.5;
为什么会出现 Current version: v1.23.4 呢?可能是附带其他组件版本的问题?

安装流程

操作时间在2023年7月。

禁用 swap、编辑 /etc/hosts 这些参考别的文章。

安装 K8s 相关包

安装kubernetes1.23-kubeadm,就会附带安装:

The following 12 NEW packages are going to be installed:
  conntrack-tools cri-o cri-o-kubeadm-criconfig cri-tools ebtables kubernetes1.22-kubelet kubernetes1.23-kubeadm kubernetes1.27-kubelet kubernetes1.27-kubelet-common
  libebtc0 libnetfilter_cthelper0 libnetfilter_cttimeout1

链接 kubelet 特定版本二进制文件

cd /usr/bin
ln -sf kubelet1.22 kubelet

kubeadm 初始化

kubeadm init --apiserver-advertise-address=0.0.0.0   \
--image-repository registry.aliyuncs.com/google_containers  \
--service-cidr=10.10.0.0/16 --pod-network-cidr=10.244.0.0/16 \
--cri-socket=/var/run/dockershim.sock