Member-only story
つまりKubernetesの役割って?Part5
今回は Kubernetesの役割についての記事です。長い記事なので、5回に分けて投稿いたします。今回は第5回目(最終回)です。
Other Kubernetes concepts
Kubernetesについて学んでいると、他のコンセプトについても耳にすることがあります。ここでは、それらの概念のいくつかを簡単に紹介します。
Health checks
これまで、Kubernetesがトラフィックをルーティングする前に、Podがトラフィックを処理する準備ができているかどうかを確認することや、ヘルシーじゃないPodを再起動することについて説明してきました。しかし、KubernetesはどのようにしてPodの準備ができているか、あるいはヘルシーであるかを分かるのでしょうか?
これはヘルスチェックによって行われます。基本的にヘルスチェックとは、Kubernetes(またはシステムのヘルスチェックしたい何か)がpingを打つことができる単なるURLです。成功した(20倍)応答は減るしーであることを示し、失敗した(通常は50倍…またはタイムアウト)応答は問題があることを示します。
昔は単一のチェックだけを利用していました。しかし、Kubernetesでは、Podがトラフィックを処理できるかどうかを示すreadinessチェックと、Podがヘルシーであるかどうかを示すlivenessチェックの2つのヘルスチェックを指定するようになっています。
なぜこの2つなのでしょうか?もちろん、この2つには重複する部分もあります。例えば、メモリを使い果たしたPodは、トラフィックを処理する準備ができておらず、ヘルシーでもありません。しかし、Podがヘルシーであっても、トラフィックを処理する準備ができていない場合も多くあります。
- 新たに起動したPodは、トラフィックを処理できるようになるまで、キャッシュを放り込んでいく必要があるかもしれません。ヘルシーですが、準備ができていません。
- Podがデータベースなどのリソースに接続できない場合があります。問題はデータベース側にあるかもしれませんが、接続が回復するまでポッドはトラフィックを処理してはいけません。
- ポッドが長時間にわたるCPU負荷の高いジョブを実行している可能性があり、その間はこれ以上のトラフィックを処理しないようにする必要があります。
Podがその readinessチェックから失敗した応答を返す場合、Kubernetesは成功した応答を返すようになるまで、単にそのPodへのトラフィックのルーティングを停止します。しかし、ポッドが…