指定k8s版本来构建集群
安装
如果已经安装了,就先删除一次。
sudo kubeadm reset
sudo apt purge kubelet kubeadm kubectl
获取版本列表
apt list -a kubeadm
在执行apt-get install时,要指定版本。这次我们尝试指定1.22.11版本。
文档 – 安装kubeadm
# 必要パッケージ
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
# gpgキー
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
# リポジトリ
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
# バージョンを指定してインストール
sudo apt-get update
sudo apt-get install -y kubelet=1.22.11-00 kubeadm=1.22.11-00 kubectl=1.22.11-00
sudo apt-mark hold kubelet kubeadm kubectl
构建集群
kubeadm init \
--control-plane-endpoint=<CONTROL_PLANE_IP> \
--apiserver-advertise-address=<CONTROL_PLANE_IP> \
--pod-network-cidr=<POD_CIDR> \
--kubernetes-version=1.22.11
如果Docker和containerd共存,并且想要使用containerd的话
kubeadm init \
--control-plane-endpoint=<CONTROL_PLANE_IP> \
--apiserver-advertise-address=<CONTROL_PLANE_IP> \
--pod-network-cidr=<POD_CIDR> \
--kubernetes-version=1.22.11 \
--cri-socket=/run/containerd/containerd.sock
※参考
$ kubeadm init -h
...
--cri-socket string Path to the CRI socket to connect. If empty kubeadm will try to auto-detect this value; use this option only if you have more than one CRI installed or if you have non-standard CRI socket.
...
--kubernetes-version string Choose a specific Kubernetes version for the control plane. (default "stable-1")
...