Config Template

Kubernetesのオブジェクトは yaml のテンプレートファイルから作成ができる。

API Version

APIグループの指定。Kubernetes APIの拡張を容易にするためのもの。

apiVersion: apps/v1

.apiVersion の指定は必須。

Types (Kinds)

このテンプレートで作成するオブジェクトの種類を設定する。ここに設定するのは Pod Service Deployment などの、Kubernetesで決められた文字列である。

kind: ReplicaSet

.kind の指定は必須。ここに設定する文字列によって、後の .spec フィールドに設定する値が変わる。例えば ReplicaSet であれば、.spec には .spec.replicas.spec.template の項目が必要。(Specではここで指定したオブジェクトの詳細を設定する)

Metadata

基本形

metadata:
  name: backend # required input
  namespace: webservice
  labels:
    app: nginx

全てのオブジェクトはテンプレートの .metadata フィールドに次のメタデータを持たなければならない。 name 以外はデフォルト値が設定されているため、ユーザーが設定しなくても良い。

  • name : 現在の名前空間(namespace)でこのオブジェクトを一意に識別するための文字列。ユーザーが設定する。Document
  • namespace : オブジェクトを細分化するためのDNS互換ラベル。デフォルトでは default が設定される。Document
  • uid : 削除されて再生成された際の、同じ名前の同じオブジェクトを区別するために使用する、名前(name)と名前空間(namespace)の中で一意な値。デフォルトでは乱数(RFC 4122)が設定される。

また .metadata フィールドには必須のフィールド以外にも、オプションとして次のいくつかのフィールドを設定できる。自動生成されるものも(should)

  • resourceVersion : オブジェクトがいつ変更されたかを判断するためのオブジェクト内部バージョンを識別する文字列。
  • generation : 特定の世代を表すシーケンス番号?
  • creationTimestamp : オブジェクトが生成された日時の文字列(RFC 3339)。
  • deletionTimestamp : オブジェクトが削除される日時の文字列(RFC 3339)。ユーザーによって設定されるフィールドで、オブジェクトはこのフィールドの時間に削除される。
  • labels : オブジェクトの整理と分類に使用できる文字列キーと値のmap。Document
  • annotations : 外部ツールで使用できる文字列キーと値のmap?

Spec

ReplicaSetのSpec(例)

spec:
  replicas: 3
  selector:
    matchLabels:
      tier: frontend
    matchExpressions:
      - {key: tier, operator: In, values: [frontend]}
  template: # Pod Template
    metadata:
      labels: # Pod Label
        app: guestbook
        tier: frontend
    spec:
      containers:
        - name: php-redis
          image: gcr.io/google_samples/gb-frontend:v3
          resources:
            requests:
              cpu: 100m
              memory: 100Mi
          env:
            - name: GET_HOSTS_FROM
              value: dns
          ports:
            - containerPort: 80

results matching ""

    No results matching ""