Kubernetes Podは自動的に再起動し続ける--Exit Code=0
2479 ワード
文書ディレクトリ問題 2ソリューション 1問題
最近kubernetesをやっていて、コンテナを作って、k 8 sを使ってDepolymentで配置していますが、コンテナの状態が
上記のコマンドにより、Podが正常に終了した(すなわちExit code=0)、つまりPodが正常に起動したことに気づき、運転が終了しました.k 8 sにおけるPodのデフォルトrestartPolicyはAlwaysであるため、つまりPodは再起動を継続する.最後に、いくつかのスクリプトを実行することによって、Podが自動的に再起動し続ける原因はPid=1のプロセスがないこと、あるいはPodの起動時に実行されるスクリプトが1番のプロセスであることが分かったが、スクリプトの実行が完了すると1番のプロセスがないので、Podは実行が終了したことに相当する.次のリンクを表示できます.https://segmentfault.com/a/1190000009583997.
2ソリューション
私が作ったコンテナは起動時にデフォルトでshellスクリプトが実行されます.さっきもこのスクリプトがコンテナの1番プロセスだと言いましたが、上記のリンクで説明した方法と同じように、スクリプトに次のような内容を追加しました.
リンクに記載されているように発見されました.つまり、この1番プロセス(注:1番プロセスはすべてのプロセスの祖先であり、存在しなければならない)を維持し、死なせないようにする必要があります.これにより、コンテナはrunning状態になります.では、この1番のプロセスをどのように維持しますか?実は方法も比較的に簡単で、以下は簡単に2つの方法を提供します:メソッド1:shellスクリプトの最後に次の を追加します.メソッド2:shellスクリプトにデッドサイクル を追加
関連リファレンス: docker nginxを実行するにはdaemon off を使用する理由 Kubernetesコンテナ設定起動時に実行するコマンドおよびそのパラメータ Googleガイド:コンテナを構築するためのベストプラクティス Kubernetesトラブルシューティングガイド-分析コンテナ終了ステータスコード Kubernetes Pod異常エラー
最近kubernetesをやっていて、コンテナを作って、k 8 sを使ってDepolymentで配置していますが、コンテナの状態が
Rnning->Complete->CrashLoopBackOff
の3つの状態間で変換されているのが見えます.理由を確認するために、次のコマンドを使用しました.# pod
kubectl get pods -o wide -n <namespace-name>
# pod log
kubectl logs <pod-name>
# pod
kubectl describe <pod-name>
上記のコマンドにより、Podが正常に終了した(すなわちExit code=0)、つまりPodが正常に起動したことに気づき、運転が終了しました.k 8 sにおけるPodのデフォルトrestartPolicyはAlwaysであるため、つまりPodは再起動を継続する.最後に、いくつかのスクリプトを実行することによって、Podが自動的に再起動し続ける原因はPid=1のプロセスがないこと、あるいはPodの起動時に実行されるスクリプトが1番のプロセスであることが分かったが、スクリプトの実行が完了すると1番のプロセスがないので、Podは実行が終了したことに相当する.次のリンクを表示できます.https://segmentfault.com/a/1190000009583997.
2ソリューション
私が作ったコンテナは起動時にデフォルトでshellスクリプトが実行されます.さっきもこのスクリプトがコンテナの1番プロセスだと言いましたが、上記のリンクで説明した方法と同じように、スクリプトに次のような内容を追加しました.
echo "PID of this script: $$"
echo "PPID of this script: $PPID"
echo "UID of this script: $UID"
リンクに記載されているように発見されました.つまり、この1番プロセス(注:1番プロセスはすべてのプロセスの祖先であり、存在しなければならない)を維持し、死なせないようにする必要があります.これにより、コンテナはrunning状態になります.では、この1番のプロセスをどのように維持しますか?実は方法も比較的に簡単で、以下は簡単に2つの方法を提供します:
tail -f /var/log/*
while true; do
sleep 100;
done
関連リファレンス: