클러스터의 DNS 구성

이 문서에서는 베어메탈용 GKE에 대해 도메인 이름 시스템(DNS) 제공업체 옵션을 구성하는 방법을 설명합니다. 클러스터의 DNS 구성은 default라는 ClusterDNS 커스텀 리소스에 보관됩니다. 이 리소스는 클러스터 전체에 적용됩니다. 즉, 네임스페이스가 아닙니다. ClusterDNS 커스텀 리소스는 모든 클러스터 유형에 적용됩니다.

ClusterDNS 리소스 만들기

default라는 ClusterDNS 리소스의 매니페스트를 만듭니다. 원하는 대로 spec을 입력합니다. 예를 들면 다음과 같습니다.

apiVersion: networking.gke.io/v1alpha1
kind: ClusterDNS
metadata:
  name: default
spec:
  upstreamNameservers:
    - serverIP: 8.8.8.8
    - serverIP: 8.8.4.4
  domains:
    - name: altostrat.com
      nameservers:
      - serverIP: 198.51.100.0.1
    - name: my-own-personal-domain.com
      - serverIP: 203.0.113.1
      - serverIP: 203.0.113.2
        serverPort: 54
  googleAccess: private

my-dns.yaml 파일에 매니페스트를 저장하고 리소스를 클러스터에 적용합니다.

kubectl --kubeconfig KUBECONFIG apply -f my-dns.yaml

KUBECONFIG를 클러스터 kubeconfig 파일의 경로로 바꿉니다.

ClusterDNS 리소스 보기

ClusterDNS 리소스를 보려면 다음 안내를 따르세요.

kubectl --kubeconfig KUBECONFIG get clusterdns default --output yaml

KUBECONFIG를 클러스터 kubeconfig 파일의 경로로 바꿉니다.

ClusterDNS 사양

다음 섹션에서는 클러스터의 DNS를 구성하는 데 사용하는 ClusterDNS 커스텀 리소스 정의의 일부를 설명합니다. 언제든지 클러스터에 대한 ClusterDNS 리소스를 업데이트할 수 있습니다.

spec.upstreamNameservers

객체 각각에 서버 IP 주소와 서버 포트(선택사항)가 있는 객체 배열을 사용하여 기본 업스트림 네임서버를 지정합니다. 서버 포트의 기본값은 53입니다. 클러스터가 아닌 도메인에 대한 요청은 기본적으로 이 서버 주소 배열로 전달됩니다.

다음은 upstreamNameservers 구성 예시입니다.

spec:
  upstreamNameservers:
  - serverIP: 8.8.8.8
  - serverIP: 1.2.3.4
    serverPort: 54

upstreamNameservers에 값을 지정하지 않으면 DNS 제공업체는 노드의 /etc/resolve.conf 파일을 사용하여 업스트림 네임서버 목록을 찾습니다.

spec.domains

특정 도메인에 대한 구성입니다. 이 섹션을 통해 특정 도메인에 대해 다른 업스트림 네임서버를 구성합니다. 이러한 도메인별 네임서버 설정은 upstreamNameservers의 구성을 재정의합니다.

도메인에 대해 쿼리 로깅을 사용 설정할 수도 있습니다. 지정된 도메인 또는 클러스터 도메인(cluster.local)에 쿼리 로깅을 사용 설정할 수 있습니다.

예를 들면 다음과 같습니다.

spec:
  domains:
  - name: altostrat.com
    nameservers:
    - serverIP: 203.0.113.1
  - name: my-own-personal-domain.com
    nameservers:
    - serverIP: 198.51.100.1
    - serverIP: 198.51.100.2
      serverPort: 50000
  - name: cluster.local
    queryLogging: true

spec.googleAccess

열거형(private, restricted, default)은 Google 도메인을 처리하는 방법을 지정합니다. googleAccess 값은 다음 동작을 지정합니다.

  • default: Google 도메인을 특별하게 처리하지 않습니다. googleAccess 필드를 삭제해도 동일한 효과를 가집니다.

  • private: Google 도메인을 비공개 액세스 IP 주소로만 확인합니다.

  • restricted: Google 도메인을 제한된 액세스 IP 주소로만 확인합니다.

다음 설정 예시에서는 Google 도메인을 비공개 액세스 IP 주소로만 확인합니다.

spec:
  googleAccess: private

자세한 내용은 온프레미스 호스트의 비공개 Google 액세스 구성을 참조하세요.