Kubernetesクラスタが正常に起動しなかったことを一度に解決するプロセス
2303 ワード
今日、自分のKubernetesにログインしてクラスタをテストしたところ、クラスタが起動しなかったようです.
第1反応Kubernetes API serverは起動しなかった.
私のKubernetesクラスタはkubeadmによってインストールされているので(kubeadmキーを使用してkubernetesクラスタを配置するを参照)、API serverもPodによって実行され、
以前のインストールスクリプトを確認すると、
Swapコマンドを正しく無効にするには、次の手順に従います.
KubernetesクラスタmasterとnodesでSwapを無効にした後、次のコマンドを実行してKubeletを再起動します.
再運転
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が正常に動作していることを確認します.