4章Kubernetesオブジェクトの基本操作

人々がなぜ新しい考えを恐れるのか私には理解できない。私には古い考えのほうが恐ろしい。

――John Cage(米国の作曲家、1912~92)

2章では、アプリケーションを構築してKubernetesにデプロイしました。この章では、そうしたプロセスに関与している基本的なKubernetesオブジェクト、すなわちPod(ポッド)、Deployment(デプロイメント)、Service(サービス)について説明します。また、Kubernetesでアプリケーションを管理するための必需品となる、Helmツールの使用方法も紹介します。

2章「2.5.1 デモアプリケーションの実行」で実例を試してみた後も、Kubernetesクラスタでは(明示的に終了しないかぎり)コンテナイメージが実行され続けているはずですが、これは実際のところ、どのような仕組みになっているのでしょうか。内部ではkubectl runコマンドが、Deploymentと呼ばれるKubernetesリソースを作成しています。では、これはどのようなもので、Deploymentは実際には、どのようにしてユーザのコンテナイメージを実行するのでしょうか。

4.1 Deployment

デモアプリケーションをDockerでどうやって実行したか思い出してみてください。docker container runコマンドでコンテナを起動し、docker stopコマンドで終了するまで実行が続きました。

しかし、コンテナが何か別の理由で終了するとしたらどうでしょうか。例えば、プログラムがクラッシュする、システムエラーが発生する、マシンがディスク容量を使い切ってしまう、さらには、 宇宙線が最悪のタイミングでCPUを直撃する(可能性は極めて低いものの現実に起こりうる現象です)といったことが考えられます。これがもしも本番のアプリケーションなら、今やユーザは困った事態に直面し、その状況は誰かがターミナルを使えるようになって ...

Get Kubernetesで実践するクラウドネイティブDevOps now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.