20.5. AWS에서 DNS 레코드 생성


외부 DNS Operator를 사용하여 AWS 및 AWS GovCloud에 DNS 레코드를 생성할 수 있습니다.

Red Hat External DNS Operator를 사용하여 AWS의 퍼블릭 호스팅 영역에 DNS 레코드를 생성할 수 있습니다. 동일한 지침을 사용하여 AWS GovCloud의 호스팅 영역에 DNS 레코드를 생성할 수 있습니다.

프로세스

  1. 사용자를 확인합니다. 사용자는 kube-system 네임스페이스에 액세스할 수 있어야 합니다. 인증 정보가 없는 경우 kube-system 네임스페이스에서 인증 정보를 가져와서 클라우드 공급자 클라이언트를 사용할 수 있습니다.

    $ oc whoami
    Copy to Clipboard Toggle word wrap

    출력 예

    system:admin
    Copy to Clipboard Toggle word wrap

  2. 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)
    Copy to Clipboard Toggle word wrap
  3. 경로를 가져와 도메인을 확인합니다.

    $ oc get routes --all-namespaces | grep console
    Copy to Clipboard Toggle word wrap

    출력 예

    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
    Copy to Clipboard Toggle word wrap

  4. dns 영역 목록을 가져와서 이전에 발견된 경로 도메인에 해당하는 항목을 찾습니다.

    $ aws route53 list-hosted-zones | grep testextdnsoperator.apacshift.support
    Copy to Clipboard Toggle word wrap

    출력 예

    HOSTEDZONES	terraform	/hostedzone/Z02355203TNN1XXXX1J6O	testextdnsoperator.apacshift.support.	5
    Copy to Clipboard Toggle word wrap

  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
    Copy to Clipboard Toggle word wrap
    1
    외부 DNS 리소스의 이름을 정의합니다.
    2
    기본적으로 모든 호스팅 영역은 잠재적 대상으로 선택됩니다. 필요한 호스팅 영역을 포함할 수 있습니다.
    3
    대상 영역의 도메인 일치는 정확해야 합니다(일반 표현식과는 반대로).
    4
    업데이트할 영역의 정확한 도메인을 지정합니다. 경로의 호스트 이름은 지정된 도메인의 하위 도메인이어야 합니다.
    5
    AWS Route53 DNS 공급자를 정의합니다.
    6
    DNS 레코드 소스에 대한 옵션을 정의합니다.
    7
    OpenShift 경로 리소스를 이전에 지정된 DNS 공급자에서 생성되는 DNS 레코드의 소스로 정의합니다.
    8
    소스가 OpenShiftRoute 인 경우 OpenShift Ingress 컨트롤러 이름을 전달할 수 있습니다. 외부 DNS Operator는 CNAME 레코드를 생성하는 동안 해당 라우터의 정식 호스트 이름을 대상으로 선택합니다.
  6. 다음 명령을 사용하여 OCP 경로에 대해 생성된 레코드를 확인합니다.

    $ aws route53 list-resource-record-sets --hosted-zone-id Z02355203TNN1XXXX1J6O --query "ResourceRecordSets[?Type == 'CNAME']" | grep console
    Copy to Clipboard Toggle word wrap

20.5.2. 공유 VPC를 사용하여 다른 AWS 계정에 DNS 레코드 생성

ExternalDNS Operator를 사용하여 공유 VPC(Virtual Private Cloud)를 사용하여 다른 AWS 계정에서 DNS 레코드를 생성할 수 있습니다. 조직은 공유 VPC를 사용하여 여러 프로젝트의 리소스를 공통 VPC 네트워크로 연결할 수 있습니다. 그런 다음 조직에서 VPC 공유를 사용하여 여러 AWS 계정에서 단일 Route 53 인스턴스를 사용할 수 있습니다.

사전 요구 사항

  • VPC와 Route 53 개인 호스팅 영역이 구성된(계정 A) 및 클러스터(계정 B)를 설치하는 데 두 개의 Amazon AWS 계정을 생성했습니다.
  • 계정 B에 대한 적절한 권한으로 IAM 정책 및 IAM 역할을 생성하여 계정 A의 Route 53 호스팅 영역에서 DNS 레코드를 생성했습니다.
  • 계정 B의 클러스터를 계정 A용 기존 VPC에 설치했습니다.
  • 계정 B의 클러스터에 ExternalDNS Operator를 설치했습니다.

프로세스

  1. 계정 B가 다음 명령을 실행하여 계정 A의 Route 53 호스팅 영역에 액세스할 수 있도록 만든 IAM 역할의 역할 ARN을 가져옵니다.

    $ aws --profile account-a iam get-role --role-name user-rol1 | head -1
    Copy to Clipboard Toggle word wrap

    출력 예

    ROLE	arn:aws:iam::1234567890123:role/user-rol1	2023-09-14T17:21:54+00:00	3600	/	AROA3SGB2ZRKRT5NISNJN	user-rol1
    Copy to Clipboard Toggle word wrap

  2. 다음 명령을 실행하여 계정 A의 인증 정보에 사용할 개인 호스팅 영역을 찾습니다.

    $ aws --profile account-a route53 list-hosted-zones | grep testextdnsoperator.apacshift.support
    Copy to Clipboard Toggle word wrap

    출력 예

    HOSTEDZONES	terraform	/hostedzone/Z02355203TNN1XXXX1J6O	testextdnsoperator.apacshift.support. 5
    Copy to Clipboard Toggle word wrap

  3. 다음 명령을 실행하여 ExternalDNS 오브젝트를 생성합니다.

    $ 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
        aws:
          assumeRole:
            arn: arn:aws:iam::12345678901234:role/user-rol1 
    1
    
      source:
        type: OpenShiftRoute
        openshiftRouteOptions:
          routerName: default
    EOF
    Copy to Clipboard Toggle word wrap
    1
    계정 A에서 DNS 레코드를 생성하도록 역할 ARN을 지정합니다.
  4. 다음 명령을 사용하여 OCP(OpenShift Container Platform) 경로에 대해 생성된 레코드를 확인합니다.

    $ aws --profile account-a route53 list-resource-record-sets --hosted-zone-id Z02355203TNN1XXXX1J6O --query "ResourceRecordSets[?Type == 'CNAME']" | grep console-openshift-console
    Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat