2017-10-17 6 views
0

kubernetesローリングアップデートは、ポッドで動作しているアプリケーションに影響するかどうかを確認しますか?これは簡単な質問ですが、私はドキュメンテーションで答えが見えません。私のアプリケーションはk8sローリングアップデートをサポートするように設計されていなければなりませんか?kubernetesのローリングアップデートは、ポッドで動作しているアプリケーションに影響するかどうか?

答えて

1

あなたのアプリケーションは、プロセスの終了後も生き残ることができるように設計する必要があります。それは優雅であるかどうか。それは、サーバーが予期せず電源が切れてしまったときに、生き残りを望む通常のアプリケーション(つまり、データを破損せず、ステートフルな場合は緩い状態ではなく)で実際には異なりません。これをクラスタ上で実行すると、複数のインスタンスを並列に実行することをデプロイメントが意図していることをすでに知っていることでしょう。そのため、アプリケーションも同様に生き残る必要があります。

ここでは、それがあなたのような場合にはよりうまく動作するようにすることはできません。 SIGKILLが受信されたときにいくつかの終了処理を追加しますが、それは正確にkube固有ではありません。

+0

k8sがポッドコンテナに送るシグナルの正確なセットは何ですか、リンクplを投稿できますか? –

+0

https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods –

0

はい、既存のPODは終了し、新しい画像で新しいPODを再作成します。ローリングアップデートプロセスを制御するには、maxUnavailablemaxSurgeを指定できます。また、アプリケーションにヘルスチェックURLが定義されていることを確認してください。

+0

私の質問は、アプリケーションの影響が多かったです。私のアプリは、ポッドの終了と他のポッドでの継続を処理するために構築されなければならないのですか?あなたはk8sドキュメントの関連トピックを指すことができますか? –

+0

kubernetesはポッドを終了するのに30秒かかります。ポッドを配備するときは、配備のyamlファイルにlivenessProbeを設定します。このページには、livenessProbeのサンプル・サンプルもあります。 https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/ – sfgroups

関連する問題