5.5. DNS 전달 사용
DNS 전달을 사용하여 /etc/resolv.conf
파일의 기본 전달 구성을 다음과 같은 방법으로 덮어쓸 수 있습니다.
- 모든 영역에 대해 이름 서버를 지정합니다. 전달된 영역이 OpenShift Container Platform에서 관리하는 Ingress 도메인인 경우 도메인에 대한 업스트림 이름 서버를 승인해야 합니다.
- 업스트림 DNS 서버 목록을 제공합니다.
- 기본 전달 정책을 변경합니다.
기본 도메인의 DNS 전달 구성에는 /etc/resolv.conf
파일과 업스트림 DNS 서버에 지정된 기본 서버가 모두 있을 수 있습니다.
절차
이름이
default
인 DNS Operator 오브젝트를 수정합니다.$ oc edit dns.operator/default
이를 통해 Operator는
Server
를 기반으로 추가 서버 구성 블록으로dns-default
라는 구성 맵을 생성하고 업데이트할 수 있습니다. 서버에 쿼리와 일치하는 영역이 없는 경우 이름 확인은 업스트림 DNS 서버로 대체됩니다.DNS 전달 구성
apiVersion: operator.openshift.io/v1 kind: DNS metadata: name: default spec: servers: - name: example-server 1 zones: 2 - example.com forwardPlugin: policy: Random 3 upstreams: 4 - 1.1.1.1 - 2.2.2.2:5353 upstreamResolvers: 5 policy: Random 6 upstreams: 7 - type: SystemResolvConf 8 - type: Network address: 1.2.3.4 9 port: 53 10
- 1
rfc6335
서비스 이름 구문을 준수해야 합니다.- 2
rfc1123
서비스 이름 구문의 하위 도메인 정의를 준수해야 합니다. cluster domain,cluster.local
.local은zones
필드에 유효하지 않은 하위 도메인입니다.- 3
- 업스트림 리졸버를 선택할 정책을 정의합니다. 기본값은
Random
입니다. 또한RoundRobin
및Sequential
값을 사용할 수도 있습니다. - 4
forwardPlugin
당 최대 15개의업스트림
이 허용됩니다.- 5
- 선택 사항: 이를 사용하여 기본 정책을 재정의하고 DNS 확인을 기본 도메인의 지정된 DNS 확인자(업스트림 확인자)로 전달할 수 있습니다. 업스트림 리졸버를 제공하지 않으면 DNS 이름 쿼리는
/etc/resolv.conf
의 서버로 이동합니다. - 6
- 조회를 위해 업스트림 서버가 선택된 순서를 결정합니다. 다음 값 중 하나를 지정할 수 있습니다:
Random
,RoundRobin
, 또는Sequential
. 기본값은Sequential
입니다. - 7
- 선택 사항: 이를 사용하여 업스트림 확인자를 제공할 수 있습니다.
- 8
- 두 가지 유형의
업스트림
(SystemResolvConf
및Network
)을 지정할 수 있습니다.SystemResolvConf
는/etc/resolv.conf
및Network
를 사용하도록 업스트림을 구성하여Networkresolver
를 정의합니다. 하나 또는 둘 다를 지정할 수 있습니다. - 9
- 지정된 유형이
네트워크
이면 IP 주소를 제공해야 합니다.address
필드는 유효한 IPv4 또는 IPv6 주소여야 합니다. - 10
- 지정된 유형이
네트워크
이면 선택적으로 포트를 제공할 수 있습니다.포트
필드는1
에서65535
사이의 값을 가져야합니다. 업스트림 포트를 지정하지 않으면 기본적으로 포트 853이 시도됩니다.
고도로 규제된 환경에서 작업하는 경우 추가 DNS 트래픽 및 데이터 개인 정보를 확보할 수 있도록 요청을 업스트림 리졸버에 전달할 때 DNS 트래픽을 보호할 수 있는 기능이 필요할 수 있습니다. 클러스터 관리자는 전달된 DNS 쿼리에 대해 TLS(Transport Layer Security)를 구성할 수 있습니다.
TLS를 사용하여 DNS 전달 구성
apiVersion: operator.openshift.io/v1 kind: DNS metadata: name: default spec: servers: - name: example-server 1 zones: 2 - example.com forwardPlugin: transportConfig: transport: TLS 3 tls: caBundle: name: mycacert serverName: dnstls.example.com 4 policy: Random 5 upstreams: 6 - 1.1.1.1 - 2.2.2.2:5353 upstreamResolvers: 7 transportConfig: transport: TLS tls: caBundle: name: mycacert serverName: dnstls.example.com upstreams: - type: Network 8 address: 1.2.3.4 9 port: 53 10
- 1
rfc6335
서비스 이름 구문을 준수해야 합니다.- 2
rfc1123
서비스 이름 구문의 하위 도메인 정의를 준수해야 합니다. cluster domain,cluster.local
.local은zones
필드에 유효하지 않은 하위 도메인입니다. 클러스터 도메인에 해당하는cluster.local
은영역
에 유효하지 않은하위 도메인
입니다.- 3
- 전달된 DNS 쿼리를 위해 TLS를 구성할 때 값
TLS
를 갖도록transport
필드를 설정합니다. 기본적으로 CoreDNS는 10초 동안 연결을 전달했습니다. 요청이 발행되지 않은 경우 CoreDNS는 10초 동안 열려 있는 TCP 연결을 유지합니다. 대규모 클러스터를 사용하면 노드당 연결을 시작할 수 있으므로 DNS 서버에서 많은 새 연결이 열려 있을 수 있음을 확인합니다. 성능 문제를 방지하기 위해 적절하게 DNS 계층을 설정합니다. - 4
- 전달된 DNS 쿼리에 대해 TLS를 구성할 때 이는 업스트림 TLS 서버 인증서를 검증하기 위해 SNI(서버 이름 표시)의 일부로 사용되는 필수 서버 이름입니다.
- 5
- 업스트림 리졸버를 선택할 정책을 정의합니다. 기본값은
Random
입니다. 또한RoundRobin
및Sequential
값을 사용할 수도 있습니다. - 6
- 필수 항목입니다. 이를 사용하여 업스트림 확인자를 제공할 수 있습니다.
forwardPlugin
항목당 최대 15개의 업스트림
항목을 사용할 수 있습니다. - 7
- 선택 사항: 이를 사용하여 기본 정책을 재정의하고 DNS 확인을 기본 도메인의 지정된 DNS 확인자(업스트림 확인자)로 전달할 수 있습니다. 업스트림 리졸버를 제공하지 않으면 DNS 이름 쿼리는
/etc/resolv.conf
의 서버로 이동합니다. - 8
네트워크
유형은 이 업스트림 확인자가/etc/resolv.conf
에 나열된 업스트림 확인자와 별도로 전달된 요청을 처리해야 함을 나타냅니다. TLS를 사용하는 경우네트워크
유형만 허용되며 IP 주소를 제공해야 합니다.- 9
address
필드는 유효한 IPv4 또는 IPv6 주소여야 합니다.- 10
- 선택적으로 포트를 제공할 수 있습니다.
포트
는1
에서65535
사이의 값을 가져야합니다. 업스트림 포트를 지정하지 않으면 기본적으로 포트 853이 시도됩니다.
참고servers
가 정의되지 않았거나 유효하지 않은 경우 구성 맵에는 기본 서버만 포함됩니다.구성 맵을 표시합니다.
$ oc get configmap/dns-default -n openshift-dns -o yaml
이전 샘플 DNS를 기반으로 하는 샘플 DNS ConfigMap
apiVersion: v1 data: Corefile: | example.com:5353 { forward . 1.1.1.1 2.2.2.2:5353 } bar.com:5353 example.com:5353 { forward . 3.3.3.3 4.4.4.4:5454 1 } .:5353 { errors health kubernetes cluster.local in-addr.arpa ip6.arpa { pods insecure upstream fallthrough in-addr.arpa ip6.arpa } prometheus :9153 forward . /etc/resolv.conf 1.2.3.4:53 { policy Random } cache 30 reload } kind: ConfigMap metadata: labels: dns.operator.openshift.io/owning-dns: default name: dns-default namespace: openshift-dns
- 1
forwardPlugin
을 변경하면 CoreDNS 데몬 세트의 롤링 업데이트가 트리거됩니다.
추가 리소스
- DNS 전달에 대한 자세한 내용은 CoreDNS 전달 설명서를 참조하십시오.