2016-04-17 6 views
0

fabric8を使用して、次のコードでkuberenetesポッドのステータスを取得しています。Javaを使用してkubernetesで終端ポッドを識別する方法

KubernetesHelper.getPodStatusText(pod); 

私はコンテナ内にアプリを配置し、コンテナとポッドとの間に1対1のマッピングがあります。私の要件は、アプリケーションを再デプロイすることです。したがって、ポッドを削除した後、ステータスをチェックして、削除中に「実行中」のステータスを返します。

新しく配備されたアプリも「実行中」のステータスを返すので、このポッドが削除されたことを特定できません。健全なポッドと終結するポッドを識別するために使用できるポッドの他の変数はありますか?

答えて

1

これを実行する1つの方法は、ローリングアップグレードを実行することです。これにより、配備されたアプリケーションでダウンタイムが発生しなくなります(古いポッドが停止する前に新しいポッドが開始されます)。 1つの注意点は、レプリケーションコントローラまたはレプリケーションセットを使用する必要があることです。ローリング展開のほとんどは、新しいバージョンのソフトウェアのコンテナのイメージを更新するだけです。

これは、fabric8Kubernetes Java clientでJavaを通じて実行できます。 Hereの例:

client.replicationControllers() 
    .inNamespace("thisisatest") 
    .withName("nginx-controller") 
    .rolling().updateImage("nginx"); 

レプリケーションコントローラ(レプリカ、環境変数など)のいずれかの設定を変更することができます。新しいバージョンを実行するポッドがReady &の古い複製&ポッドが停止されたときにコールが返されます&が削除されました。

関連する問題