k8s マニフェスト “何を、どのように動かすか” 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 してもコンテナに最新のイメージが反映されなかった。