tencent cloud

Tencent Kubernetes Engine

소식 및 공지 사항
릴리스 노트
제품 릴리스 기록
제품 소개
제품 장점
제품 아키텍처
시나리오
제품 기능
리전 및 가용존
빠른 시작
신규 사용자 가이드
표준 클러스터를 빠르게 생성
Demo
클라우드에서 컨테이너화된 애플리케이션 배포 Check List
TKE 표준 클러스터 가이드
Tencent Kubernetes Engine(TKE)
클러스터 관리
네트워크 관리
스토리지 관리
Worker 노드 소개
Kubernetes Object Management
워크로드
클라우드 네이티브 서비스 가이드
Tencent Managed Service for Prometheus
TKE Serverless 클러스터 가이드
TKE 클러스터 등록 가이드
실습 튜토리얼
Serverless 클러스터
네트워크
로그
모니터링
유지보수
DevOps
탄력적 스케일링
자주 묻는 질문
클러스터
TKE Serverless 클러스터
유지보수
서비스
이미지 레지스트리
원격 터미널
문서Tencent Kubernetes Engine실습 튜토리얼네트워크DNSTKE에서 사용자 지정 도메인 이름 레졸루션 구현

TKE에서 사용자 지정 도메인 이름 레졸루션 구현

PDF
포커스 모드
폰트 크기
마지막 업데이트 시간: 2023-04-26 19:23:11

작업 시나리오

TKE 또는 Serverless TKE를 사용하는 경우 다음 시나리오에서 사용자 지정 내부 도메인 이름을 레졸루션해야 할 수 있습니다.
외부 중앙 집중식 스토리지 서비스를 구축하고 클러스터의 모니터링 또는 로그 수집 데이터를 고정된 내부 도메인 이름을 통해 외부 스토리지 서비스로 보내야 합니다.
기존 서비스의 컨테이너화 중에 일부 서비스의 코드는 고정된 도메인 이름으로 다른 내부 서비스를 호출하도록 구성되며 구성을 수정할 수 없습니다. 즉, Kubernetes의 Service 이름을 호출에 사용할 수 없습니다.

솔루션

이 문서에서는 클러스터에서 사용자 지정 도메인 이름 레졸루션을 사용하기 위한 다음 세 가지 솔루션에 대해 설명합니다.
솔루션
장점
이 솔루션은 간단하고 직관적입니다. 임의의 레졸루션 레코드를 추가할 수 있습니다.
레졸루션 레코드의 IP 주소를 미리 알 필요는 없지만 레졸루션 레코드로 매핑된 IP 주소는 클러스터에 배포되어야 합니다.
많은 수의 레졸루션 레코드를 관리할 수 있습니다. 모든 레코드는 외부 DNS에서 관리되므로 레코드를 추가하거나 삭제할 때 CoreDNS 구성을 수정할 필요가 없습니다.
설명
솔루션1과 솔루션2에서는 레졸루션 레코드를 추가할 때마다 CoreDNS 구성 파일을 수정해야 합니다(다시 시작할 필요 없음). 실제 필요에 따라 솔루션을 선택하십시오.

예시

솔루션1: CoreDNS Hosts 플러그인을 사용하여 임의의 도메인 이름 레졸루션 구성

1. 다음 명령을 실행하여 아래와 같이 CoreDNS의 configmap을 수정합니다.
kubectl edit configmap coredns -n kube-system
2. 아래와 같이 hosts에 도메인 이름을 추가하도록 hosts 구성을 수정합니다.
hosts {
192.168.1.6 harbor.example.com
192.168.1.8 es.example.com
fallthrough
}
설명
harbor.example.com을 192.168.1.6에 매핑하고 es.example.com을 192.168.1.8에 매핑합니다.
전체 구성 예시는 다음과 같습니다.
apiVersion: v1
data:
Corefile: |2-
.:53 {
errors
health
kubernetes cluster.local. in-addr.arpa ip6.arpa {
pods insecure
upstream
fallthrough in-addr.arpa ip6.arpa
}
hosts {
192.168.1.6 harbor.example.com
192.168.1.8 es.example.com
fallthrough
}
prometheus :9153
forward . /etc/resolv.conf
cache 30
reload
loadbalance
}
kind: ConfigMap
metadata:
labels:
addonmanager.kubernetes.io/mode: EnsureExists
name: coredns
namespace: kube-system

