---
apiVersion: v1
kind: ConfigMap
metadata:
  name: q12
  labels:
    question.kontest.amsy.dev: "12"
data:
  question: |-
    ラベル機能を利用して特定のノードにPodを配置する方法があります。
    disktype=ssdのラベルを持つノードにcndt-redisという名前のPodが配置されるように以下のマニフェストファイルを変更してください。

    apiVersion: v1
    kind: Pod
    metadata:
      labels:
        run: cndt-redis
      name: cndt-redis
    spec:
      containers:
      - image: redis
        name: cndt-redis
      nodeSelector:
  hint: |-
    https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
  base_content.yaml: |-
    apiVersion: v1
    kind: Pod
    metadata:
      labels:
        run: cndt-redis
      name: cndt-redis
    spec:
      containers:
      - image: redis
        name: cndt-redis
      nodeSelector:
  answer.yaml: |-
    apiVersion: v1
    kind: Pod
    metadata:
      labels:
        run: cndt-redis
      name: cndt-redis
    spec:
      containers:
      - image: redis
        name: cndt-redis
      nodeSelector:
        disktype: ssd
  comment: |-
    【解説 by カサレアル】
    spec.nodeSelector にラベルを指定することで、そのラベルを持ったノードにスケジューリングされます。
    他にも spec.affinity でPodスケジューリングに関する条件を指定することができます。
    nodeAffinity : 特定条件を満たすノードに、このPodをスケジューリングする
    podAffinity : 特定条件を満たすPodが実行されているノードやAZなどに、このPodをスケジューリングする
    podAntiAffinity : 特定条件を満たすPodが実行されていないノードやAZなどに、このPodをスケジューリングする
  author: |-
    Yutaka Ichikawa (@cyberblack28)
