20.7. GCP에서 DNS 레코드 생성
외부 DNS Operator를 사용하여 GCP에 DNS 레코드를 생성할 수 있습니다.
20.7.1. GCP의 퍼블릭 관리 영역에 DNS 레코드 생성
외부 DNS Operator를 사용하여 GCP의 퍼블릭 관리 영역에 DNS 레코드를 생성할 수 있습니다.
사전 요구 사항
- 클러스터 관리자 권한이 있어야합니다.
프로세스
다음 명령을 실행하여
encoded-gcloud.json
파일에gcp-credentials
시크릿을 복사합니다.$ oc get secret gcp-credentials -n kube-system --template='{{$v := index .data "service_account.json"}}{{$v}}' | base64 -d - > decoded-gcloud.json
다음 명령을 실행하여 Google 인증 정보를 내보냅니다.
$ export GOOGLE_CREDENTIALS=decoded-gcloud.json
다음 명령을 사용하여 계정을 활성화합니다.
$ gcloud auth activate-service-account <client_email as per decoded-gcloud.json> --key-file=decoded-gcloud.json
다음 명령을 실행하여 프로젝트를 설정합니다.
$ gcloud config set project <project_id as per decoded-gcloud.json>
다음 명령을 실행하여 경로 목록을 가져옵니다.
$ 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
다음 명령을 실행하여 관리 영역 목록을 가져옵니다.
$ gcloud dns managed-zones list | grep test.gcp.example.com
출력 예
qe-cvs4g-private-zone test.gcp.example.com
ExternalDNS
오브젝트를 정의하는 YAML 파일(예:external-dns-sample-gcp.yaml
)을 생성합니다.external-dns-sample-gcp.yaml
파일 예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
- 1
- 외부 DNS 이름을 지정합니다.
- 2
- 기본적으로 모든 호스팅 영역은 잠재적 대상으로 선택됩니다. 호스팅 영역을 포함할 수 있습니다.
- 3
- 대상의 도메인은
name
키로 정의된 문자열과 일치해야 합니다. - 4
- 업데이트할 영역의 정확한 도메인을 지정합니다. 경로의 호스트 이름은 지정된 도메인의 하위 도메인이어야 합니다.
- 5
- 공급자 유형을 정의합니다.
- 6
- DNS 레코드 소스에 대한 옵션을 정의할 수 있습니다.
- 7
- 소스 유형이
OpenShiftRoute
인 경우 OpenShift Ingress 컨트롤러 이름을 전달할 수 있습니다. 외부 DNS는 CNAME 레코드를 생성하는 동안 해당 라우터의 정식 호스트 이름을 대상으로 선택합니다. - 8
경로
리소스를 GCP DNS 레코드의 소스로 정의합니다.
다음 명령을 실행하여 OpenShift Container Platform 경로에 대해 생성된 DNS 레코드를 확인합니다.
$ gcloud dns record-sets list --zone=qe-cvs4g-private-zone | grep console