솔루션2: CoreDNS Rewrite 플러그인을 사용하여 도메인 이름을 클러스터의 서비스에 매핑

클러스터에 사용자 지정 도메인 이름이 있는 서비스를 배포하려면 CoreDNS의 Rewrite 플러그인을 사용하여 지정된 도메인 이름을 Service의 ClusterIP로 확인할 수 있습니다.
1. 다음 명령을 실행하여 아래와 같이 CoreDNS의 configmap을 수정합니다.
kubectl edit configmap coredns -n kube-system
2. 다음 명령을 실행하여 아래와 같이 Rewrite 구성을 추가합니다.
rewrite name es.example.com es.logging.svc.cluster.local
설명
es.example.comlogging 네임스페이스 아래에 배포된 es 서비스에 매핑합니다. 캐리지 리턴으로 여러 도메인 이름을 구분하십시오.
전체 구성 예시는 다음과 같습니다.
apiVersion: v1
data:
Corefile: |2-
.:53 {
errors
health
kubernetes cluster.local. in-addr.arpa ip6.arpa {
pods insecure
upstream
fallthrough in-addr.arpa ip6.arpa
}
rewrite name es.example.com es.logging.svc.cluster.local
prometheus :9153
forward . /etc/resolv.conf
cache 30
reload
loadbalance
}
kind: ConfigMap
metadata:
labels:
addonmanager.kubernetes.io/mode: EnsureExists
name: coredns
namespace: kube-system

솔루션3: CoreDNS Forward 플러그인을 사용하여 외부 DNS를 업스트림 DNS로 설정

1. forward 구성을 확인합니다. forward의 기본 설정은 다음과 같습니다. 즉, 클러스터에 없는 도메인 이름은 CoreDNS가 위치한 노드의 /etc/resolv.conf 파일에 구성된 nameserver로 레졸루션됩니다.
forward . /etc/resolv.conf
2. 다음과 같이 forward를 구성하고 /etc/resolv.conf를 명시적으로 외부 DNS 서버 주소로 바꿉니다.
forward . 10.10.10.10
전체 구성 예시는 다음과 같습니다.
apiVersion: v1
data:
Corefile: |2-
.:53 {
errors
health
kubernetes cluster.local. in-addr.arpa ip6.arpa {
pods insecure
upstream
fallthrough in-addr.arpa ip6.arpa
}
prometheus :9153
forward . 10.10.10.10
cache 30
reload
loadbalance
}
kind: ConfigMap
metadata:
labels:
addonmanager.kubernetes.io/mode: EnsureExists
name: coredns
namespace: kube-system
3. 외부 DNS에 대한 사용자 지정 도메인 이름의 레졸루션 레코드를 구성합니다. 외부 DNS의 업스트림 노드의 /etc/resolv.conf에 nameserver를 추가하는 것을 권장합니다. 일부 서비스는 Tencent Cloud 내부 DNS 레졸루션에 의존하기 때문에 자체 구축 DNS의 업스트림으로 설정하지 않으면 일부 서비스가 제대로 작동하지 않을 수 있습니다. 이 문서는 아래와 같이 구성 파일을 수정하고 forwarders에 업스트림 DNS 주소를 쓰는 예시로 BIND 9를 사용합니다.
참고
외부 DNS Server와 요청 소스가 동일한 Region에 있지 않으면 리전 간 액세스를 지원하지 않는 일부 Tencent 도메인 이름이 무효화될 수 있습니다.
options {
forwarders {
183.60.83.19;
183.60.82.98;
};
...

참고 문서

도움말 및 지원

문제 해결에 도움이 되었나요?

피드백