Kubernetes: マニフェスト ファイルで単純な Pod を作成する

マニフェスト ファイルで、Kubernetes クラスタに Podを作成する方法です。

マニフェスト ファイル 作成

下記の内容の マニフェスト ファイル app1.yaml を作成します。

apiVersion: v1
kind: Pod
metadata:
  name: app1
spec:
  containers:
  - image: dockerhubuser/app1
    name: app1-container
    ports:
      - containerPort: 8080
        protocol: TCP

使用する Kubernetes API のバージョンは v1 です。

apiVersion: v1

Kubernetes オブジェクト・リソースの種類は Pod です。

kind: Pod

spec で、Pod の仕様を定義しています。

  image : 使用するコンテナ イメージ
  name  : コンテナの名前
  ports : コンテナが受け付けるポート番号とプロトコル
spec:
  containers:
  - image: dockerhubuser/app1
    name: app1-container
    ports:
      - containerPort: 8080
        protocol: TCP

マニフェストの適用 & Pod 作成

下記のコマンドで、作成したマニフェスト ファイルを適用し、Pod を作成します。

kubectl apply -f app1.yaml

次のような結果が表示されます。

pod/app1 created

下記のコマンドで、Pod が起動してていることを確認できます。

kubectl get pods

次のような結果が表示されます。

NAME   READY    STATUS     RESTARTS    AGE
app1   1/1      Running    0           5m14s

下記のコマンドで、Yaml 形式で、Pod の情報を確認できます。

kubectl get pods app1 -o yaml

次のような結果が表示されます。

apiVersion: v1
kind: Pod
metadata:
(以下、省略)

下記のコマンドで、Pod が動作しているノードと、Pod の IP アドレスを確認できます。

kubectl get pods -o wide

次のような結果が表示されます。

NAME   READY    STATUS     RESTARTS    AGE      IP           NODE     NOMINATED NODE    READINESS GATES
app1   1/1      Running    0           5m14s    10.45.0.3    node1    <none>            <none>

なお、ここで紹介した方法で作成した場合、上記の IP アドレス 10.45.0.3 にアクセスできるのは、Kubernetes クラスター内のみからとなります。

以上が、マニフェスト ファイルで Kubernetes クラスタに Pod を作成する方法です。

Pod 削除

Pod を削除する場合は、下記のコマンドを実行します。

kubectl delete pod app1

次のような結果が表示されます。

pod "app1" deleted