Kubernetes network 1
๐ฟ kubernetes
** Docker
A pod consists of one or more containers that are collocated on the same host, and are configured to share a network stack and other resources such as volumes.
์ฌ๊ธฐ์ ์ค์ํ ์ ์ ๋คํธ์ํฌ์ ๋ณผ๋ฅจ๊ณผ ๊ฐ์ ํน์ ๋ฆฌ์์ค๋ฅผ ๊ณต์ ํ๋ค๋ ๊ฒ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ๋คํธ์ํฌ๋ฅผ ๊ณต์ ํ๋ค๋ ๊ฒ์ ๋ฌด์์ ์๋ฏธํ ๊น
๋์ปค์ ๊ฒฝ์ฐ docker0๋ผ๋ veth0(172.17.0.2)๋ฅผ ์ํ default gateway๋ฅผ ์ค์ ํ๋ค. ์ด ์ํ๋ก ๋๋ฒ์งธ ์ปจํ ์ด๋๋ฅผ ๋์ฐ๋ฉด
์ด ์ํ๊ฐ ๋๋ค. ๋ ์ปจํ ์ด๋๊ฐ ํต์ ํ๊ธฐ ์ํด์๋ ๋ ์ปจํ ์ด๋์ ์ฃผ์๋ฅผ ์๊ณ ์๋ docker0๋ฅผ ํตํด์ ์ํํ๋ค.
์ด๋ ๋ฏ ๋์ปค๋ ์ปจํ ์ด๋๋ฅผ ์์ํ ๋ ์๋ก์ด network interface๋ฅผ ์์ฑํ๋ ๋์ docker0 ๊ฐ์ ๊ณต์ ์ธํฐํ์ด์ค๋ฅผ ์ด์ฉํ๋ค.
K8s
2๊ฐ์ ์ปจํ ์ด๋๊ฐ ์์ฑ๋ ๋ชจ์ต์ด๋ค. 2๊ฐ์ ์ปจํ ์ด๋๋ 172.17.0.2์ ์ฃผ์๊ฐ ์ ํด์ ธ ์์ผ๋ฉฐ ์ด ์ฃผ์(๋คํธ์ํฌ)๋ฅผ ๊ณต์ ํ๋ค. ์ด 2๊ฐ์ ์ปจํ ์ด๋๋ port๋ก ๊ตฌ๋ณ๋ ์ ์๋ค.(์ฆ ๋ด๋ถ์์ localhost์ port hit ๋ ์ ์์) ์ด ์ํฉ์ single host์์ multiple process๋ฅผ ์คํํ๋ ๊ฒ๊ณผ ๊ฐ๋ค. ๋ฐ๋ผ์ ๊ฐ๋จํ ๋คํธ์ํฌ ํ๊ฒฝ์์ decoupling ๊ณผ ์ปจํ ์ด๋ ๊ณ ๋ฆฝ์ ์ฅ์ ์ ์ป์ ์ ์๋ค.
์ฟ ๋ฒ๋คํฐ์ค์์ pause ์ปจํ ์ด๋๋ Pod ๋ด๋ถ์ ์ปจํ ์ด๋๋ค์ ์ํ ์ผ์ข ์ โ๋ถ๋ชจ ์ปจํ ์ด๋โ ๋ก์์ ์ญํ ์ ์ํํฉ๋๋ค.
pause ์ปจํ ์ด๋๋ ์ฃผ๋ก 2๊ฐ์ง ์ญํ ์ ์ํํฉ๋๋ค.
- ์ฒซ ๋ฒ์งธ๋ก, pause ์ปจํ ์ด๋๋ pod์ ์ปจํ ์ด๋๋ค์ด ๋ฆฌ๋ ์ค namespace๋ฅผ ๊ณต์ ํ ์ ์๋๋ก ํด์ค๋๋ค.
- ๋๋ฒ์งธ๋ก, PID (Process ID) namespace ๊ณต์ ๊ฐ ์ค์ ๋์์ ๋์๋, Pod์์ PID 1 (์ญ์ฃผ : Init Process) ๋ก์์ ์ญํ ๋ฟ๋ง ์๋๋ผ ์ข๋น ํ๋ก์ธ์ค๋ฅผ ๊ฑฐ๋ฌ๋ค์ด๋ ๊ธฐ๋ฅ๋ ์ํํฉ๋๋ค.
k8s Pod Network
K8s ๋คํธ์ํฌ ์กฐ๊ฑด
- ๊ฐ๊ฐ์ Pod์ ์ ์ฒด ํด๋ฌ์คํฐ์์ ์ ๋ํฌํ ์์ ๋ง์ IP๋ฅผ ๊ฐ์ง๋ค.
- ๊ฐ์ ๋ ธ๋์ ์๋ ๋ชจ๋ Pod์ ์๋ก๊ฐ์ ํต์ ์ด ๊ฐ๋ฅํด์ผ ํ๋ค.
- ๋ค๋ฅธ ๋ ธ๋์ ์๋ ๋ชจ๋ Pod์ ๋ณ๋์ NAT ์์ด ํต์ ์ด ๊ฐ๋ฅํด์ผ ํ๋ค.
์ฟ ๋ฒ๋คํฐ์ค๋ ์ด์ ๋ ธ๋์ ๊ณตํต Gateway๋ฅผ ํตํด pod์์ ๋ฐ์๋ packet์ ๋ชฉ์ ์ง๋ฅผ ํน์ ํ ์ ์๊ฒ ๋์๋ค. ํ์ง๋ง ๋ ธ๋๋ ์๋ก ๋ ๋ฆฝ๋ ๋คํธ์ํฌ ํ๊ฒฝ์์ ์๋ํ๋ฏ๋ก docker0๊ฐ ์์ฑํ ๋คํธ์ํฌ ํ๊ฒฝ์ด ๊ฒน์น ์ ์๋ ์ฌ์ง๊ฐ ์ถฉ๋ถํ ์๋ค. ๊ทธ ๊ฒฝ์ฐ๊ฐ ์๋์ ๊ทธ๋ฆผ์ด๋ค.
์ด ๊ฒฝ์ฐ ๋ชฉ์ ์ง๋ก ์ ํด์ง 172.17.0.2๋ก ์ค์ ๋ ๋คํธ์ํฌ๊ฐ ๋ค์ ์กด์ฌํ๋ฏ๋ก bridge์์ ๊ทธ ๋ชฉ์ ์ง๋ฅผ ํน์ ํ ์๊ฐ ์๋ค๋ ๋ฌธ์ ๊ฐ ์๊ธด๋ค.
์ฆ one node typically has no idea what private address space was assigned to a bridge on another node
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด 2๊ฐ์ง ํด๊ฒฐ๋ฒ์ด ์กด์ฌํ๋ค.
- ๊ฐ ๋
ธ๋์ bridge์ ๋ํ ์ ์ฒด ์ฃผ์ ๊ณต๊ฐ์ ํ ๋นํ๊ณ ๊ตฌ์ถ๋ ๋
ธ๋์ ๋คํธ์ํฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด๋น ๊ณต๊ฐ์ ๋ธ๋ฆฌ์ง ์ฃผ์๋ฅผ ํ ๋น
- ์ฆ node์ ์ฃผ์๋ฅผ ํ์ฉํด์ Uniqueํ ์ฃผ์ ๊ณต๊ฐ์ ํ ๋นํ์
- Routing rule์ node์ ๊ณตํต Gateway์ ์ถ๊ฐํ์ฌ subnet-mask๋ฅผ ์ด์ฉํ์ฌ ํจํท์ ๋ชฉ์ ์ง์ ํด๋นํ๋ bridge์ ์ฃผ์๋ฅผ ์ฐ๊ฒฐํ์
2๋ฒ์งธ ๋ฐฉ๋ฒ์ด ๋ฐ์ ๊ทธ๋ฆผ์ด๋ค.
์ฟ ๋ฒ๋คํฐ์ค๋ birdge๋ก cbr(custom bridge)์ docker ๋์ ์ฌ์ฉํ๋ค. ๊ทธ ์ญํ ์ ์ ๋ชจ๋ฅธ๋ค.
๐ฟ CNI(Common Network Interface)
์ง๊ธ ๊น์ง ๋ฆฌ๋ ์ค ๋ธ๋ฆฟ์ง๋ฅผ ์ด์ฉํ์ฌ ์ปจํ ์ด๋ ๊ฐ์ ํต์ ์ ๊ฐ๋ฅ์ผ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ดค๋ค. ํ์ง๋ง ์ด๋ฌํ ๋ฐฉ๋ฒ์ ๋๋ฌด ๋ค์ํ๋ฉฐ ๋ณต์กํ๋ฉฐ ๊ทธ๋ฆฌ๊ณ ๋ณ๋์ ๋ก์ง์ ์๊ตฌํ๋ค๋ ๊ฒ์ด ๋จ์ ์ด๋ค.
๊ทธ๋์ ํ์ํ๊ฒ์ด CNI์ธ๋ฐ CNi๋ Pod๊ฐ์ ํต์ ์ ๊ท์ฝ(CNI)์ ์ ํ๊ณ ๊ทธ ๊ท์ฝ์ ๋ฐ๋ผ ๋ง๋ ๊ตฌํ์ฒด๋ฅผ CNI ํ๋ฌ๊ทธ ์ธ์ด๋ผ๊ณ ํ๋ค.
๊ฐ๊ฐ์ ๋ ธ๋๋ kubelet์ ํตํด ๋ ธ๋๋ฅผ ์ ์ดํ๋ค. kubelet์ โcni-conf-dir=/etc/cni/net.d๋ฅผ ํตํด ์ ๋ฌ๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์ฝ์ด ์ด๋ค CNI๋ฅผ ์ฌ์ฉํ ์ง ๊ฒฐ์ ํ๋ค. ๋ํ โcni-bin-dir=/opt/cni/bin๋ฅผ ํตํด CNI ํ๋ฌ๊ทธ์ธ์ ๋ฐ์ด๋๋ฆฌ ์์น๋ฅผ ์ ๋ฌํ๋ค.
Weave Net
CNI ํ๋ฌ๊ทธ์ธ ์ค ํ๋์ด๋ค.
์ง๊ธ๊น์ง๋ IP๋ฅผ ์ ๋นํ ๊ฐ์ผ๋ก ์๋์ผ๋ก ํ ๋นํ์ง๋ง ์ค์ k8s ํ๊ฒฝ์์๋ ์ ์ ํ IP๋ฅผ ํ ๋นํ๊ณ ๊ด๋ฆฌํด์ฃผ๋ IPAM(IP Adress Management)๊ฐ ํ์ํ๋ค. ์ด ๋ํ CNI๊ฐ ์ฑ ์์ง๊ณ ์๋ค. Weave ์์๋ 10.32.0.0/12์ ๋์ญ IP๋ฅผ ์ฌ์ฉํ๋ค.
Weave์์๋ ๋จผ์ ๊ฐ ๋ ธ๋์ ์ ๋นํ Subnet์ ํ ๋นํ๊ณ Bridge์ Pod์ด ํด๋นํ๋ Subnet์ ์ฌ์ฉํ๊ฒ ๋ง๋ญ๋๋ค. ์ด๋ค Subnet์ ์ฌ์ฉํ ์ง๋ Weave์ ์ํด ์๋์ผ๋ก ์ ํด์ง์ง๋ง ์ค์ ์ ํตํด ์ง์ ์ง์ ํ ์๋ ์์ต๋๋ค.
๐ฟ K8s Service
Pod์ IP๋ ํต์ ํ๊ธฐ์ํ ์๋ํฌ์ธํธ๋ก ์ ์ ํ์ง ์๋ค. ์๋ฅผ ๋ค์ด ๋ค์์ Pod๋ฅผ Deployment๋ก ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ Pod๋ App์ ๋ถํ ์ ๋์ ๋ฐ๋ผ ์ค์ผ์ผ์ด ๋ฐ๋๋ค. ์ฆ IP๋ ์์์ ์ด๋ค. ๋ฐ๋ผ์ ์๊ตฌ์ ์ธ ์๋ํฌ์ธํธ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด Service๋ฅผ ์๋ํฌ์ธํธ๋ก ์ฌ์ฉํ๋ค.Pod๋ ํน์ ๋ผ๋ฒจ์ ๊ฐ์ง๊ณ ์๊ณ ๊ทธ ๋ผ๋ฒจ์ ์๋น์ค๊ฐ ๋ฐ๋ผ๋ณด๊ณ ์๋ค. ๊ทธ๋์ ์ธ๋ถ ํจํท Pod์ IP๊ฐ ๋ฐ๋๋๋ผ๋ Service์ label๋ฅผ ํตํด Pod์ ์ ๊ทผํ ์ ์๋ค.
๊ธฐ๋ฅ
- LoadBalancer: ๋ถํ๋ถ์ฐ ์ฅ์น
- ์ฟ ๋ฒ๋คํฐ์ค ์ธ๋ถ์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ ์ธ๋ถ ๋ถํ ๋ถ์ฐ ๊ธฐ๋ฅ
- ๋ด๋ถ ์ฌ์ฉ์๋ง ์ ๊ทผ ๊ฐ๋ฅํ ๋ด๋ถ ๋ถํ ๋ถ์ฐ ๊ธฐ๋ฅ์ด ์๋ค.
- Cluser IP : ์๋น์ค๋ ์์ฑ์ ์ด๋ฆ๊ณผ IP์ฃผ์๋ฅผ ๊ฐ์ง๋๋ค. ์ด IP๋ฅผ ํตํด Pod์ ์ ๊ทผ ๊ฐ๋ฅํ๋ฐ ์ด ๋ IP๋ฅผ Cluster IP ๋ผ๊ณ ํจ
- ๋ถ๋ณ์ฑ
- Node Port: ํด๋ผ์ด์ธํธ IP ๋ฟ๋ง ์๋๋ผ ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฐ ๋ ธ๋์ Port๋ก ์ ์๋ ๊ฐ๋ฅํ๋ค.
- External Name
- ExternalName์ ์ธ๋ถ ์๋น์ค๋ฅผ ์ฟ ๋ฒ๋คํฐ์ค ๋ด๋ถ์์ ํธ์ถํ๊ณ ์ํ ๋ ์ฌ์ฉํ ์ ์๋ค.
- ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๋ด์ Pod๋ค์ ํด๋ฌ์คํฐ IP๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ํด๋ฌ์คํฐ IP ๋์ญ ๋ฐ์ ์๋น์ค๋ฅผ ํธ์ถํ๊ณ ์ ํ๋ฉด, NAT ์ค์ ๋ฑ ๋ณต์กํ ์ค์ ์ด ํ์ํ๋ค. ์ด๋ ์๋น์ค๋ฅผ External ํ์ ์ผ๋ก ์ค์ ํ๊ณ ์ฃผ์๋ฅผ DNS๋ก ์ค์ ํ๋ฉด ์ด ์๋น์ค๋ ๋ค์ด์ค๋ ๋ชจ๋ ์์ฒญ์ DNS๋ก ํฌ์๋ฉํจ
Kube Proxy
ํด๋ผ์ด์ธํธ๋ Service Port๋ก inbound ์ฐ๊ฒฐ์ ํ๊ณ proxy์์ ์๋ฒ๋ก outbound ์ฐ๊ฒฐ์ ์ํํจ. ์ด๋ฐ ์ข ๋ฅ์ proxy ์๋ฒ๋ค์ ๋ชจ๋ user space์์ ๋์ํ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ํจํท๋ค์ user space๋ฅผ ์ง๋ kernal space๋ฅผ ๊ฑฐ์ณ proxy๋๋ค. ์ด๋ฌํ ์์ ์ ์ํด์๋ interface device๊ฐ ํ์ํ๋ฐ kube proxy ๋ํ user space proxy๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฏ๋ก interface device๋ host์ ์กด์ฌํ๋ ethernet interface์ด๊ฑฐ๋ Pod๋ด์ ์กด์ฌํ๋ ๊ฐ์ ethernet interface ๋๊ฐ ๋ฟ์ด๋ค.
๋ค๋ง ์ด๊ฒ๋ค์ ๊ฐ์์ด๋ฏ๋ก ํฌํธ๋ฅผ ์ด๊ณ ์ปค๋ฅ์ ์ ๋งบ๋ ๋ฑ์ ํ์๋ ํ ์ ์์ง๋ง ๊ทธ ์์ฒด๋ฅผ ์ด์ฉํ์ง๋ ๋ชปํฉ๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ๋ฆฌ๋ ์ค ์ปค๋ ๊ธฐ๋ฅ ์ค ํ๋์ธ netfilter์ user space์ ์กด์ฌํ๋ interface์ธ iptables๋ผ๋ ๋ ์๋ค์ ์ด์ฉํ์ฌ ํด๊ฒฐํฉ๋๋ค. netfilter๋ ๊ฐ๋จํ ๋งํ์๋ฉด Rule-Based ํจํท ์ฒ๋ฆฌ ์์ง์ด๋ค. ์ฆ ๋ชจ๋ ์ค๊ณ ๊ฐ๋ ํจํท์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๋ค๋ ๋ป์ด๋ค.
๊ทธ๋ ๋ค. netfilter๋ kernal space์ ์กด์ฌํ๋ kube proxy์ ๋๋ค.
์๋ ๋ํ๋ kube-proxy๊ฐ user space proxy๋ก ์คํ๋ ๋ netfilter์ ์ญํ ์ ๋ํด์ ์ค๋ช ํฉ๋๋ค.
- kube-proxy๊ฐ localhost interface์์ service์ ์์ฒญ์ ๋ฐ์๋ด๊ธฐ ์ํด 10400 ํฌํธ(์์ ๊ธฐ์ค)๋ฅผ ์ฝ๋๋ค.
- netfilter๋ก ํ์ฌ๊ธ service IP๋ก ๋ค์ด์ค๋ ํจํท์ kube-proxy ์์ ์๊ฒ ๋ผ์ฐํ ๋๋๋ก ์ค์ ์ ํฉ๋๋ค.
- kube-proxy๋ก ๋ค์ด์จ ์์ฒญ์ ์ค์ server Pod์ IP:Port๋ก ์์ฒญ์ ์ ๋ฌํฉ๋๋ค. (์์ ์์๋ 10.0.2.2:8080)
์ด๋ฌํ ๋ฐฉ๋ฒ์ ํตํด service IP 10.3.241.152:80๋ก ๋ค์ด์จ ์์ฒญ์ ๋ง๋ฒ์ฒ๋ผ ์ค์ server Pod๊ฐ ์์นํ 10.0.2.2:8080๋ก ์ ๋ฌํ ์ ์์ต๋๋ค.
netfilter์ ๋ฅ๋ ฅ์ ๋ณด์๋ฉด, ์ด ๋ชจ๋ ๊ฒ์ ํ๊ธฐ ์ํด์๋ ๋จ์ง kube-proxy๊ฐ ์์ ์ ํฌํธ๋ฅผ ์ด๊ณ ๋ง์คํฐ api ์๋ฒ๋ก ๋ถํฐ ์ ๋ฌ ๋ฐ์ service ์ ๋ณด๋ฅผ netfilter์ ์๋ง๋ ๊ท์น์ผ๋ก ์ ๋ ฅํ๋ ๊ฒ ์ธ์ ๋ค๋ฅธ ๊ฒ์ด ํ์ ์์ต๋๋ค.
k8s๋ userspace์์ proxing์ ์ํํ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ํจํท์ user space์์ kernal space๋ก ๋ณํํด์ผ ํฉ๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด kubernetes 1.2 kube proxy์์๋ iptables mode๊ฐ ์๊ฒผ์ต๋๋ค. ์ด ๋ชจ๋์์๋ kube proxy๊ฐ ์ง์ proxy์ ์ค์ ์ ํ์ง ์๊ณ ๊ทธ ์ญํ ์ netfilterdp ๋งก๊น๋๋ค. ์ด๋ฅผ ํตํด service IP๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๊ทธ๊ฒ์ ์ค์ Pod๋ก ์ ๋ฌํ๋ ๊ฒ์ ๋ชจ๋ netfilter๊ฐ ๋ด๋นํ๊ฒ ๋์๊ณ kube-proxy๋ ๋จ์ํ ์ด netfilter์ ๊ท์น์ ์๋ง๊ฒ ์์ ํ๋ ๊ฒ์ ๋ด๋นํ ๋ฟ์ ๋๋ค.
__
๐ฟ Kube Proxy์ ๋ด๊ตฌ์ฑ
Kube Proxy๋ ๊ธฐ๋ณธ์ ์ผ๋ก systemd unit์ผ๋ก ๋์ํ๊ฑฐ๋ daemonset์ผ๋ก ์ค์น๊ฐ ๋ฉ๋๋ค. ๋ฐ๋ผ์ ํ๋ก์ธ์ค๊ฐ ์ฃฝ์ด๋ ๋ค์ ์ด์๋ ์๊ฐ ์์ต๋๋ค.
- ๋ค๋ง kube proxy๋ user space ๋ชจ๋์์ ๋์ํ ๋ ๋จ์ผ ์ง์ ์ฅ์ ์ ์ด ๋ ์ ์์ต๋๋ค. ํ์ง๋ง ip table ๋ชจ๋์์ ์คํ ํ ๋๋ ์์ ์ ์ผ๋ก ์๋ํฉ๋๋ค.
- ์๋ํ๋ฉด ์ด๋ netfilter๋ฅผ ํตํด ๋์ํ๊ณ ์๋ฒ๊ฐ ์ด์์๋ ํ netfilter๋ ๋์ํ๋ ๊ฒ์ ๋ณด์ฅ ๋ฐ์ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๐ฟ Kube Proxy์ Service ๊ฐ์ง
kube proxy๋ ๋ง์คํฐ ๋ ธ๋์ api server์ ์ ๋ณด๋ฅผ ์์ ํ๊ธฐ ๋๋ฌธ์ ํด๋ฌ์คํฐ์ ๋ณํ๋ฅผ ๊ฐ์งํจ ์ด๋ฅผ ํตํด ์ง์์ ์ผ๋ก iptable์ ์ ๋ฐ์ดํธํ์ฌ netfilter์ ๊ท์น์ ๋ณํ์ํต๋๋ค. ์๋ก์ด ์๋น์ค๊ฐ ์์ฑ๋๋ฉด kube-proxy๋ ์๋ฆผ์ ๋ฐ๊ณ ๊ทธ์ ๋ง๋ ๊ท์น์ ์์ฑํฉ๋๋ค. ๋ฐ๋๋ก service๊ฐ ์ญ์ ๋๋ฉด ์ด์ ๋น์ทํ ๋ฐฉ๋ฒ์ผ๋ก ๊ท์น์ ์ญ์ ํฉ๋๋ค.
์๋ฒ์ health-check๋ kubelet์ ํตํ์ฌ ์ํํฉ๋๋ค. kubelet์ ์๋ฒ์์ ์ค์น๋๋ ์ฟ ๋ฒ๋คํฐ์ค ์ปดํฌ๋ํธ ์ค ํ๋๋ก ์๋ฒ(๋ ธ๋์) Pod๋ฅผ ์ง์ ๊ด๋ฆฌํฉ๋๋ค. ์ด kubelet์ด ์๋ฒ์ health check์ ์ํํ์ฌ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌ์ ๋ง์คํฐ api ์๋ฒ๋ฅผ ํตํด kube-proxy์๊ฒ ์๋ ค unhealthy Pod์ endpoint๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
์ด๋ฌํ ๊ฒ๋ค์ ๊ธฐ๋ฐ์ผ๋ก ๊ณ ๊ฐ์ฉ์ฑ์ ์ ์งํ๋๋ฐ ๋จ์ ์ผ๋ก๋ Pod์์ ์์ฒญํ Request๋ง ์์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๋์ํฉ๋๋ค. ๋ํ netfilter๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ธ๋ถ์์ ๋ค์ด์จ ์์ฒญ์ ๋ํด ์ ์์ฒญ์์ origin IP๊ฐ ์์ ๋๋ค๋ ๊ฒ์ ๋๋ค. ์ด ๋ถ๋ถ์ 2ํธ์์ ๊ณ์โฆ