Mitomex Blog

Kubernetes の Deployment を作るために必要な yaml ファイルの書き方

Jan 14, 2021

Kubernetes では Pod を単体で使うことは少ない。

複数の Pod を管理するときは Deployment オブジェクトを使う。

記述例

apiVersion: apps/v1
kind: Deployment
metadata:
  name: posts-depl
spec:
  replicas: 1
  selector:
    matchLabels:
      app: posts
  template:
    metadata:
      labels:
        app: posts
    spec:
      containers:
        - name: posts
          image: mitomex/posts:0.0.1

apiVersion

apiVersion は表示させたい Kubernetes Object のセットを指定する。

kind

kind は apiVersion で指定した Kubernetes Object セットの中から使いたいタイプを指定する。

metadata

metadata はオブジェクトの情報を指定する。名前など。

spec

spec はオブジェクトに適用するものを指定する。

spec は specification の略で、仕様書の意味。

replicas

replicas は何個の Pod を実行するかを指定する。

selector

selector にどの Pod を管理するか指定する。

selector:
  matchLabels:
    app: posts

だと labels が app: posts の Pod を指定している。

app: posts に特に意味はなく、指定したい Pod の label と一致していれば良い。

template

template は Deployment で作成する Pod の構成を指定する。

template の metadata に labels を指定。この labels と selector で指定した matchLabels を一致させる。

template:
  metadata:
    labels:
      app: posts

template の spec に Pod に適用するものを指定する。

Deployment を Kubernetes に適用する

Deployment を Kubernetes に適用するには、posts-depl.yaml ファイルがあるディレクトリで以下のコマンドを実行する。

kubectl apply -f posts-depl.yaml