16.4. AWS에서 DNS 레코드 생성
외부 DNS Operator를 사용하여 AWS 및 AWS GovCloud에서 DNS 레코드를 생성할 수 있습니다.
16.4.1. Red Hat External DNS Operator를 사용하여 AWS의 퍼블릭 호스팅 영역에 DNS 레코드 생성
Red Hat External DNS Operator를 사용하여 AWS의 퍼블릭 호스팅 영역에서 DNS 레코드를 생성할 수 있습니다. 동일한 지침을 사용하여 AWS GovCloud의 호스팅 영역에 DNS 레코드를 생성할 수 있습니다.
절차
사용자를 확인합니다. 사용자는
kube-system
네임스페이스에 액세스할 수 있어야 합니다. 인증 정보가 없는 경우kube-system
네임스페이스에서 인증 정보를 가져와 클라우드 공급자 클라이언트를 사용할 수 있습니다.$ oc whoami
출력 예
system:admin
kube-system
네임스페이스에 있는 aws-creds 시크릿에서 값을 가져옵니다.$ export AWS_ACCESS_KEY_ID=$(oc get secrets aws-creds -n kube-system --template={{.data.aws_access_key_id}} | base64 -d) $ export AWS_SECRET_ACCESS_KEY=$(oc get secrets aws-creds -n kube-system --template={{.data.aws_secret_access_key}} | base64 -d)
경로를 가져와 도메인을 확인합니다.
$ oc get routes --all-namespaces | grep console
출력 예
openshift-console console console-openshift-console.apps.testextdnsoperator.apacshift.support console https reencrypt/Redirect None openshift-console downloads downloads-openshift-console.apps.testextdnsoperator.apacshift.support downloads http edge/Redirect None
dns 영역 목록을 가져와서 이전에 찾은 경로의 도메인에 해당하는 항목을 찾습니다.
$ aws route53 list-hosted-zones | grep testextdnsoperator.apacshift.support
출력 예
HOSTEDZONES terraform /hostedzone/Z02355203TNN1XXXX1J6O testextdnsoperator.apacshift.support. 5
경로
소스를 위한ExternalDNS
리소스를 생성합니다.$ cat <<EOF | oc create -f - apiVersion: externaldns.olm.openshift.io/v1beta1 kind: ExternalDNS metadata: name: sample-aws 1 spec: domains: - filterType: Include 2 matchType: Exact 3 name: testextdnsoperator.apacshift.support 4 provider: type: AWS 5 source: 6 type: OpenShiftRoute 7 openshiftRouteOptions: routerName: default 8 EOF
- 1
- 외부 DNS 리소스의 이름을 정의합니다.
- 2
- 기본적으로 모든 호스팅 영역이 잠재적인 대상으로 선택됩니다. 필요한 호스팅 영역을 포함할 수 있습니다.
- 3
- 대상 영역의 도메인 일치는 정확해야 합니다(정식 표현식과 대조되는 경우).
- 4
- 업데이트할 영역의 정확한 도메인을 지정합니다. 경로의 호스트 이름은 지정된 도메인의 하위 도메인이어야 합니다.
- 5
AWS Route53
DNS 공급자를 정의합니다.- 6
- DNS 레코드 소스에 대한 옵션을 정의합니다.
- 7
- OpenShift
경로
리소스를 이전에 지정한 DNS 공급자에서 생성되는 DNS 레코드의 소스로 정의합니다. - 8
- 소스가
OpenShiftRoute
인 경우 OpenShift Ingress 컨트롤러 이름을 전달할 수 있습니다. 외부 DNS Operator는 CNAME 레코드를 생성하는 동안 해당 라우터의 정식 호스트 이름을 대상으로 선택합니다.
다음 명령을 사용하여 OCP 경로에 대해 생성된 레코드를 확인합니다.
$ aws route53 list-resource-record-sets --hosted-zone-id Z02355203TNN1XXXX1J6O --query "ResourceRecordSets[?Type == 'CNAME']" | grep console