Johnman.md

プログラミングのことや個人的なことを書きます。たぶん。

Learn Kubernetes Basics 終えた【Explore Your App】

Kubernetesチュートリアル Learn Kubernetes Basics を一通りやったので、軽くメモした内容を書いておきます。

前回の記事はこれ。

johnmanjiro13.hatenablog.com

Explore Your App

ここでは次のことを学ぶ。

Kubernetes Pods

  • Kubernetes での最小単位
  • 複数のコンテナのまとまり
  • たとえば、Node.js アプリケーションのコンテナと、Node.js Web サーバによって公開される別のコンテナの両方を含めることができる
  • Pod 内のコンテナは IP アドレスとポート番号を共有し、常に同じ場所に配置され、同じスケジュールに入れられ、同じノード上の共有コンテキストで動作する

前回の記事で書いた Deployment は直接コンテナを作成するのではなく、コンテナを内部にもった Pods を作成する。ノードに障害が発生した場合は、同じ Pod が Cluster 内の他の使用可能なノードにスケジュールされる。

Kubernetes Nodes

  • 前述した Pod はすべて Node の上で動く
  • Node は複数 Pod をもち、master は Cluster 内の Node 間で Pod のスケジュールを自動的に処理する
  • すべての Node は最低でも以下を実行する
    • kubelet : Kubernetes master と Node 間で通信をするプロセス。マシン上で動作している Pod とコンテナを管理する。
    • Container runtime (like docker, rkt) : コンテナイメージを pull し、解凍し、アプリケーションを実行する。

Troubleshooting with kubectl

デプロイされたアプリケーションやその環境の情報を取得するコマンド一覧。

  • kubectl get : リソースのリストを取得
  • kubectl describe : リソースの詳細情報を表示
  • kubectl logs : Pod 内のコンテナのログを表示
  • kubectl exec : Pod 内のコンテナでコマンドを実行

Pod 内にコンテナが1つしかない場合、コンテナ名を省略できる。

kubectl めちゃくちゃ便利ですね。