ð íŽë¹ í¬ì€í
ì ììíìžì! ë컀/ì¿ ë²ë€í°ì€ ìì ì ìœê³ ê°ìžì ìž ëª©ì íì ìì±ëë êžì
ëë€. í¬ì€í
ì ì¬ì©ëë 몚ë ìë£ë ì ê° ì§ì ì¬êµ¬ì±íììì ì늜ëë€.
ìŽë² í¬ì€í ììë ì ë² í¬ì€í ìì ìê°í ì¿ ë²ë€í°ì€ êž°ìŽ ê°ë ì í¬íšëë ìë¹ì€(Service)ëŒë ì€ëžì ížì ëíŽì ìì볞ë€. ì ë² í¬ì€í ë§ì§ë§ì ë°°ìŽ ëíë¡ìŽëšŒížëŒë ì€ëžì ížë¥Œ íì©íë©Ž ëìŒí ìí ì íë íë ì¬ë¬ê°ë¥Œ í ë²ì ìì±íê±°ë ìì íê³ , íëì ìì 죌Ʞê¹ì§ êŽëŠ¬íŽì£Œë ë± ììœê² ë í늬칎ì (íëë€ì 몚ì)ì êŽëŠ¬í ì ììë€. íì§ë§ ëíë¡ìŽëšŒížê° ìííì§ ëª»íë ê²ìŽ í ê°ì§ ìëë°, ìžë¶(ìžë¶ëŒ íšì ë¡ì»¬ ëë ì¿ ë²ë€í°ì€ íŽë¬ì€í°ì ìžë¶)ìì íëë¡ ì ê·ŒìŽ ë¶ê°ë¥í ê²ìŽë€. ìŽë¥Œ ê°ë¥íëë¡ íêž° ìíŽì ìë¹ì€ëŒë ì€ëžì ížë¥Œ ë³ëë¡ ìì±íŽì£ŒìŽìŒ íëë°, ìŽë² ìê°ìë ìŽ ìë¹ì€ëŒë ê²ì ëíŽì ë°°ì볎ëë¡ íì.
1. ìžë¶ììë íëì ì ê·Œì ê°ë¥íê² íë ì€ëžì íž, ìë¹ì€!
ì ë² í¬ì€í ìì íë, ë í늬칎ì ì ë°°ì°ë©Žì ìì±í YAML íìŒì 볎멎 íë í í늿 ìììì íëì ì í늬ìŒìŽì ìŽ ì¬ì©í í¬ížë²ížë¥Œ containerPort ëŒë í목ìŒë¡ ì ìíŽì£Œìë€. íì§ë§ ìŽê²ì ì ìíŽì£Œìë€ê³ íŽì ìžë¶ììë íŽë¹ íëë¡ ì ê·ŒìŽ ê°ë¥íë€ë ê²ì ìëë€. ìŽë¥Œ ìíŽ ìë¹ì€ëŒë ì€ëžì ížë íëì ì ê·Œíêž° ìí ê·ì¹ì ì ìíê² ëë€. ìë¹ì€ìë ë§ì êž°ë¥ìŽ ìì§ë§, íµì¬ êž°ë¥ë§ ìŽê±°íŽë³Žë©Ž ìëì ê°ë€.
- ì¬ë¬ ê°ì ëìŒí ìí ì íë íëì ìœê² ì ê·ŒìŽ ê°ë¥íëë¡ ê³ ì í ëë©ìž ìŽëŠì ë¶ì¬
- ì¬ë¬ ê°ì ëìŒí ìí ì íë íëì ì ê·Œí ë, ìì²ì ë¶ì°íë ë¡ë ë°žë°ì êž°ë¥ì ìí
- íŽëŒì°ë íë«íŒì ë¡ë ë°žë°ì, íŽë¬ì€í° ë žëì í¬íž ë±ì íµíŽ íë륌 ìžë¶ë¡ ë žì¶
ììì ìŽê±°í êž°ë¥ ìžì ìë¹ì€ë ë ë€ìí êž°ë¥ì ê°ê³ ìì§ë§, ì§êžì ì 3ê°ì§ êž°ë¥ë§ ììëëë¡ íì. ì°žê³ ë¡ ìë¹ì€ë¥Œ ì¬ì©íì§ ìê³ ë íŽë¬ì€í° ëŽë¶ì íëë€ ê°ì íµì ìŽ ê°ë¥í ê²ì ì²ìì ì¿ ë²ë€í°ì€ ì€ì¹í ë ê°ìŽ ì€ì¹í calico ê°ì ë€ížìí¬ íë¬ê·žìž ëë¶ìŽë€. ìŽ calicoê° ìëìŒë¡ ì€ë²ë ìŽ ë€ížìí¬ë¥Œ ì ì©íì¬ ìë¡ ë€ë¥ž ë žëë€ì íë ê°ì íµì ìŽ ê°ë¥í ê²ìŽë€. ìŽë ë컀 ì€ìëì ë¹ì·íë€.
ìë¹ì€ìë ì¢ ë¥ê° ëª ê°ì§ ìë€. ê·žëì ìë¹ì€ë¥Œ ì ìí ë ì€ì íë ìë¹ì€ ì¢ ë¥ì ë°ëŒ íë륌 ìžë¶ì ë žì¶ìí¬ ì ìê³ ìê³ ê° ë¬ëŒì§ë€. ìŽì ëíŽ íëì© ìì볎ëë¡ íì. ì°ì ì íëë ìë¹ì€ë¥Œ ì°ê²°íŽë³Žêž° ìíŽ, ìë ëŽì©ì YAML íìŒë¡ ëíë¡ìŽëšŒížë¥Œ ìì±íŽë³Žì. íë ìì± ì ì¬ì©íë ìŽë¯žì§ë íëì ížì€íž ìŽëŠì ë°ííëë¡ ì§ì ì ìì ì± ì ìë¶ì 컀ì€í ìŽë¯žì§ìŽë€.
apiVersion: apps/v1
kind: Deployment
metadata:
name: zedd-hostname-deploy
spec:
replicas: 3
selector:
matchLabels:
app: webserver
template:
metadata:
name: zedd-webserver
labels:
app: webserver
spec:
containers:
- name: zedd-webserver-pod
image: alicek106/rr-test:echo-hostname
ports:
- containerPort: 80
ê·žë¬ë©Ž ìŽì ìë¹ì€ì ì¢ ë¥ì ëíŽ íëì© ì§ìŽë³Žì.
2. ì¿ ë²ë€í°ì€ ëŽë¶ììë§ ì ê·ŒìŽ ê°ë¥í ìë¹ì€, ClusterIP ì í
ClusterIPë ìŽëŠìì ëë ì ìë ê²ì²ëŒ ì¿ ë²ë€í°ì€ íŽë¬ì€í° ëŽë¶ììë§ íëë€ì ì ê·Œí ë ì¬ì©íë ìë¹ì€ ì íìŽë€. ê·žë¬ë©Ž ClusterIP ì íì ìë¹ì€ë¥Œ ì€ì íêž° ìí YAML íìŒì ìŽíŽë³Žì.
apiVersion: v1
kind: Service
metadata:
name: zedd-hostname-svc-clusterip
spec:
ports:
- name: web-port
port: 8080
targetPort: 80
selector:
app: webserver
type: ClusterIP
ìë¹ì€ë¥Œ ë°°í¬í ëë kubectl apply ëª ë ¹ìŽë¥Œ ëìŒíê² ì¬ì©íë©Ž ëë€. ìŽì ì YAML íìŒ ëŽì©ì ê° í목ì ìŽíŽë³Žì.
- spec.selector : íŽë¹ ìë¹ì€ìì ìŽë í ëŒë²šì ê°ë íëì ì ê·Œí ì ìê² ë§ë€ ê²ìžì§ ê²°ì íë€. ì¬êž°ì 'ëŒë²š'ìŽëŒë ê²ì ì ë² í¬ì€í ìì ë°°ìŽ ë í늬칎ì 곌 íë ê°ì ì°ê²°ì ìííë ìŠ íë í í늿 ëŽì ì ìíë LabelSelector륌 ì믞íë€.
- spec.ports.port : ìì±ë ìë¹ì€ë ì¿ ë²ë€í°ì€ ëŽë¶ììë§ ì¬ì©í ì ìë ê³ ì í IP(ClusterIP ëŒê³ ë¶ëŠ)륌 í ë¹ ë°ëë°, port í목ìë ê·ž ê³ ì í IPì ì ê·Œí ë ì¬ì©í í¬ížë²ížë¥Œ ì€ì íë€.
- spec.ports.targetPort : ììì ëíë¡ìŽëšŒížë¥Œ ë°°í¬í ë ì ì©í YAML íìŒ ìŠ, íë í í늿 ëŽìì ì ìí íëê° ì¬ì©í í¬íž ìŠ, containerPort í목ì ì€ì ë í¬ížë²ížì ëìŒíŽìŒ íë€.
ìë¹ì€ë¥Œ ì ìì±íë€ë©Ž, ìë ëª ë ¹ìŽë¡ ìì±ë ìë¹ì€ 목ë¡ì ì¶ë ¥íŽë³Žì.
ê·žë°ë° ì°ëŠ¬ê° ì§ì ìì±íì§ ìì kubernetes ëŒë ìŽëŠì ìë¹ì€ê° ì¡Žì¬íë ê²ì 볌 ì ìë€. ìŽê²ë ClusterIP ì íìž ê²ì ì ì ìë€. ìŽ ìë¹ì€ë íë ëŽìì ì¿ ë²ë€í°ì€ì APIì ì ê·Œíêž° ìí ìë¹ì€ë¥Œ ì믞íë€. ì§êž ìí©ììë ì€ìí ëŽì©ìŽ ìëë ì€íµíì.
ê·žë¬ë©Ž ì°ëŠ¬ê° ìì±í ClusterIP ìë¹ì€ë¥Œ íì©íŽì íëì ì ê·Œíë ë°©ë²ì ëíŽ ìì볎ì. ë°©ë²ì ê°ëšíë€. ì ì¶ë ¥íë©Žìì CLUSTER-IP ì PORT(S) í목ì ëª ìëìŽ ìë ê°ë€ì ìŽì©íŽì ìì²ì íë©Ž ëë€. ë€ë¥ž ì컀 ë žëë¡ ì ìíŽì íŽë¹ "IP:í¬ížë²íž" ííë¡ ìì²ì 볎ëŽë³Žì.
curl ìì²ì 볎ëì ë, 늬íŽëë response륌 볎멎 íëì ê³ ì í ìŽëŠìŽ 늬íŽë ê²ì 볌 ì ìë€. ìŽë ìê¹ ììì ëíë¡ìŽëšŒížë¥Œ ìì±í ë ê°ìŽ ìì±ë íëë€ìŽë€. ì€ì ë¡ ë§ì€í° ë žëë¡ ìŽëì ì íë 목ë¡ì ì¶ë ¥íŽë³Žë©Ž ìŽëŠìŽ ëìŒí ê²ì ì ì ìë€.
ë í ê°ì§ ìŽíŽë³Œ ê²ì curl ë¡ ìì²ì ë³ŽëŒ ëë§ë€ response ëë íëì ìŽëŠìŽ ë§€ë² ë¬ëŒì§ë ê²ì ì ì ìë€. ìŠ, ìë¹ì€ì ì°ê²°ë ì¬ë¬ ê°ì íëì ìëìŒë¡ ìì²ìŽ ë¶ì°ëë ê²ìŽë€. ìŽë ìë¹ì€ë¥Œ ìì±í ë ë³ëì ì€ì ì íì§ ììë ìë¹ì€ë ì°ê²°ë íëë€ì ëíŽ ë¡ë ë°žë°ì±ì ìííë€.
ê·žëŠ¬ê³ ìììë IP ë° í¬ížë²ížë¡ ìì²ì 볎ëì§ë§, ìì±í ClusterIP ìë¹ì€ ìŽëŠ ì첎ë§ìŒë¡ë ì ê·Œí ì ìë€. ìŽê²ìŽ ê°ë¥í ìŽì ë ì¿ ë²ë€í°ì€ ëŽë¶ì ìŒë¡ DNS륌 구ëíê³ ìê³ , íëë€ì ìëìŒë¡ ìŽ DNS륌 ì¬ì©íëë¡ ì€ì ëêž° ë묞ìŽë€. 구첎ì ìŒë¡ë CoreDNS ìë²ë¥Œ ìŽì©íëë°, 죌ìí ì ì ìë¹ì€ ìŽëŠìŒë¡ ì ê·Œíë €ë©Ž í¹ì íë ëŽë¶ìì ìì²ì ë³ŽëŒ ëë§ ê°ë¥íë€. ë§ìœ ížì€íž í겜ìì í ì€ížíë€ë©Ž ìë¹ì€ ìŽëŠìŒë¡ë ì ê·ŒìŽ ë¶ê°ë¥íê³ ìë¹ì€ì ClusterIP 죌ìë¡ë§ ì ê·ŒìŽ ê°ë¥íë€.(ì ìë¶ Q&A)
3. íë륌 ìžë¶ì ë žì¶íë ìë¹ì€, NodePort ì í
ìŽë²ìë íŽë¬ì€í° ìžë¶ììë íëì ì ê·Œí ì ìë NodePort ì íì ìë¹ì€ì ëíŽ ë°°ì볎ì. NodePort ìë¹ì€ë 몚ë ë žëì í¹ì í¬ížë¥Œ ê°ë°©íŽ ìë¹ì€ì ì ê·Œíë ë°©ììŽë€. NodePort ì íì ìë¹ì€ë¥Œ ì ìíë YAML íìŒ ëŽì©ì ìëì ê°ë€. ClusterIP ìŒ ëì YAML íìŒ ëŽì©ê³Œ ê±°ì ëìŒíê³ , type íëª©ë§ ë¬ëŒì§ë€.
apiVersion: v1
kind: Service
metadata:
name: zedd-hostname-svc-nodeport
spec:
ports:
- name: web-port
port: 8080
targetPort: 80
selector:
app: webserver
type: NodePort
ì íìŒ ëŽì©ì ìì±íê³ NodePort ìë¹ì€ë¥Œ ìì±íŽë³Žëë¡ íì.
ìì±í NodePort ìë¹ì€ë¥Œ ì¶ë ¥íŽë³Žì. 죌목í ë¶ë¶ì PORT(S) í목ì 31033 ìŽëŒë í¬ížë²ížê° ì¶ê°ëìë€. ìŽë 몚ë ë žëìì ëìŒíê² ì ê·Œí ì ìë í¬ížë¥Œ ì믞íë€. ìŠ, íŽë¬ì€í°ì 몚ë ë žëìì ëŽë¶ IP ëë ìžë¶ IP륌 íµíŽ 31033 í¬ížë¡ ì ê·Œíë©Ž ëìŒí ìë¹ì€ì ì°ê²°ìŽ ê°ë¥íë€. ì€ì ë¡, 몚ë ë žëììë ì ê·ŒìŽ ê°ë¥íì§ ìŽíŽë³Žì. ì°ì ë žëì ëŽë¶ IPê° ë¬Žììžì§ë¶í° ìŽíŽë³Žì.
ìŽì ê° ë žëì ëŽë¶ IP ë²ížì í¬ížë²íž 31033ì ê²°í©íŽì ìì²ì ë ë €ë³Žì. ì ìëµìŽ ëê³ ìë€.
ë§ìœ GKEë EKS륌 ì°ê³ ì€ì ì í ê²ìŽëŒë©Ž ê° ë žëì ëë€í í¬ížì ì ê·Œíêž° ìíŽ ë³ëì ë°©í벜 ì€ì ì ì¶ê°íŽì£ŒìŽìŒ íë€. ìŽë ì± ëŽì©ì 322íìŽì§ë¥Œ ì°žê³ íì.
ì YAML ììììë 몚ë ë žëì ê³µíµì ìŒë¡ ê°ë°©í í¬íž ë²ížë¥Œ ëë€ìŒë¡ ì€ì íëë¡ íì§ë§, ìŽê²ë ëª ìì ìŒë¡ ì€ì í ì ìë€. YAML íìŒ ëŽ spec.ports.nodePort í목ì ë³ëë¡ ëª ìíŽì£Œë©Ž ëë€.
ê·žë°ë°, NodePort ì íì ìë¹ì€ì¬ë CLUSTER-IP í목ì ëŽë¶ IPê° í ë¹ëìŽ ìë ê²ì 볌 ì ìë€. ìŽë NodePort ìë¹ì€ê° ClusterIPì êž°ë¥ì í¬íšíê³ ìêž° ë묞ìŽë€. ê·žëì NodePort ìë¹ì€ë¥Œ ì¬ì©íë©Ž ëŽë¶ ë€ížìí¬ì ìžë¶ ë€ížìí¬ ì쪜ìì ì ê·ŒìŽ ê°ë¥íŽì§ë ê²ìŽë€.
ê·žë°ë° ì€ì ë¡ ìŽì í겜ìì NodePort ìë¹ì€ë¥Œ ìžë¶ì ì ê³µíë 겜ì°ë ë§ì§ ìë€. ìëíë©Ž NodePortìì í¬ížë²ížë¥Œ 80 ëë 443ìŒë¡ ì€ì íêž°ìë ì ì ì§ ììŒë©° SSL ìžìŠ ì ì ì©, ëŒì°í ë±ê³Œ ê°ì ë³µì¡í ì€ì ì NodePort ìë¹ì€ì ì ì©íêž°ê° ìŽë µêž° ë묞ìŽë€. ë°ëŒì, NodePort ìë¹ì€ ê·ž ì첎륌 íµíŽ ìë¹ì€ë¥Œ ìžë¶ë¡ ì ê³µíꞰ볎ë€ë ìžê·žë ì€(Ingress)ëŒê³ ë¶ë¥Žë ì¿ ë²ë€í°ì€ì ì€ëžì ížìì ê°ì ì ìŒë¡ ì¬ì©ëë 겜ì°ê° ë§ë€. ìžê·žë ì€ì ëíŽìë ì¶íì ë°°ìž ìì ìŽì§ë§, ì¬êž°ìë 'ìžë¶ request ìì²ì ì€ì ë¡ ë°ìë€ìŽë êŽë¬ž'ìŒë¡ë§ ê°ë ì ìŒë¡ ìŽíŽíŽëì. ìžê·žë ì€ ì€ëžì ížë ìëìì ë°°ìž LoadBalancer ì NodePort륌 í©ì³ì ì¬ì©í ì ìë€.
4. íŽëŒì°ë íë«íŒì ë¡ë ë°žë°ìë ì°ëìŽ ê°ë¥í ìë¹ì€, LoadBalancer ì í
ë€ìì ìë¹ì€ ìì±ê³Œ ëìì ë¡ë ë°žë°ì륌 ìë¡ê² ìì±íŽ íëì ì°ê²°íë ìë¹ì€ìŽë€. NodePort ìë¹ì€ë¥Œ ì¬ì©íë©Ž ê° ë žëì IP륌 ìììŒë§ íëì ì ê·ŒìŽ ê°ë¥íì§ë§, ìŽë²ì ë°°ìž LoadBalancer ì íì ìë¹ì€ë íŽëŒì°ë íë«íŒìŒë¡ë¶í° ëë©ìž ìŽëŠê³Œ IP륌 í ë¹ ë°ëë€. íŽëŒì°ë íë«íŒì ìì¡Žíë€ ë³Žë ë°ëì ë¡ë ë°žë°ì륌 ëì ìŒë¡ ìì±íë êž°ë¥ì ì ê³µíë GCP, AWSì ê°ì íŽëŒì°ë íë«íŒ í겜ììë§ ì¬ì©í ìê° ìë€. ë¬Œë¡ ìšíë ë¯žì€ í겜ììë MetaLBëŒë ì€íìì€ íë¡ì ížë¥Œ ìŽì©í ìë ìꞎ íì§ë§ MetalLBë ì¿ ë²ë€í°ì€ì ê³µì íë¡ì ížê° ìëëŒì ì ì§ë³Žìê° ì§ìì ìŽì§ ìì ì ìë€ë ì ì ì ìíŽìŒ íë€. íìë GKE, EKS륌 ì¬ì©íë íê²œìŽ ìëêž° ë묞ì LoadBalancer ìë¹ì€ë¥Œ ì¬ì©íë ë°©ë²ì ì± ì볞 ëŽì©ì ì°žê³ íëë¡ íì. ì¬êž°ììë ìëµíëë¡ íê² ë€.
4-1. ížëíœ ë¶ë°° ë°©ìì ê²°ì íë ìì±, externalTrafficPolicy
ëì ì¬êž°ìë LoadBalancer ìë¹ì€ë¥Œ ì¬ì©íê² ëšìŒë¡ìš ížëíœì ë¶ë°°íë ì ì± ì ê²°ì íë ìì± ê°ì ëíŽ ë°°ìë³Žë €ê³ íë€. ë°ë¡ externalTrafficPolicy ëŒë ìì±ê°ìŽë€. ìì± ê°ì ëíŽ ë°°ì°êž° ì ì LoadBalancer ì íì ìë¹ì€ë¥Œ ìŽì©íì ë, ìžë¶ë¡ë¶í° ë€ìŽìš ížëíœì ìŽë»ê² ê° ë žë, ê° íëì ë¶ì°ìí€ëì§ë¶í° ìì볎ì. ìë 귞늌ì 볎ì.
ì°ëŠ¬ê° 죌목í ë¶ë¶ì ì컀 ë žë 1 ìŠ, Node 1ë¡ ë€ìŽìš ìžë¶ ížëíœ ìì²ìŽ (1)ë² ë£šížë¥Œ íì§ ìê³ êµ³ìŽ (2)ë² ë£šížë¥Œ íë ë°©ììŽë€. ìŽë ê² ëë©Ž ë¶íìí ë€ížìí¬ í(ë€ížìí¬ íìŽë)ìŽ í ëšê³ ë ë°ìíê² ëê³ ë žë ê°ì 늬ë€ìŽë ížê° ë°ìíê² ëìŽ ížëíœì ì¶ë°ì§ 죌ìê° ë°ëë SNAT(SNATìŽë)ê° ë°ìíê² ëë€. ìŽë ê² ëë©Ž íŽëŒìŽìžížì IP 죌ì ëí 볎졎ëì§ ìë 묞ì ê° ë°ìíë€.
ìŽë¬í ížëíœ ë¶ë°° ë°©ìì ë³ê²œíêž° ìíŽ ì°ëŠ¬ë ìë¹ì€ ìì± ì ì€ì íë YAML íìŒìì externalTrafficPolicy í목ì ì ìí ì ìë€. ì°ì ìì ê°ìŽ Ʞ볞ì ìŒë¡ ì€ì ëìŽ ìë ë°©ìì Cluster ëŒë ë°©ììŽë€. íì§ë§ ìŽë¥Œ Local ë¡ ë³ê²œíë©Ž íëê° ìì±ë ë žëììë§ íëë¡ ì ê·Œí ì ìê² ëë€. ë€ì ë§íŽ, ì ììë¡ ë€ë©Ž, Node 1ë¡ ë€ìŽì€ê² ë ìì²ë€ì 몚ë Node 1 ëŽì íëë€ìê²ë§ ìì²ìŽ ê°ëë¡ ê°ì íë ê²ìŽë€. ìŽë ê² íë©Ž ë¹ì°í Cluster ë°©ììì ë°ìëìë ì¬ë¬ê°ì§ 묞ì ë€ìŽ ë°ìíì§ ìê² ëë€.
íì§ë§ ìŽë¬í Local ë°©ììŽ ë¬Žì¡°ê±Žì ìŒë¡ ì¢ì ê²ì ìëë€. ë§ìœ ê° ë žëì íëê° ê³ ë¥Žì§ ìê² ì€ìŒì¥Žë§ ëìë€ë©Ž ìì²ìŽ ê³ ë¥Žê² ë¶ì°ëì§ ìê² ëìŽ ê° íëê° ë°ë ë¶íì ììŽ ëìŒíŽì§ì§ ìëë€. ìŠ, ìŽë€ íëë ë§ì ìì ë¶í륌 ë°ê² ëê³ , ë€ë¥ž íëë ìëì ìŒë¡ ì ì ìì ë¶í륌 ë°ê² ëë€. ìëì²ëŒ ë§ìŽë€.
ì 귞늌ì²ëŒ ëë©Ž ì컀 ë žë 3ììë íëë§ ì ìŒíê² ížëíœì 50% ë¶í륌 ë°ê² ëë€. ìŽë ê² ëë©Ž ìì íì©ë¥ ìž¡ë©Žìì ë¶ì ì íë€. ìŽë ê² Local ë°©ìë ëšì ìŽ ì¡Žì¬íêž° ë묞ì ížëíœ ë¶ë°° ë°©ì ì€ì ì ëµì ìë€. ê° ìí©ìì ìŽë€ ìì륌 ë ì€ìíê² ê³ ë €íëì§ì ë°ëŒ ížëíœ ë¶ë°° ë°©ìì ê²°ì íë ê²ìŽ ì¢ë€.
5. íëê° ìžë¶ ìì€í 곌 ì°ê²°ëëë¡ íë ìë¹ì€, ExternalName ì í
ë€ììŒë¡ ìì볌 ìë¹ì€ ì íì ì¿ ë²ë€í°ì€ë¥Œ ìžë¶ ìì€í 곌 ì°ëíŽìŒ í ë ì¬ì©íë ExternalName ìë¹ì€ìŽë€. ìŽ ìë¹ì€ë¥Œ ìì±íë©Ž ìë¹ì€ê° ìžë¶ ëë©ìžì ê°ëŠ¬í€ëë¡ ì€ì í ì ìë€. ì륌 ë€ìŽ, ìëì ê°ì YAML íìŒìŽ ìë€ê³ ê°ì íŽë³Žì.
apiVersion: v1
kind: Service
metadata:
name: externalname-svc
spec:
type: ExternalName
externalName: my.database.com
ì íìŒë¡ ìë¹ì€ë¥Œ ìì±íê² ëë©Ž íëë€ì externalname-svc ëŒë ìŽëŠìŒë¡ ìì²ì ë³ŽëŒ ê²œì°, ì¿ ë²ë€í°ì€ì ëŽë¶ DNSê° my.database.comìŒë¡ ì ê·Œí ì ìëë¡ CNAME ë ìœë륌 ë°ííë€. ë€ì ë§íŽ, íëê° externalname-svcë¡ ìì²ì 볎ëŽë©Ž my.database.comì ì ê·Œíê² ëë€ë ê²ìŽë€. ìŽë ì¿ ë²ë€í°ì€ íëê° êž°ì¡Žì ì°ëŠ¬ê° ì¬ì©íë ìžë¶ ìì€í ì ì ê·ŒíŽìŒ íë ìí©ì ë§€ì° ì ì©íê² ì¬ì©í ì ìë€.
ê·žë°ë° ë°©êž CNAME ë ìœë륌 ë°ííë€ê³ íëë°, CNAME ë ìœëê° ë¬ŽììŒê¹? ìì 배겜ì§ììŒë¡ ììëë ê² ì¢ì ê² ê°ì ì 늬íŽë³Žë € íë€. Canonical Nameì ì€ìë§ë¡, ëë©ìžì ê°ëŠ¬í€ë ë€ë¥ž ìŽëŠì ë»íë€. ì륌 ë€ìŽì, DNSìë í¬ê² ìëì ê°ìŽ 2ê° ì¢ ë¥ì 맀í ê°ë€ìŽ ìì ê²ìŽë€. DNS í ìŽëžìŽ ìëì ê°ë€ê³ íŽë³Žì.
ì¬ì©íë ëë©ìž ìŽëŠ | ë³íëë ì€ì§ì ìž ì£Œì |
externalname-svc | my.database.com |
zedd-hostname-nodeport | 11.22.33.44.55 |
ë ë²ì§ž íë¶í° ìŽíŽë³Žì. ì°ëŠ¬ë ìê¹ NodePort ìë¹ì€ë¥Œ ìì±íë©Žì zedd-hostname-nodeport ëŒë ìë¹ì€ ìŽëŠì ëª ìíê³ , ìŽë ClusterIPì 맀íëë€ê³ ë°°ì ë€. ìŽë ê² í¹ì ëë©ìž ìŽëŠìŽ ì«ì ííì IP 죌ìë¡ ë§€íëë ê²ì A ë ìœëëŒê³ íë€.
ë°ë©Žì, 첫 ë²ì§ž íì²ëŒ í¹ì ëë©ìž ìŽëŠ(externalname-svc)ìŽ ì«ì ííì IP 죌ìê° ìë ë ë€ë¥ž ëë©ìž ìŽëŠ(my.database.com)ìŒë¡ 맀íëë ê²ì CNAME ë ìœëëŒê³ íë€.
ìŽë ê² íŽì ì¿ ë²ë€í°ì€ì êž°ìŽ ê°ë ìž ìë¹ì€ê¹ì§ 몚ë ë€ë£šìŽë³Žìë€. ë€ì í¬ì€í ë¶í°ë ì¿ ë²ë€í°ì€ 늬ìì€ì êŽëŠ¬ì ì€ì ì ë€ë£šë ë°©ë²ì ëíŽ ë°°ìž ìì ìŽë€. ë€ì í¬ì€í ë§ ì§ííê³ ëë©Ž ì¿ ë²ë€í°ì€ì êž°ìŽë 몚ë ëìŽ ëë€. ê·ž ìŽíë ê³ êž êž°ë²ì ì ì©ëë ì±í°ë€ìžë°, ìŽë ì§êž ë¹ì¥ íììê² íìí ëŽì©ì ìëêž° ë묞ì ë°±ë¡ê·ž ííë¡ ëšê²šëìŒë €ê³ íë€.