1장. OpenShift Dedicated의 DNS Operator
OpenShift Dedicated에서 DNS Operator는 CoreDNS 인스턴스를 배포 및 관리하여 클러스터 내부 Pod에 이름 확인 서비스를 제공하고 DNS 기반 Kubernetes 서비스 검색을 활성화하고 내부 cluster.local 이름을 확인합니다.
이 Operator는 기본적으로 OpenShift Dedicated 클러스터에 설치됩니다.
1.1. DNS 전달 사용 링크 복사링크가 클립보드에 복사되었습니다!
클러스터에 대한 DNS 전달 서버 및 업스트림 해석기를 구성합니다.
DNS 전달을 사용하여 다음과 같은 방법으로 /etc/resolv.conf 파일의 기본 전달 구성을 덮어쓸 수 있습니다.
모든 영역에 대해 이름 서버(
spec.servers)를 지정합니다. 전달된 영역이 OpenShift Dedicated에서 관리하는 인그레스 도메인인 경우 도메인에 대해 업스트림 이름 서버를 인증해야 합니다.중요하나 이상의 영역을 지정해야 합니다. 그렇지 않으면 클러스터가 기능을 손실할 수 있습니다.
-
업스트림 DNS 서버 목록 제공(
spec.upstreamResolvers). - 기본 전달 정책을 변경합니다.
기본 도메인의 DNS 전달 구성에는 /etc/resolv.conf 파일과 업스트림 DNS 서버에 지정된 기본 서버가 모두 있을 수 있습니다.
Pod 생성 중에 Kubernetes는 노드에 존재하는 /etc/resolv.conf 파일을 사용합니다. 호스트 노드에서 /etc/resolv.conf 파일을 수정하면 변경 사항이 컨테이너에 존재하는 /etc/resolv.conf 파일로 전달되지 않습니다. 변경 사항을 적용하려면 컨테이너를 다시 생성해야 합니다.
프로세스
이름이
default인 DNS Operator 오브젝트를 수정합니다.$ oc edit dns.operator/default이전 명령을 실행한 후 Operator는
spec.servers를 기반으로 추가 서버 구성 블록을 사용하여dns-default라는 구성 맵을 생성하고 업데이트합니다.중요zones매개 변수의 값을 지정할 때 인트라넷과 같은 특정 영역으로만 전달해야 합니다. 하나 이상의 영역을 지정해야 합니다. 그렇지 않으면 클러스터가 기능을 손실할 수 있습니다.서버에 쿼리와 일치하는 영역이 없는 경우 이름 확인은 업스트림 DNS 서버로 대체됩니다.
DNS 전달 구성
apiVersion: operator.openshift.io/v1 kind: DNS metadata: name: default spec: cache: negativeTTL: 0s positiveTTL: 0s logLevel: Normal nodePlacement: {} operatorLogLevel: Normal servers: - name: example-server zones: - example.com forwardPlugin: policy: Random upstreams: - 1.1.1.1 - 2.2.2.2:5353 upstreamResolvers: policy: Random protocolStrategy: "" transportConfig: {} upstreams: - type: SystemResolvConf - type: Network address: 1.2.3.4 port: 53 status: clusterDomain: cluster.local clusterIP: x.y.z.10 conditions: ...다음과 같습니다.
spec.servers.name-
rfc6335서비스 이름 구문을 준수해야 합니다. spec.servers.zones-
rfc1123하위 도메인 구문을 준수해야 합니다. 클러스터 도메인cluster.local은영역에유효하지 않습니다. spec.servers.forwardPlugin.policy-
업스트림 선택 정책을 지정합니다. 기본값은
Random; 허용되는 값은RoundRobin및Sequential입니다. spec.servers.forwardPlugin.upstreams-
forwardPlugin당 15개 이상의업스트림항목을 제공해야 합니다. spec.upstreamResolvers.upstreams-
기본 전달 정책을 재정의하고 DNS 확인을 기본 도메인의 지정된 DNS 확인자(업스트림 확인자)로 전달하는
upstreamResolvers를 지정합니다. 사용자 정의 업스트림 확인자가 필요한 경우 이 필드를 사용할 수 있습니다. 그렇지 않으면 쿼리는/etc/resolv.conf에 선언된 서버를 사용합니다. spec.upstreamResolvers.policy-
업스트림 선택 순서를 지정합니다. 기본값은
Sequential; 허용되는 값은Random,RoundRobin및Sequential입니다. spec.upstreamResolvers.protocolStrategy-
요청에서 UDP를 사용하는 경우에도 프로토콜이 업스트림 DNS 요청에 사용하도록 하려면
TCP를 지정합니다. 유효한 값은TCP및 생략됩니다. 생략하면 플랫폼은 원래 클라이언트 요청의 프로토콜인 기본값을 선택합니다. spec.upstreamResolvers.transportConfig- DNS 요청을 업스트림 확인기로 전달할 때 사용할 전송 유형, 서버 이름 및 선택적 사용자 정의 CA 또는 CA 번들을 지정합니다.
spec.upstreamResolvers.upstreams.type-
두 가지 유형의
업스트림을 지정합니다.SystemResolvConf또는Network.SystemResolvConf는/etc/resolv.conf를 사용하도록 업스트림을 구성하고Network는Networkresolver를 정의합니다. 하나 또는 둘 다를 지정할 수 있습니다. spec.upstreamResolvers.upstreams.address-
type이
Network인 경우 유효한 IPv4 또는 IPv6 주소를 지정합니다. spec.upstreamResolvers.upstreams.port-
포트 번호를 제공하기 위해 선택적 필드를 지정합니다. 유효한 값은
1에서65535사이입니다. 생략 시 기본값은 853입니다.