728x90
Externalname이란
k8s에서 외부 서비스를 이용할 때 externalname을 사용할 때 사용자가 k8s 컨트롤플레인에 external name질의하게되고, 질의 시에 등록한 cname 레코드가 나오게 되며 이후 요청이 처리된다.
apiVersion: v1
kind: Service
metadata:
name: sample-externalname
namespace: default
spec:
type: ExternalName
externalName: external.example.com
질의 시에 아래이 표시된다.
dig sample-externalname.default.svc.cluster.local
; <<>> DiG 9.16.1-Ubuntu <<>> sample-externalname.default.svc.cluster.local
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
.....
;; ANSWER SECTION:
sample-externalname.default.svc.cluster.local. 5 IN CNAME external.example.com.
....
이를 활용하여 어플리케이션에서 외부 서비스 externalName을 통해 이용하게되면 추후 변동사항이 생기더라도(서비스 버전 변경에 따른 dns 이동 등) externalName service만 다시 설정하면 정상작동하므로 외부 서비스와의 느슨한 결합을 이끌어낼 수 있다.
주의해야할 점
clusterIP에서 externalName으로 서비스를 변경하여 A레코드 -> CNAME으로 변경을 원할 시에 clusterIP를 명시적으로 공란으로 입력하여야한다.
전
spec:
type: ClusterIP
후
spec:
type: ExternalName
clusterIP: ""
externalName: www.example.com
'DevOps > k8s' 카테고리의 다른 글
k8s의 보안 (0) | 2023.08.13 |
---|---|
k8s SealedSecret 사용법 (0) | 2023.06.23 |
K8S server-side apply & managed fields (0) | 2023.06.18 |
helm install bitnami nginx m1 오류 (0) | 2023.06.10 |
Kubectl run 시 image tag 지정 (0) | 2023.06.10 |