4.5. AWS에서 DNS 레코드 생성
AWS 및 AWS GovCloud에서 DNS 레코드를 생성하려면 외부 DNS Operator를 사용합니다. Operator는 Operator를 통해 클러스터 서비스의 외부 이름 확인을 직접 관리합니다.
AWS Government (AWS GovCloud) 리전에서 실행되는 STS 지원 클러스터에서 외부 DNS Operator 사용은 지원되지 않습니다.
4.5.1. Red Hat External DNS Operator를 사용하여 AWS의 퍼블릭 호스팅 영역에 DNS 레코드 생성 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat External DNS Operator를 사용하여 AWS의 퍼블릭 호스팅 영역에 DNS 레코드를 생성할 수 있습니다. 동일한 지침을 사용하여 AWS GovCloud의 호스팅 영역에 DNS 레코드를 생성할 수 있습니다.
프로세스
다음 명령을 실행하여 사용자 프로필을 확인합니다.
system:admin과 같은 프로필은kube-system네임스페이스에 액세스할 수 있어야 합니다. 인증 정보가 없는 경우kube-system네임스페이스에서 인증 정보를 가져와서 다음 명령을 실행하여 클라우드 공급자 클라이언트를 사용할 수 있습니다.$ oc whoamikube-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 NoneDNS 영역 목록을 가져오고 이전에 쿼리한 경로의 도메인에 해당하는 DNS 영역을 찾습니다.
$ aws route53 list-hosted-zones | grep testextdnsoperator.apacshift.support출력 예
HOSTEDZONES terraform /hostedzone/Z02355203TNN1XXXX1J6O testextdnsoperator.apacshift.support. 5경로소스에 대한ExternalDNSCR을 생성합니다.$ cat <<EOF | oc create -f - apiVersion: externaldns.olm.openshift.io/v1beta1 kind: ExternalDNS metadata: name: sample-aws spec: domains: - filterType: Include matchType: Exact name: testextdnsoperator.apacshift.support provider: type: AWS source: type: OpenShiftRoute openshiftRouteOptions: routerName: default EOF다음과 같습니다.
metadata.name- 외부 DNS 리소스의 이름을 지정합니다.
spec.domains- 기본적으로 모든 호스팅 영역은 잠재적 대상으로 선택됩니다. 필요한 호스팅 영역을 포함할 수 있습니다.
domains.matchType- 대상 영역의 도메인 일치가 정확해야 함을 지정합니다. 정규 표현식과는 반대로 정확히 일치합니다.
domains.name- 업데이트할 영역의 정확한 도메인을 지정합니다. 경로의 호스트 이름은 지정된 도메인의 하위 도메인이어야 합니다.
provider.type-
AWS Route53DNS 공급자를 지정합니다. 소스- DNS 레코드 소스에 대한 옵션을 지정합니다.
source.type-
OpenShiftRoute리소스를 이전에 지정된 DNS 공급자에서 생성되는 DNS 레코드의 소스로 지정합니다. openshiftRouteOptions.routerName-
소스가
OpenShiftRoute인 경우 OpenShift Ingress 컨트롤러 이름을 전달할 수 있습니다. 외부 DNS Operator는 CNAME 레코드를 생성하는 동안 해당 라우터의 정식 호스트 이름을 대상으로 선택합니다.
다음 명령을 사용하여 OpenShift Container Platform 경로에 대해 생성된 레코드를 확인합니다.
$ aws route53 list-resource-record-sets --hosted-zone-id Z02355203TNN1XXXX1J6O --query "ResourceRecordSets[?Type == 'CNAME']" | grep console