Learn Kubernetes Basics 終えた【Explore Your App】
Kubernetes のチュートリアル Learn Kubernetes Basics を一通りやったので、軽くメモした内容を書いておきます。
前回の記事はこれ。
Explore Your App
ここでは次のことを学ぶ。
- Kubernetes Pods について
- Kubernetes Nodes について
- デプロイされたアプリケーションのトラブルシューティング
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 めちゃくちゃ便利ですね。