Skip to content

コードで定義する

Manifest

Kubernetesは所謂Infrastructure as Codeのアプローチが可能です。

各種Objectsをyamlで定義することができ、このコードのことを Manifest と呼びます。
基本的にプロダクションでKubernetesを使用する場合はコマンドよりコードで管理すると良いでしょう。

コードの生成

先程実行したコマンドからyamlを生成可能です。
まずは"handson2"という名前でコンテナを立ち上げるyamlを表示してみます。 --dry-run -o yaml がポイントです。

$ kubectl create deployment handson2 --image=nginx --dry-run -o yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: handson2
  name: handson2
spec:
  replicas: 1
  selector:
    matchLabels:
      app: handson2
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: handson2
    spec:
      containers:
      - image: nginx
        name: nginx
        resources: {}
status: {}

先程表示したyamlをファイルへ書き込みましょう。

$  kubectl create deployment handson2 --image=nginx --dry-run -o yaml > manifest.yaml

kubectl apply でコードを実行する事が可能です。

$ kubectl apply -f manifest.yaml

"handson2" が作成されたか確認してみましょう。

$ kubectl get deployment/handson2
NAME       DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
handson2   1         1         1            1           13s

既存Objectsのyamlを確認

既存のObjectsもコードで確認することが可能です。
--output yaml オプションを使うことでyamlで現在のコード(yaml)を確認できます。

$ kubectl get deployment/handson2 --output yaml