클러스터 내부 POD의 컨테이너에서 외부 도메인 FQDN을 CNAME(≒Alias)으로 매핑하여 접근하는 기능을 제공
▶ 외부 도메인을 내부 자칭 도메인 별칭으로 접근
▶ 외부 도메인을 신경 쓸 필요 없이 사용 가능
# 컨테이너가 사용할 별칭을 설정하여 접근
www.google.com → externalname-svc.default.svc.cluster.local
[root@master ~/kube/08/externalname]# vi externalname-svc.yaml
[root@master ~/kube/08/externalname]# cat externalname-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: externalname-svc
spec:
type: ExternalName
externalName: www.google.com # 연결할 외부 도메인
▶ 컨테이너에서 접근 시, www.google.com or externalname-svc.default.svc.cluster.local으로 접근 가능
[root@master ~/kube/08/externalname]# kubectl run testpod -it --image=ubuntu
root@testpod:/# apt-get update
root@testpod:/# apt-get -y install bind9-dnsutils iputils-ping
root@testpod:/# nslookup externalname-svc.default.svc.cluster.local
;; Got recursion not available from 169.254.25.10
;; Got recursion not available from 169.254.25.10
;; Got recursion not available from 169.254.25.10
;; Got recursion not available from 169.254.25.10
Server: 169.254.25.10
Address: 169.254.25.10#53
externalname-svc.default.svc.cluster.local canonical name = www.google.com
Name: www.google.com
Address: 142.250.198.4
Name: www.google.com
Address: 2404:6800:4004:828::2004
root@testpod:/#ping -c 3 externalname-svc.default.svccluster.local
PING www.google.com (142.251.222.4) 56(84) bytes of data.
64 bytes from nrt13s71-in-f4.1e100.net (142.251.222.4): icmp_seq=1 ttl=127 time=33.8 ms
64 bytes from nrt13s71-in-f4.1e100.net (142.251.222.4): icmp_seq=1 ttl=127 time=33.8 ms
64 bytes from nrt13s71-in-f4.1e100.net (142.251.222.4): icmp_seq=1 ttl=127 time=35.0 ms
--- www.google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2005ms
rtt min/avg/max/mdev = 33.824/34.213/34.982/0.543 ms
root@testpod:/#