Kubernetesクラスタが正常に起動しなかったことを一度に解決するプロセス

2303 ワード

今日、自分のKubernetesにログインしてクラスタをテストしたところ、クラスタが起動しなかったようです.kubectl cluster-infoを実行してクラスタ情報を表示します.
The connection to the server 192.168.37.201:6443 was refused - did you specify the right host or port?

第1反応Kubernetes API serverは起動しなかった.kubectl get pods --all-namespacesを運転していますが、やはりPodは何も見つかりませんでした.
私のKubernetesクラスタはkubeadmによってインストールされているので(kubeadmキーを使用してkubernetesクラスタを配置するを参照)、API serverもPodによって実行され、kubeletのみがsystemdによって実行されています.systemctl status kubeletを実行して確認すると、やはりkubeletサービスが失敗しました.つまり、APIサーバのエラーによってPodが検出されないわけではありません.kubeletエラーではなくAPIサーバにノードを登録できません.journalctl -xefu kubeletを再実行してsystemdログを表示します.本当のエラーの原因は次のとおりです.
failed to run Kubelet: Running with swap on is not supported, please disable swap! or set --fail-swap-on flag to false
cat /proc/swapsを運転して検査したが、やはりSwapは閉鎖されていなかった.
以前のインストールスクリプトを確認すると、/etc/fstabを修正してSwapを永久に閉じるコマンドが間違っていたことがわかりました.
Swapコマンドを正しく無効にするには、次の手順に従います.
#  Swap, 
swapoff -a

#  /etc/fstab Swap
cp -p /etc/fstab /etc/fstab.bak$(date '+%Y%m%d%H%M%S')
# Redhat
sed -i "s/\/dev\/mapper\/rhel-swap/\#\/dev\/mapper\/rhel-swap/g" /etc/fstab
# CentOS
sed -i "s/\/dev\/mapper\/centos-swap/\#\/dev\/mapper\/centos-swap/g" /etc/fstab
#  
mount -a

#  Swap
free -m
cat /proc/swaps

KubernetesクラスタmasterとnodesでSwapを無効にした後、次のコマンドを実行してKubeletを再起動します.
systemctl daemon-reload
systemctl restart kubelet

再運転kubectl get pods --all-namespaces Podが正常に動作していることを確認します.