5.3. DNS Pod 배치 제어

DNS Operator에는 2개의 데몬 세트(CoreDNS 및 /etc/hosts 파일 관리용)가 있습니다. 이미지 가져오기를 지원할 클러스터 이미지 레지스트리의 항목을 추가하려면 모든 노드 호스트에서 /etc/hosts의 데몬 세트를 실행해야 합니다. 보안 정책은 CoreDNS에 대한 데몬 세트가 모든 노드에서 실행되지 않도록 하는 노드 쌍 간 통신을 금지할 수 있습니다.

클러스터 관리자는 사용자 정의 노드 선택기를 사용하여 특정 노드에서 CoreDNS를 실행하거나 실행하지 않도록 데몬 세트를 구성할 수 있습니다.

사전 요구 사항

  • oc CLI를 설치했습니다.
  • cluster-admin 권한이 있는 사용자로 클러스터에 로그인합니다.

프로세스

  • 특정 노드 간 통신을 방지하려면 spec.nodePlacement.nodeSelector API 필드를 구성합니다.

    1. 이름이 default인 DNS Operator 오브젝트를 수정합니다.

      $ oc edit dns.operator/default
    2. spec.nodePlacement.nodeSelector API 필드에 컨트롤 플레인 노드만 포함하는 노드 선택기를 지정합니다.

       spec:
         nodePlacement:
           nodeSelector:
             node-role.kubernetes.io/worker: ""
  • CoreDNS의 데몬 세트가 노드에서 실행되도록 테인트 및 허용 오차를 구성합니다.

    1. 이름이 default인 DNS Operator 오브젝트를 수정합니다.

      $ oc edit dns.operator/default
    2. 테인트 키와 테인트에 대한 허용 오차를 지정합니다.

       spec:
         nodePlacement:
           tolerations:
           - effect: NoExecute
             key: "dns-only"
             operators: Equal
             value: abc
             tolerationSeconds: 3600 1
      1
      테인트가 dns-only인 경우 무기한 허용될 수 있습니다. tolerationSeconds를 생략할 수 있습니다.