DEV Community 日本語
フォロー
Dockerはあなたのアプリが実行されることを証明し、Kubernetesはそれが運用可能であることを証明します。
著者は、すべての技術的指標が正常に見えるにもかかわらず、Kubernetes内のサービスがダウンしているという一般的なデバッグシナリオを説明しています。これは、Dockerがアプリケーションの実行を検証するのに対し、Kubernetesはそれが運用可能であることを検証するため、発生します。Dockerの単純さは、本番環境でアプリケーションが答えなければならない4つの重要な質問を隠しています。最初の質問は、アプリケーションが名前で、アドレスだけでなく見つけられるかどうかです。Kubernetesポッド内のlocalhostは、ポッド自体のみを参照するためです。次に、アプリケーションは、SIGTERMのようなシグナルに適切に応答することで、外部システムによってクリーンに終了されることを処理できる必要があります。3番目に重要な側面は、トラフィックを受信する前に準備ができていることを証明することです。Kubernetesは、起動した瞬間から積極的にアプリケーションのヘルスをプローブするためです。最後に、アプリケーションは、Kubernetesの設定およびストレージメカニズムを使用することで、ローカルディスク永続性に依存せずに機能する必要があります。これらの4つの質問を理解することは、DockerとKubernetesでアプリケーションが異なる動作をする理由を解明するのに役立ちます。著者は、これらの点を対処しないことが一般的な本番環境の問題につながる方法の例を提供しています。この説明はKubernetesに対する反対意見ではなく、Dockerがチームに蓄積を許容する運用上の負債の探求です。