CORE CONCEPTS – PODS K8s

Podとは、KubernetesでDockerコンテナを管理するための最小単位のものでクラスターで実行されるプロセスのことである。Podの概観は公式サイトでチェック。
アプリケーションコンテナだけでなく、ストレージボリュームの集まりでもあるが、Dockerコンテナが一般的である。

kubectl get pods
pod の数を数える。結果は0です。

READY は何を表しているのか?
Running Containers in POD / Total Cointainers in POD
podの中で実行されているコンテナ数 / PODの中の総コンテナ数

kubectl run nginx –image=nginx
nginxイメージを使用して新しいpodを作成。

kubectl get pods -o wide
ポッドが配置されているノードを確認。以下のpod達はcontrolplaneに配置されている。

kubectl describe pod webapp
Webアプリのpodには幾つのコンテナーが含まれているか確認。
Containers配下を確認する。この場合はnginxとagentxがある。
agentxの方のstate(状態)はError もしくはWaiting(待機)状態である。

agentxがError/Waiting状態の理由はkubectl describe pod webappコマンドのEvents配下で確認できます。以下の場合はDockerからイメージのプルが出来なく、レポジトリが無いとの事。

kubectl delete pod webapp
webapp podの削除


以下のpod名とイメージ名、YAMLファイルにて新しいpodを作成するには。
Name: redis
Image Name: redis123

kubectl run redis –image=redis123 –dry-run=client -o yaml > redis-definition.yaml
–dry-run=client -o yamlのオプションを使用してマニフェストファイルを作成。

kubectl create -f redis-definition.yaml

kubectl create -f コマンドにてマニフェストファイルからリソースを作成する。

kubectl get pods で作成したpodを確認。

kubectl edit pod redis
kubectl editコマンドを使用してポッドのイメージ名をredis123からredisに更新。
viまたはNanoエディターを使用。

kubectl apply -f redis-definition.yaml
編集したファイルのアップデートを行う。