導入
第1章で「あるべき状態を YAML で宣言する」と学びました。いよいよ、その YAML を初めて書きます。題材は、Web サーバー nginx(エンジンエックス) のコンテナを1つ動かすだけの、いちばん簡単な Pod です。
説明
Kubernetes に渡す設定ファイルを マニフェスト(manifest) と呼びます。nginx を1個動かす Pod のマニフェストはこうなります。
apiVersion: v1 # この種類のオブジェクトのAPIバージョン
kind: Pod # 作るものの種類(ここではPod)
metadata:
name: my-nginx # このPodの名前(クラスタ内で識別に使う)
labels:
app: web # このPodに貼る付箋(レッスン10で活躍)
spec: # あるべき中身の定義
containers:
- name: nginx # コンテナの名前
image: nginx:1.27 # 使うコンテナイメージとバージョン(タグ)
ports:
- containerPort: 80 # コンテナが待ち受けるポート番号
各フィールドの意味は次のとおりです。
- apiVersion … このオブジェクトを扱う API のバージョン。Pod は
v1。 - kind … 作るものの種類。ここでは
Pod(後の章ではDeploymentなどになる)。 - metadata.name … Pod の名前。クラスタ内で識別に使う。
- metadata.labels … Pod に貼る「付箋」(キー=値)。今は
app: webを貼っただけだが、レッスン10で束ねる鍵になる。 - spec … あるべき中身。
- spec.containers … 入れるコンテナの一覧(配列)。名前・イメージ(
nginx:1.27の:1.27はバージョンを指すタグ)・待ち受けポートを指定。
ここで大事なのは、このファイルには**「起動せよ」「その後こうせよ」といった手順が一切書かれていない**ことです。書いてあるのは「こういう Pod が存在する状態にしてほしい」という結果だけ。これが宣言的ということの実感です。このマニフェストを Kubernetes に渡す方法を、次のレッスンで見ます。