このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Kubernetes入門:定義ファイルを記述する手順(Pod)

Kubernetesにおいて、リソースを管理するためには、定義ファイル(マニフェストファイル)が必要です。定義ファイルはYAML形式で記述され、Podやサービスの設定内容を記述します。今回はApacheコンテナを作成するためのPodの定義ファイルを作成していきます。この定義ファイルは、後に作成するデプロイメントのファイルでも利用されるため、重要な基礎ステップとなります。

Podの定義ファイルの書き方
Podの定義ファイルを作成する際には、まず、以下の大項目を設定します。
- apiVersion: APIのバージョンを指定します。
- kind: リソースの種類を指定します。
- metadata: Podの名前やラベルといったメタ情報を設定します。
- spec: 実際のコンテナ構成などの詳細を記述します。

作成するPodとコンテナの情報
| 項目 | 値 |
|---|---|
| APIグループとバージョン | v1 (グループはなし) |
| リソースの種類 | Pod |
| Podの名前 | apache-pod |
| ラベル | app: apache |
| コンテナの名前 | apache-container |
| 元となるイメージ | httpd |
| コンテナポート | containerPort: 80 |
Podの定義ファイル名と置く場所
| 項目 | 値 |
|---|---|
| podの定義ファイル名 | pod.yml |
| ファイルを置く場所 | C:\Users\ユーザー名\Desktop\kubernetes\apache |
【作成手順】Podの定義ファイル
ここでは、コンテナの作成では定番のApacheコンテナを作成するためのPodの定義ファイルを作成していきます。

作成する「pod.yml」ファイルは、後でデプロイメントの定義ファイルを作成するときに利用します。
【STEP1】「pod.yml」ファイルを作成する。
・PowerShellを起動し、作業ディレクトリに移動します。
PS C:\Users\joeac> cd desktop\kubernetes
PS C:\Users\joeac\Desktop\kubernetes>・「apache」というディレクトリを作成します。
PS C:\Users\joeac\Desktop\kubernetes> mkdir apache
Directory: C:\Users\joeac\Desktop
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 2024/09/15 22:42 apache・「apache」ディレクトリに移動して、VSCodeを使って「pod.yml」ファイルを作成します。
PS C:\Users\joeac\Desktop\kubernetes> cd apache
PS C:\Users\joeac\Desktop\kubernetes\apache> code pod.ymlVSCodeが起動します。

【STEP2】大項目を並べます。
必要な大項目(apiVersion, kind, metadata, spec)を並べます。
以下のように入力します。
apiVersion:
kind:
metadata:
spec:【STEP3】apiVersion と kind を設定します。
apiVersionに「v1」、kindに「Pod」を入力します。
以下のように入力します。
apiVersion: v1
kind: Pod
metadata:
spec:【STEP4】metadata の設定値を入力します。
metadataの値として、Podの名前(name)を設定します。名前は「apache-pod」とします。また、ラベル(labels)として「app: apache」を設定します。
以下のように入力します。
apiVersion: v1
kind: Pod
metadata:
name: apache-pod
labels:
app: apache
spec:【STEP5】spec の設定値を入力します。
specに作成したいコンテナの情報(name、image、ports)を設定します。nameは「apache-container」、imageは「httpd」、portsは「containerPort: 80」を指定します。
以下のように入力します。
apiVersion: v1
kind: Pod
metadata:
name: apache-pod
labels:
app: apache
spec:
containers:
- name: apache-container
image: httpd
ports:
- containerPort: 80【STEP6】保存します。
ファイルを保存します。保存した「pod.yml」は、デプロイメントの定義ファイルの作成時に利用します。
まとめ
この手順で作成したPodの定義ファイルは、Kubernetesにおけるリソース管理の基本です。Podの定義を理解することで、デプロイメントやサービスの作成がスムーズに行えるようになります。特にYAML形式での記述が重要であり、スペースの扱いに注意することが大切です。
