web-dev-qa-db-ja.com

Kubnetesポッドが「ポッドサンドボックスが変更され、強制終了され、再作成されます」で失敗する

Google Container Engineクラスタ(GKE)で、ポッド(またはそれ以上)が起動せず、そのイベントを確認していない場合があります。次のように表示されます

ポッドサンドボックスが変更されました。強制終了され、再作成されます。

私が待つなら-それは再試行し続けるだけです。
ポッドを削除して、デプロイメントのレプリカセットによってポッドを再作成できるようにすると、ポッドは正常に起動します。

動作に一貫性がありません。

Kubernetesバージョン1.7.6および1.7.8

何か案は?

10
Eldad Assis

Google Cloudステータスダッシュボード に投稿された次のメッセージを確認できます。

「Google Container Engine(GKE)クラスターに影響する問題を調査しています。Dockerがクラッシュしたり、ノードで再起動したりすると、ポッドをスケジュールできなくなります。

この問題は、Kubernetes v1.6.11、v1.7.8、v1.8.1を実行しているすべてのGKEクラスタに影響していると考えられています。

エンジニアリングチームは次のことを提案しています。ノードがリリースv1.6.11の場合は、ノードをv1.6.10にダウングレードしてください。ノードがリリースv1.7.8にある場合は、ノードをv1.7.6にダウングレードしてください。ノードがv1.8.1上にある場合は、ノードをv1.7.6にダウングレードしてください。

this doc の代替回避策もエンジニアリングチームによって提供されます。これらの回避策は、ノードをダウングレードできないお客様に適用されます。」

7
Carlos

GKE 1.8.1クラスタの1つのノードで同じ問題の影響を受けました(他のノードは問題ありませんでした)。私は次のことをしました:

  1. 影響を受けるノードでスケジュールされたすべてのポッドを受信するための余裕がノードプールにあることを確認してください。疑問がある場合は、ノードプールを1増やします。
  2. このマニュアル に従って影響を受けるノードをドレインします。

    kubectl drain <node>
    

    ローカルストレージでデーモンセットまたはポッドに関する警告が表示された場合は、操作を続行してください。

  3. Compute Engineで影響を受けるノードの電源を切ります。 GKEは、プールのサイズがプールの説明で指定されたサイズよりも小さい場合、交換ノードをスケジュールする必要があります。

私の場合、メモリとCPU制限が少なすぎるために発生しました

1
Gilad Sharaby