はじめに
kubeadmでk8sクラスタを作って、「クラスタ作り直したいな…」と思ったことは誰にでもあるはずです。
そこでよく出るのがkubeadm resetというコマンド。
あまたのWebサイトではこのコマンドだけでk8sクラスタを削除できるという話が書いていたり書いていなかったりするわけですが、このコマンドで削除した後、再度同じノード上でクラスタを組もうとするとエラーが発生したりします。そうです。実はkubeadm resetコマンドだけでは不足しているのです。
あくまで私の環境でではありますが、kubeadm resetからクラスタ再生成までの手順を備忘録的なノリで書いていきたいと思います。
私のk8sクラスタは以下の手順で作っております。
手順
workerノード側でまず以下を実行。
全workerでこの対応をしたら、マスター側でも同様に実行。
kubeadm reset --force
systemctl stop kubelet
rm -rf /etc/kubernetes/
rm -rf ~/.kube/
rm -rf /var/lib/kubelet/
rm -rf /var/lib/cni/
rm -rf /etc/cni/
rm -rf /var/lib/etcd/
iptables -F && iptables -X
reboot
なおこのコマンドセットは以下のサイトを参考にしています。
ありがとうございます。
再起動後、以下を実行
swapoff -a
masterで以下を実行
kubeadm init --control-plane-endpoint=k8s-master
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
kubectl cluster-info
masterで出力されたkubeadm joinコマンドをworker上で実行。
(以下はsampleコマンド)
kubeadm join k8s-master:6443 --token k3jlcm.s0qo8inmbrspbhf0 \
--discovery-token-ca-cert-hash sha256:82f316967584a51282f500875c6b53c02b99ac4d002d1de13d656820f0c2d6da
最後にmasterで以下を実行
k8sクラスタをまっさらな状態に作り直せました。ちゃんちゃん。
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/calico.yaml