19.6. GCP에서 DNS 레코드 생성

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

19.6.1. Red Hat External DNS Operator를 사용하여 GCP의 퍼블릭 관리 영역에서 DNS 레코드 생성

Red Hat External DNS Operator를 사용하여 GCP의 퍼블릭 관리 영역에 DNS 레코드를 생성할 수 있습니다.

절차

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

    $ oc whoami

    출력 예

    system:admin

  2. 다음 명령을 실행하여 encoded-gcloud.json 파일의 gcp-credentials 시크릿에 service_account.json 값을 복사합니다.

    $ oc get secret gcp-credentials -n kube-system --template='{{$v := index .data "service_account.json"}}{{$v}}' | base64 -d - > decoded-gcloud.json
  3. Google 인증 정보를 내보냅니다.

    $ export GOOGLE_CREDENTIALS=decoded-gcloud.json
  4. 다음 명령을 사용하여 계정을 활성화합니다.

    $ gcloud auth activate-service-account  <client_email as per decoded-gcloud.json> --key-file=decoded-gcloud.json
  5. 프로젝트를 설정합니다.

    $ gcloud config set project <project_id as per decoded-gcloud.json>
  6. 도메인을 확인할 경로를 가져옵니다.

    $ oc get routes --all-namespaces | grep console

    출력 예

    openshift-console          console             console-openshift-console.apps.test.gcp.example.com                       console             https   reencrypt/Redirect     None
    openshift-console          downloads           downloads-openshift-console.apps.test.gcp.example.com                     downloads           http    edge/Redirect          None

  7. 관리형 영역 목록을 가져와 이전에 찾은 경로의 도메인에 해당하는 영역을 찾습니다.

    $ gcloud dns managed-zones list | grep test.gcp.example.com
    qe-cvs4g-private-zone test.gcp.example.com
  8. 경로 소스를 위한 ExternalDNS 리소스를 생성합니다.

    apiVersion: externaldns.olm.openshift.io/v1beta1
    kind: ExternalDNS
    metadata:
      name: sample-gcp 1
    spec:
      domains:
        - filterType: Include 2
          matchType: Exact 3
          name: test.gcp.example.com 4
      provider:
        type: GCP 5
      source:
        openshiftRouteOptions: 6
          routerName: default 7
        type: OpenShiftRoute 8
    EOF
    1
    외부 DNS CR의 이름을 지정합니다.
    2
    기본적으로 모든 호스팅 영역은 잠재적인 대상으로 선택됩니다. 필요한 호스팅 영역을 포함할 수 있습니다.
    3
    대상 영역 도메인의 일치는 정확해야 합니다( regular expression match).
    4
    업데이트할 영역의 정확한 도메인을 지정합니다. 경로의 호스트 이름은 지정된 도메인의 하위 도메인이어야 합니다.
    5
    Google Cloud DNS 공급자를 정의합니다.
    6
    DNS 레코드의 소스에 대한 옵션을 정의할 수 있습니다.
    7
    소스가 OpenShiftRoute 인 경우 OpenShift Ingress 컨트롤러 이름을 전달할 수 있습니다. 외부 DNS는 CNAME 레코드를 생성하는 동안 해당 라우터의 정식 호스트 이름을 대상으로 선택합니다.
    8
    OpenShift 경로 리소스를 이전에 지정된 DNS 공급자에서 생성되는 DNS 레코드의 소스로 정의합니다.
  9. 다음 명령을 사용하여 OCP 경로에 대해 생성된 레코드를 확인합니다.

    $ gcloud dns record-sets list --zone=qe-cvs4g-private-zone | grep console