VPC 환경에서 이용 가능합니다.
Ncloud Kubernetes Service(NKS)에서 ExternalDNS를 사용하여 Kubernetes 리소스와 Global DNS 서비스의 레코드를 동기화할 수 있습니다.
사용 전 확인
ExternalDNS 활용 예제를 진행하기 전에 다음 지원 범위와 준비 사항을 확인해 주십시오.
| 항목 | 지원 범위 |
|---|---|
| 이용 환경 | VPC |
| Kubernetes(NKS Add-on) | 1.36.2 이상 |
| Kubernetes(Helm 수동 설치) | 1.33 이상 |
| ExternalDNS | 0.21.0 |
| 지원 리소스 | Service, Ingress, DNSEndpoint |
| 지원 레코드 유형 | A, AAAA, CNAME, MX, TXT |
| 인증 방식 | NKS Node IAM Role 또는 Sub Account 액세스 키 |
ExternalDNS가 관리하는 레코드 유형과 조건은 다음과 같습니다.
| 레코드 유형 | 관리 조건 |
|---|---|
A, AAAA, CNAME |
기본 관리 대상 |
MX, 직접 정의한 TXT |
Helm 수동 설치에서 managedRecordTypes에 추가한 경우만 관리(NKS Add-on 미지원) |
소유권 확인용 TXT |
registry: txt 설정에 따라 자동 생성(관리 대상 유형과 무관) |
다음 항목을 미리 준비해 주십시오.
- Ncloud Kubernetes Service 클러스터
kubectl을 사용할 수 있는 kubeconfig- Helm 3(수동 설치 시)
- Global DNS 서비스에 등록된 도메인
- 도메인 조회, 레코드 조회/생성/수정/삭제, 변경 사항 적용 권한
설치 과정에서 사용할 값은 다음과 같습니다.
| 입력값 | 설명 | 예시 |
|---|---|---|
<KUBE_CONTEXT> |
ExternalDNS를 설치할 kubeconfig context | nks_kr_cluster_example |
<DNS_ZONE> |
Global DNS 서비스에 등록된 관리 대상 도메인 | example.com |
<DNS_BASE_URL> |
수동 설치에 사용할 환경별 Global DNS OpenAPI 주소 | https://globaldns.apigw.ntruss.com/dns/v1 |
<WEBHOOK_IMAGE_TAG> |
수동 설치에 사용할 웹훅 이미지의 고정된 릴리스 태그 | v1.0.0 |
<TXT_OWNER_ID> |
수동 설치한 ExternalDNS 인스턴스를 구분하는 고유 값 | nks-cluster-a |
<INGRESS_CLASS> |
클러스터에서 사용하는 Ingress Class | alb |
<NODE_LABEL_KEY> |
Node IAM Role이 연결된 노드 풀의 레이블 키 | ncloud.com/nks-nodepool |
<NODE_LABEL_VALUE> |
Node IAM Role이 연결된 노드 풀의 레이블 값 | pool2 |
가능하면 클러스터별로 별도의 Global DNS 도메인이나 위임한 하위 도메인을 사용해 주십시오. 여러 클러스터가 같은 도메인을 공유해야 한다면 클러스터마다 고유한 <TXT_OWNER_ID>를 사용하고 동일한 호스트 이름을 중복 관리하지 않도록 구성해 주십시오. NKS Add-on은 클러스터 UUID를 txtOwnerId 기본값으로 사용합니다.
다음 명령을 실행하여 kubeconfig context와 Ingress Class를 확인해 주십시오.
kubectl --context "<KUBE_CONTEXT>" cluster-info
kubectl --context "<KUBE_CONTEXT>" get ingressclass
Global DNS 도메인 준비
ExternalDNS에서 관리할 도메인을 Global DNS 서비스에 등록해 주십시오.
예를 들어 example.com을 관리 도메인으로 지정하면 app.example.com과 같은 하위 호스트의 레코드를 생성할 수 있습니다.
공개 DNS에서 레코드를 조회하려면 도메인 등록기관에 Global DNS의 네임 서버 정보를 설정해야 합니다.
Kubernetes 리소스에 지정한 호스트 이름이 Global DNS의 등록 도메인에 포함되지 않으면 DNS 레코드를 생성하지 않고 경고 로그를 남깁니다.
인증 정보 준비
웹훅 프로바이더는 NKS Node IAM Role과 Sub Account 액세스 키를 지원합니다. 두 방식이 모두 설정된 경우 Sub Account 액세스 키를 먼저 사용합니다.
NKS Node IAM Role 사용
NKS Node IAM Role을 사용하면 장기 액세스 키를 Kubernetes Secret에 저장하지 않아도 됩니다. 다음 순서로 역할을 준비해 주십시오.
- 역할 생성을 참고하여 Server 유형의 Sub Account 역할을 생성해 주십시오.
- 역할에 Global DNS 도메인 및 레코드 관리 권한을 추가해 주십시오.
- 노드 풀을 생성할 때 해당 역할을 Node IAM Role로 선택해 주십시오.
- ExternalDNS 파드가 해당 노드 풀에 배치되도록 노드 레이블과 taint를 확인해 주십시오.
Node IAM Role 설정에 관한 자세한 내용은 Node IAM Role 활용 예제를 참고해 주십시오.
Global DNS의 모든 기능을 허용하려면 NCP_GLOBAL_DNS_MANAGER 관리형 정책을 사용할 수 있습니다. 최소 권한의 사용자 정의 정책을 사용하는 경우 다음 액션을 선택해 주십시오.
| 권한 구분 | 선택할 액션 |
|---|---|
| 조회 권한 | getDomainList, getRecordList |
| 변경 권한 | createRecord, updateRecord, deleteRecord, applyRecordConfig |
Sub Account는 위 액션에 필요한 getDomainDetail과 getRecordDetail을 연관 액션으로 자동 추가합니다. 자동으로 추가된 연관 액션을 선택 해제하지 마십시오. getDomainMonitor, downloadRecordList, createDomain, uploadZonefile, deleteDomain, changeDNSSECstatus는 필요하지 않습니다.
자세한 내용은 Global DNS 권한 관리를 참고해 주십시오.
Sub Account 액세스 키 사용
Sub Account 액세스 키를 사용하는 경우 ExternalDNS 파드가 실행되는 네임스페이스에 인증 정보가 포함된 Secret을 생성해 주십시오.
NKS Add-on은 kube-system 네임스페이스에 설치됩니다. 기존 클러스터에 Add-on을 설치하는 경우 다음 명령을 실행하여 Secret을 먼저 생성해 주십시오.
kubectl --context "<KUBE_CONTEXT>" --namespace kube-system \
create secret generic ncloud-credentials \
--from-literal=access-key="<NCLOUD_ACCESS_KEY>" \
--from-literal=secret-key="<NCLOUD_SECRET_KEY>"
Add-on 설정의 credentials.secretName에 ncloud-credentials를 입력해 주십시오.
클러스터 생성과 동시에 ExternalDNS Add-on을 설치하는 경우에는 credentials.secretName을 먼저 입력할 수 있습니다. 클러스터 생성이 완료된 후 kube-system 네임스페이스에 Secret을 생성하고 다음 명령을 실행하여 ExternalDNS Deployment를 다시 시작해 주십시오.
kubectl --context "<KUBE_CONTEXT>" --namespace kube-system \
rollout restart deployment/external-dns
kubectl --context "<KUBE_CONTEXT>" --namespace kube-system \
rollout status deployment/external-dns --timeout=5m
Sub Account 액세스 키를 사용하려면 Add-on 설정의 credentials.secretName에 Secret 이름을 입력해 주십시오. Node IAM Role을 사용하려면 값을 비워 주십시오. 같은 이름의 Secret에서 액세스 키를 변경한 경우에는 ExternalDNS Deployment를 다시 시작해야 변경된 값이 적용됩니다.
Helm으로 수동 설치하는 경우 다음 명령을 실행하여 external-dns 네임스페이스와 Secret을 생성해 주십시오.
kubectl --context "<KUBE_CONTEXT>" create namespace external-dns
kubectl --context "<KUBE_CONTEXT>" --namespace external-dns \
create secret generic ncloud-credentials \
--from-literal=access-key="<NCLOUD_ACCESS_KEY>" \
--from-literal=secret-key="<NCLOUD_SECRET_KEY>"
ExternalDNS 설치
ExternalDNS는 NKS Add-on 또는 Helm으로 설치할 수 있습니다.
| 설치 방식 | 값 설정 | 관리 방식 | 권장 상황 |
|---|---|---|---|
| NKS Add-on | NKS가 일부 값을 자동으로 주입하고 사용자는 Add-on이 제공하는 설정 항목만 입력 | NKS에서 구성과 버전을 자동 관리 | NKS에서 지원하는 설정 범위로 운영하는 경우 |
| Helm 수동 설치 | ExternalDNS Helm 차트의 전체 값을 사용자가 직접 설정 | 설치, 업그레이드, 제거를 사용자가 직접 관리 | Add-on에서 제공하지 않는 값을 설정해야 하는 경우 |
두 설치 방식 중 하나만 선택해 주십시오. 같은 클러스터에 Add-on과 Helm 릴리스를 함께 설치하면 DNS 레코드 소유권이 충돌할 수 있습니다.
NKS Add-on을 이용한 설치
NKS Add-on 기능에서 ExternalDNS를 선택하고 설치해 주십시오. Add-on은 ExternalDNS 컨테이너, 네이버 클라우드 플랫폼용 웹훅 프로바이더, DNSEndpoint CRD, 지원 소스인 service, ingress, crd에 필요한 RBAC을 함께 설치합니다.
Add-on은 클러스터 UUID와 이용 환경에 따른 Global DNS OpenAPI 주소 등 일부 값을 자동으로 주입합니다. 사용자는 Add-on에서 제공하는 설정 항목만 입력하며, NKS가 Add-on의 구성과 버전을 자동으로 관리합니다. Add-on에서 제공하지 않는 값을 변경해야 하는 경우 Helm을 이용한 수동 설치를 진행해 주십시오.
주요 Add-on 설정은 다음과 같습니다.
| 설정 | 기본값 | 설명 |
|---|---|---|
domainFilter |
빈 값 | 관리할 Global DNS 도메인. 빈 값이면 사용 중인 인증 정보로 조회할 수 있는 모든 도메인이 관리 대상 |
sources |
service, ingress, crd |
DNS 레코드를 생성할 Kubernetes 리소스 유형 |
policy |
upsert-only |
레코드 변경 정책. sync, upsert-only, create-only 중 선택 |
annotationFilter |
빈 값 | 지정한 어노테이션 조건과 일치하는 리소스만 처리 |
labelFilter |
빈 값 | 지정한 레이블 조건과 일치하는 리소스만 처리 |
txtPrefix |
_edns. |
소유권 TXT 레코드 이름의 접두사 |
txtSuffix |
빈 값 | 소유권 TXT 레코드 이름의 접미사 |
txtOwnerId |
클러스터 UUID | ExternalDNS 인스턴스의 소유자 식별자 |
logLevel |
info |
로그 레벨 |
credentials.secretName |
빈 값 | kube-system 네임스페이스의 Sub Account 액세스 키 Secret 이름. Node IAM Role 사용 시 입력하지 않음 |
scheduling.nodeSelector |
빈 값 | Node IAM Role이 연결된 노드 풀 선택 |
scheduling.extraTolerations |
빈 값 | 해당 노드 풀의 taint 허용 설정 |
설정 시 다음 사항을 참고해 주십시오.
- 운영 환경에서는 의도하지 않은 도메인이 관리 범위에 포함되지 않도록 관리할 도메인을
domainFilter에 지정하는 것을 권장합니다. - Node IAM Role을 사용하는 경우 역할이 연결된 노드 풀의
scheduling.nodeSelector와 필요한scheduling.extraTolerations를 입력해 주십시오. - Kubernetes 리소스를 삭제할 때 DNS 레코드도 함께 삭제하려면
policy를sync로 설정해 주십시오. 기본값upsert-only는 리소스를 삭제해도 DNS 레코드를 유지합니다. txtOwnerId를 입력하지 않으면 클러스터 UUID가 사용됩니다. 기존 ExternalDNS에서 이전하는 경우에만 기존 소유자 값을 입력해 주십시오.txtPrefix와txtSuffix는 동시에 설정할 수 없습니다. 운영 중 값을 변경하면 기존 소유권 TXT 레코드가 남을 수 있으므로 설치 후에는 변경하지 마십시오.- NKS가 이용 환경에 맞는 Global DNS OpenAPI 주소를 자동으로 설정하므로 Add-on을 설치할 때
dnsBaseUrl을 입력하지 않아도 됩니다. - Add-on 설치 상태가 정상으로 표시되면 Service DNS 레코드 생성부터 진행해 주십시오.
Helm을 이용한 수동 설치
ExternalDNS Add-on을 사용할 수 없거나 사용자 정의 설정을 사용해야 하는 경우 ExternalDNS 공식 Helm 차트로 수동 설치할 수 있습니다. 수동 설치에서는 설치, 값 변경, 업그레이드, 제거를 사용자가 직접 관리합니다. ExternalDNS 컨테이너와 네이버 클라우드 플랫폼용 웹훅 프로바이더는 하나의 파드에 배포됩니다.
Node IAM Role을 사용하는 경우 다음 명령을 실행하여 네임스페이스를 생성해 주십시오.
kubectl --context "<KUBE_CONTEXT>" create namespace external-dns
다음 명령을 실행하여 ExternalDNS Helm 저장소를 추가해 주십시오.
helm repo add external-dns https://kubernetes-sigs.github.io/external-dns/
helm repo update
수동 설치에서는 이용 환경에 맞는 Global DNS OpenAPI 주소를 직접 설정해야 합니다.
| 이용 환경 | <DNS_BASE_URL> |
|---|---|
| 민간 | https://globaldns.apigw.ntruss.com/dns/v1 |
| 공공 | https://globaldns.apigw.gov-ntruss.com/dns/v1 |
| 금융 | https://globaldns.apigw.fin-ntruss.com/dns/v1 |
다음 내용을 복사하여 external-dns-values.yaml 파일로 저장해 주십시오.
<DNS_ZONE>, <DNS_BASE_URL>, <TXT_OWNER_ID>, <WEBHOOK_IMAGE_TAG>는 준비한 값으로 변경해 주십시오.
image:
tag: v0.21.0
sources:
- service
- ingress
- crd
registry: txt
policy: sync
logLevel: info
txtPrefix: "_edns."
txtOwnerId: "<TXT_OWNER_ID>"
domainFilters:
- "<DNS_ZONE>"
extraArgs:
- --webhook-provider-read-timeout=90s
terminationGracePeriodSeconds: 120
provider:
name: webhook
webhook:
image:
repository: nks.kr.ncr.ntruss.com/nks/external-dns-navercloud-webhook
tag: "<WEBHOOK_IMAGE_TAG>"
env:
- name: DOMAIN_FILTER
value: "<DNS_ZONE>"
- name: NCLOUD_DNS_BASE_URL
value: "<DNS_BASE_URL>"
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 5
periodSeconds: 10
readinessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 3
periodSeconds: 5
- 이 예제에서는
sources를service,ingress,crd로 설정합니다. 수동 설치에서는 사용 목적에 따라 리소스 유형을 추가하거나 제거할 수 있습니다. crd를 사용하는 경우 ExternalDNS Helm 차트에 포함된DNSEndpointCRD를 설치 대상에서 제외하지 마십시오.
수동 설치에서 MX 레코드와 Kubernetes 리소스에서 직접 정의한 TXT 레코드를 관리하려면 external-dns-values.yaml에 다음 값을 추가해 주십시오.
managedRecordTypes:
- A
- AAAA
- CNAME
- MX
- TXT
txtPrefix는 CNAME 레코드와 소유권 TXT 레코드의 이름 충돌을 방지합니다. txtOwnerId는 여러 ExternalDNS 인스턴스가 같은 레코드를 변경하지 않도록 소유자를 구분합니다.
Sub Account 액세스 키를 사용하는 경우 provider.webhook.env를 다음과 같이 설정해 주십시오.
env:
- name: DOMAIN_FILTER
value: "<DNS_ZONE>"
- name: NCLOUD_DNS_BASE_URL
value: "<DNS_BASE_URL>"
- name: NCLOUD_ACCESS_KEY
valueFrom:
secretKeyRef:
name: ncloud-credentials
key: access-key
- name: NCLOUD_SECRET_KEY
valueFrom:
secretKeyRef:
name: ncloud-credentials
key: secret-key
다음 명령을 실행하여 ExternalDNS를 설치해 주십시오.
helm upgrade --install external-dns external-dns/external-dns \
--kube-context "<KUBE_CONTEXT>" \
--namespace external-dns \
--version 1.21.1 \
--values external-dns-values.yaml
Helm 차트를 설치할 때 DNSEndpoint CRD도 함께 설치됩니다. --skip-crds 옵션을 사용하지 마십시오.
다음 명령을 실행하여 ExternalDNS와 CRD 상태를 확인해 주십시오.
kubectl --context "<KUBE_CONTEXT>" --namespace external-dns \
rollout status deployment/external-dns --timeout=5m
kubectl --context "<KUBE_CONTEXT>" --namespace external-dns get pod
kubectl --context "<KUBE_CONTEXT>" get crd dnsendpoints.externaldns.k8s.io
다음 명령을 실행하여 ExternalDNS 컨테이너와 웹훅 컨테이너의 로그를 확인해 주십시오.
kubectl --context "<KUBE_CONTEXT>" --namespace external-dns \
logs deployment/external-dns --all-containers=true --tail=100
웹훅 프로바이더가 사용 중인 인증 방식은 로그에서 다음 값으로 확인할 수 있습니다.
provider=ServerRoleProvider: NKS Node IAM Role 사용provider=EnvProvider: Sub Account 액세스 키 사용
Service DNS 레코드 생성
LoadBalancer 유형의 Service에 ExternalDNS 어노테이션을 추가하면 Service의 외부 주소를 가리키는 DNS 레코드를 생성할 수 있습니다.
예제 리소스는 external-dns 네임스페이스에 생성합니다. 해당 네임스페이스가 없는 경우 다음 명령을 실행하여 생성해 주십시오.
kubectl --context "<KUBE_CONTEXT>" create namespace external-dns
다음 내용을 복사하여 external-dns-service.yaml 파일로 저장해 주십시오. <SERVICE_HOSTNAME>은 <DNS_ZONE>의 하위 호스트 이름으로 변경해 주십시오.
apiVersion: apps/v1
kind: Deployment
metadata:
name: external-dns-nginx
namespace: external-dns
spec:
replicas: 1
selector:
matchLabels:
app: external-dns-nginx
template:
metadata:
labels:
app: external-dns-nginx
spec:
containers:
- name: nginx
image: nginx:1.27-alpine
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: external-dns-nginx
namespace: external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: "<SERVICE_HOSTNAME>"
external-dns.alpha.kubernetes.io/ttl: "300"
spec:
type: LoadBalancer
selector:
app: external-dns-nginx
ports:
- port: 80
targetPort: 80
다음 명령을 실행하여 Deployment와 Service를 생성하고 외부 주소 할당 상태를 확인해 주십시오.
kubectl --context "<KUBE_CONTEXT>" apply -f external-dns-service.yaml
kubectl --context "<KUBE_CONTEXT>" --namespace external-dns \
get service external-dns-nginx
다음 동기화가 완료되면 Global DNS 메뉴에서 <SERVICE_HOSTNAME>의 레코드와 소유권 TXT 레코드가 생성되었는지 확인해 주십시오. ExternalDNS는 기본적으로 1분마다 동기화합니다. Load Balancer 생성에는 수 분 이상 걸릴 수 있습니다.
Ingress DNS 레코드 생성
Ingress Controller가 Ingress에 할당한 외부 주소와 Ingress에 지정한 호스트 이름을 이용해 DNS 레코드를 생성할 수 있습니다. Ingress Controller 설치 및 Ingress 생성 방법은 ALB Ingress Controller 활용 예제를 참고해 주십시오.
다음 내용을 복사하여 external-dns-ingress.yaml 파일로 저장해 주십시오. <INGRESS_HOSTNAME>은 <DNS_ZONE>의 하위 호스트 이름으로 변경해 주십시오.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: external-dns-ingress
namespace: external-dns
annotations:
external-dns.alpha.kubernetes.io/ttl: "300"
spec:
ingressClassName: "<INGRESS_CLASS>"
rules:
- host: "<INGRESS_HOSTNAME>"
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: external-dns-nginx
port:
number: 80
다음 명령을 실행하여 Ingress를 생성하고 외부 주소 할당 상태를 확인해 주십시오.
kubectl --context "<KUBE_CONTEXT>" apply -f external-dns-ingress.yaml
kubectl --context "<KUBE_CONTEXT>" --namespace external-dns \
get ingress external-dns-ingress
다음 동기화가 완료되면 Global DNS 메뉴에서 <INGRESS_HOSTNAME>의 레코드와 소유권 TXT 레코드가 생성되었는지 확인해 주십시오.
Ingress Controller가 IP 주소를 제공하면 A 또는 AAAA 레코드가 생성됩니다. 호스트 이름을 제공하면 CNAME 레코드가 생성됩니다.
DNSEndpoint로 DNS 레코드 생성
DNSEndpoint를 사용하면 Service나 Ingress와 관계없이 DNS 레코드를 직접 정의할 수 있습니다.
다음 내용을 복사하여 external-dns-crd.yaml 파일로 저장해 주십시오.
<CRD_HOSTNAME>과 <IP_ADDRESS>는 사용할 호스트 이름과 IP 주소로 변경해 주십시오.
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: external-dns-crd
namespace: external-dns
spec:
endpoints:
- dnsName: "<CRD_HOSTNAME>"
recordTTL: 300
recordType: A
targets:
- "<IP_ADDRESS>"
다음 명령을 실행하여 DNSEndpoint를 생성하고 생성 여부를 확인해 주십시오.
kubectl --context "<KUBE_CONTEXT>" apply -f external-dns-crd.yaml
kubectl --context "<KUBE_CONTEXT>" --namespace external-dns \
get dnsendpoint external-dns-crd
다음 동기화가 완료되면 Global DNS 메뉴에서 <CRD_HOSTNAME>의 A 레코드와 소유권 TXT 레코드가 생성되었는지 확인해 주십시오.
DNS 레코드 삭제
이 예제는 policy: sync를 사용하므로 Kubernetes 리소스를 삭제하면 ExternalDNS가 관리 대상 DNS 레코드와 소유권 TXT 레코드를 삭제합니다.
다음 명령을 실행하여 예제 리소스를 삭제해 주십시오.
kubectl --context "<KUBE_CONTEXT>" delete -f external-dns-crd.yaml
kubectl --context "<KUBE_CONTEXT>" delete -f external-dns-ingress.yaml
kubectl --context "<KUBE_CONTEXT>" delete -f external-dns-service.yaml
다음 동기화가 완료되면 Global DNS 메뉴에서 DNS 레코드와 소유권 TXT 레코드가 삭제되었는지 확인해 주십시오.
ExternalDNS를 더 이상 사용하지 않는 경우 설치 방식에 따라 제거해 주십시오.
- NKS Add-on: NKS의 Add-on 관리 화면에서 ExternalDNS Add-on 제거
- Helm 수동 설치: 다음 명령을 실행하여 Helm 릴리스 제거
helm uninstall external-dns \
--kube-context "<KUBE_CONTEXT>" \
--namespace external-dns
Helm 릴리스를 제거해도 DNSEndpoint CRD는 삭제되지 않습니다. CRD가 더 이상 필요하지 않은 경우 사용 중인 DNSEndpoint가 없는지 확인한 후 별도로 삭제해 주십시오.
Helm 수동 설치에서 Sub Account 액세스 키를 사용한 경우 해당 Secret을 다른 워크로드에서 사용하지 않는지 확인한 후 다음 명령을 실행하여 삭제해 주십시오.
kubectl --context "<KUBE_CONTEXT>" --namespace external-dns \
delete secret ncloud-credentials
Add-on에서 Sub Account 액세스 키를 사용한 경우 해당 Secret을 다른 워크로드에서 사용하지 않는지 확인한 후 삭제해 주십시오.
Kubernetes 리소스를 삭제하기 전에 ExternalDNS를 삭제하면 DNS 레코드를 자동으로 정리할 수 없습니다. policy를 upsert-only로 설정한 경우에도 DNS 레코드가 유지되므로 Global DNS 서비스에서 직접 삭제해야 합니다.
제약 사항
ExternalDNS와 네이버 클라우드 플랫폼용 웹훅 프로바이더를 사용할 때 다음 제약 사항을 확인해 주십시오.
- Global DNS 서비스에 등록되지 않은 도메인의 호스트 이름은 건너뜁니다.
- Add-on에서
domainFilter를 설정하거나 Helm 수동 설치에서domainFilters와DOMAIN_FILTER를 설정하면 지정한 도메인만 관리합니다. - Global DNS에서 네임 서버에 반영하지 않은 변경 사항이 남아 있으면 ExternalDNS는 해당 도메인의 레코드를 변경하지 않습니다. [설정 적용] > [배포] 버튼을 차례로 선택해 변경 사항을 반영하거나 [변경 사항 취소] 버튼을 선택해 되돌리면 다음 동기화부터 다시 처리됩니다.
- 웹훅 프로바이더가 실행 중일 때 Global DNS 콘솔에서 같은 도메인의 레코드를 직접 변경하지 마십시오.
SOA와NS기본 레코드는 관리하지 않습니다.