-
マニフェスト
- “何を、どのように動かすか”
- k8s はマニフェストと実際のクラスタ状態を比較し、ズレがあれば自動で調整(再起動・スケールなど)。
- 1ファイル=1リソースで定義するのが一般的。
---で区切ることで複数リソースを1ファイルにまとめることも可能。
apiVersion: <API グループ>/<バージョン> kind: <リソースの種類> metadata: name: <リソース名> labels: # (任意)タグ付け app: my-app spec: # 種類ごとに設定内容が変わる …
| attribute | description |
|---|---|
| apiVersion | どの API(機能セット)のバージョンを使うか。kubectl. versions で列挙可能。 |
| kind | 作りたいリソースのタイプ(例:Pod、Deployment、Service)。 |
| metadata | 名前 (name)、ラベル (labels)、アノテーションなど。 |
| spec | そのリソースが「どう振る舞うか」を定義。 |
- Pod(最小実行単位)
- 単一コンテナ or 複数コンテナのグループを直接動かす。
- 注意:本番環境では Pod 単体は再起動やスケールが弱いため、通常は次の Deployment を使う。
- Deployment(ローリング更新・自己修復)
- Service(内部・外部アクセスの窓口)
- Deployment の
spec.containers.imagePullPolicyを Always にしていなかったため、kubectl applyしてもコンテナに最新のイメージが反映されなかった。