์ด ํ์ด์ง์์๋ Google Kubernetes Engine(GKE)์์ IP ๋งค์ค์ปค๋ ์ด๋๊ฐ ์๋ํ๋ ๋ฐฉ์๊ณผ ๋ค์ํ ์๋๋ฆฌ์ค์ ๊ตฌ์ฑ ์ต์ ์ ๋ํด ์ค๋ช ํฉ๋๋ค.
IP ๋งค์ค์ปค๋ ์ด๋ฉ ๊ฐ์
IP ๋งค์ค์ปค๋ ์ด๋ฉ์ ๋ค๋์ผ IP ์ฃผ์ ๋ณํ์ ์ํํ๋ ์์ค ๋คํธ์ํฌ ์ฃผ์ ๋ณํ(SNAT) ํ์์ ๋๋ค. GKE์์๋ IP ๋งค์ค์ปค๋ ์ด๋ฉ์ ์ฌ์ฉํ์ฌ ํฌ๋์์ ์ ์ก๋ ํจํท์ ์์ค IP ์ฃผ์๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
Kubernetes ๊ตฌํ์ IP ๋งค์ค์ปค๋ ์ด๋ฉ์ ๋ํ ์ผ๋ฐ์ ์ธ ๊ฐ์๋ IP ๋งค์ค์ปค๋ ์ด๋ ์์ด์ ํธ ์ฌ์ฉ์ ๊ฐ์ด๋๋ฅผ ์ฐธ์กฐํ์ธ์.
GKE IP ๋งค์ค์ปค๋ ์ด๋ฉ
IP ๋งค์ค์ปค๋ ์ด๋ฉ์ด ํฌ๋์์ ๋ด๋ณด๋ด๋ ํจํท์ ์ ์ฉ๋๋ฉด GKE๋ ํจํท ์์ค IP ์ฃผ์๋ฅผ ํฌ๋ IP์์ ๊ธฐ๋ณธ ๋ ธ๋์ IP ์ฃผ์๋ก ๋ณ๊ฒฝํฉ๋๋ค. ํจํท์ ์์ค IP ์ฃผ์๋ฅผ ๋งค์ค์ปค๋ ์ด๋ฉํ๋ฉด ์์ ์๊ฐ ํด๋ฌ์คํฐ ๋ ธ๋ IP ์ฃผ์์ ํจํท๋ง ์์ ํ๋๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ์ ์ ์ฉํฉ๋๋ค.
Linux ๋
ธ๋์์ GKE๋ iptables
๊ท์น์ ๊ตฌ์ฑํฉ๋๋ค.
GKE๋ ip-masq-agent
DaemonSet๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ ํ ๋ฐ์ดํฐ ์์ญ์ ๊ตฌ์ฑํฉ๋๋ค.
Windows Server ๋ ธ๋ ํ์์๋ IP ๋งค์ค์ปค๋ ์ด๋ฉ์ด ์ง์๋์ง ์์ต๋๋ค.
ํ์ค ํด๋ฌ์คํฐ์ IP ๋งค์ค์ปค๋ ์ด๋ฉ
ํ์ค ํด๋ฌ์คํฐ์์ ํด๋ฌ์คํฐ์ IP ๋งค์ค์ปค๋ ์ด๋ ๋์์ ๋ค์ ์ธ ๊ฐ์ง ์์๋ก ์ ์ด๋ฉ๋๋ค.
- ๋ฐฐํฌํ๊ฑฐ๋ GKE๊ฐ
ip-masq-agent
DaemonSet์ ํด๋ฌ์คํฐ์ ์๋์ผ๋ก ๋ฐฐํฌํ๋์ง ์ฌ๋ถ. GKE๊ฐip-masq-agent
DaemonSet์ ์๋์ผ๋ก ๋ฐฐํฌํ๋ ์๋๋ฆฌ์ค์ ๋ํ ์์ธํ ๋ด์ฉ์ip-masq-agent
๊ฐ ์๋์ผ๋ก ๋ฐฐํฌ๋๋ ๊ฒฝ์ฐ๋ฅผ ์ฐธ์กฐํ์ธ์. ip-masq-agent
configMap์์ ์ปค์คํ nonMasqueradeCIDRs
๋ชฉ๋ก์ ๋ง๋ค์๋์ง ์ฌ๋ถip-masq-agent
DaemonSet์ด ํด๋ฌ์คํฐ์ ๋ฐฐํฌ๋์ง ์์ ๊ฒฝ์ฐ--disable-default-snat
ํ๋๊ทธ๋ก ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค์๋์ง ์ฌ๋ถ. ์ด ํ๋๊ทธ์ ๋ํ ์์ธํ ๋ด์ฉ์--disable-default-snat
ํ๋๊ทธ ์ํฅ์ ์ฐธ์กฐํ์ธ์.
๋ค์ ํ์๋ ํ์ค GKE ํด๋ฌ์คํฐ์ IP ๋งค์ค์ปค๋ ์ด๋ ๊ตฌ์ฑ์ด ์์ฝ๋์ด ์์ต๋๋ค.
ํด๋ฌ์คํฐ ๊ตฌ์ฑ | ๊ฒฐ๊ณผ SNAT ๋์ |
---|---|
|
GKE๋ GKE๋ ์์ค ํฌ๋ IP ์ฃผ์๋ฅผ |
|
GKE๋ ๊ธฐ๋ณธ ๋น๋งค์ค์ปค๋ ์ด๋ ๋์ ์งํฉ์ผ๋ก ์ ์ก๋ ํจํท์ ์์ค ํฌ๋ IP ์ฃผ์๋ฅผ ์ ์งํฉ๋๋ค. GKE๋ ์์ค ํฌ๋ IP ์ฃผ์๋ฅผ ๊ธฐ๋ณธ ๋น๋งค์ค์ปค๋ ์ด๋ ๋์์ ์ธ๋ถ ๋์์ผ๋ก ์ ์ก๋ ํจํท์ ์์ค ๋ ธ๋ IP ์ฃผ์๋ก ๋ณ๊ฒฝํฉ๋๋ค. |
|
GKE๋ ๊ธฐ๋ณธ ๋น๋งค์ค์ปค๋ ์ด๋ ๋์ ์งํฉ์ผ๋ก ์ ์ก๋ ํจํท์ ์์ค ํฌ๋ IP ์ฃผ์๋ฅผ ์ ์งํฉ๋๋ค. GKE๋ ์์ค ํฌ๋ IP ์ฃผ์๋ฅผ ๊ธฐ๋ณธ ๋น๋งค์ค์ปค๋ ์ด๋ ๋์์ ์ธ๋ถ ๋์์ผ๋ก ์ ์ก๋ ํจํท์ ์์ค ๋ ธ๋ IP ์ฃผ์๋ก ๋ณ๊ฒฝํฉ๋๋ค. |
|
GKE๋ ๋ชจ๋ ๋์์ผ๋ก ์ ์ก๋๋ ํจํท์ ์์ค ํฌ๋ IP ์ฃผ์๋ฅผ ์ ์งํฉ๋๋ค. ํฌ๋ IPv4 ์์ค ์ฃผ์๋ฅผ ๋ณด์กดํ๊ณ ํจํท์ ์ธํฐ๋ท์ผ๋ก ๋ผ์ฐํ ํด์ผ ํ ๊ฒฝ์ฐ์ ์ค์ ๋ผ์ฐํ ๊ณ ๋ ค์ฌํญ์ ํฌ๋ IPv4 ์ฃผ์ ์์ค๋ฅผ ์ธํฐ๋ท ๋์์ ๋ณด์กด์ ์ฐธ์กฐํ์ธ์. |
Autopilot ํด๋ฌ์คํฐ์ IP ๋งค์ค์ปค๋ ์ด๋ฉ
Autopilot ํด๋ฌ์คํฐ์์ GKE๋ ํญ์ ip-masq-agent
DaemonSet๋ฅผ ๋ฐฐํฌํฉ๋๋ค. ํฌ๋๊ฐ ํด๋ฌ์คํฐ ๋
ธ๋, ํฌ๋ ๋๋ ์๋น์ค ๋ฒ์๋ก ์ ์กํ๋ ํจํท์ ์ ์ธํ๊ณ EgressNATPolicy
๋ฅผ ์ฌ์ฉํ์ฌ IP ๋งค์ค์ปค๋ ์ด๋ ๋์์ ์ ์ดํ ์ ์์ต๋๋ค. EgressNATPolicy
๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด Autopilot ํด๋ฌ์คํฐ๊ฐ ๋ค์ ์๊ตฌ์ฌํญ์ ๋ชจ๋ ์ถฉ์กฑํด์ผ ํฉ๋๋ค.
- ํด๋ฌ์คํฐ๊ฐ GKE ๋ฒ์ 1.23.4-gke.1600 ์ด์ ๋๋ 1.22.7-gke.1500 ์ด์์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
- GKE Dataplane V2๊ฐ ์ฌ์ฉ ์ค์ ๋ ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
๋ค์ ํ์๋ Autopilot GKE ํด๋ฌ์คํฐ์ IP ๋งค์ค์ปค๋ ์ด๋ ๊ตฌ์ฑ์ด ์์ฝ๋์ด ์์ต๋๋ค.
Autopilot ํด๋ฌ์คํฐ ๊ตฌ์ฑ | ๊ฒฐ๊ณผ SNAT ๋์ |
---|---|
ํด๋ฌ์คํฐ์๋ |
GKE๋ GKE๋ ์์ค ํฌ๋ IP ์ฃผ์๋ฅผ |
ํด๋ฌ์คํฐ์ ์ปค์คํ
|
๊ธฐ๋ณธ
|
๊ตฌ์ฑ ์์
๋ค์ ์น์ ์ ํผ์ณ ํด๋ฌ์คํฐ ์ ํ์ ๋ฐ๋ฅธ IP ๋งค์ค์ปค๋ ์ด๋ฉ๊ณผ ๊ตฌ์ฑ ์์๋ฅผ ํ์ธํฉ๋๋ค.
๊ณ ๊ธ ๊ตฌ์ฑ ์ฐธ์กฐ
ip-masq-agent
๊ฐ ์๋์ผ๋ก ๋ฐฐํฌ๋๋ ๊ฒฝ์ฐ
Autopilot ๋ชจ๋ ํด๋ฌ์คํฐ์์ GKE๋ ํญ์ ip-masq-agent
DaemonSet๋ฅผ ๋ฐฐํฌํฉ๋๋ค.
ํ์ค ํด๋ฌ์คํฐ์์ GKE๋ --disable-default-snat
ํ๋๊ทธ๊ฐ ์ค์ ๋์ง ์์ ๊ฒฝ์ฐ ip-masq-agent
DaemonSet๋ฅผ ๋ฐฐํฌํ๊ณ ํด๋ฌ์คํฐ๊ฐ ๋ค์ ๊ตฌ์ฑ ์กฐํฉ ์ค ํ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ํด๋ฌ์คํฐ์์ GKE Dataplane V2๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉฐ ๋คํธ์ํฌ ์ ์ฑ ์ ์ฉ์ด ์ฌ์ฉ ์ค์ ๋์ด ์์ต๋๋ค.
ํด๋ฌ์คํฐ๊ฐ
10.0.0.0/8
์ ๋ง์ง ์๋ ํฌ๋ IP ์ฃผ์ ๋ฒ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ip-masq-agent
DaemonSet์ ์ ์ฉํ๋ ค๋ฉด ip-masq-agent
ConfigMap์์ nonMasqueradeCIDRs
๋ชฉ๋ก๋ ์ง์ ํด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ IP ๋งค์ค์ปค๋ ์ด๋ ์์ด์ ํธ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์ฐธ์กฐํ์ธ์.
ip-masq-agent
DaemonSet๊ฐ ํด๋ฌ์คํฐ์ ์์ผ๋ฉด GKE๋ ํด๋ฌ์คํฐ์ ๊ฐ ๋
ธ๋์์ ์ ๊ณต ํฌ๋๋ฅผ ์
๋ฐ์ดํธํ๊ณ ์กฐ์ ํฉ๋๋ค.
๊ธฐ๋ณธ ๋น๋งค์ค์ปค๋ ์ด๋ ๋์
๊ธฐ๋ณธ ๋น๋งค์ค์ปค๋ ์ด๋ ๋์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
100.64.0.0/10
192.0.0.0/24
192.0.2.0/24
192.88.99.0/24
198.18.0.0/15
198.51.100.0/24
203.0.113.0/24
240.0.0.0/4
๊ธฐ๋ณธ ๋น๋งค์ค์ปค๋ ์ด๋ ๋์์ ๋ค์ ๊ตฌ์ฑ์ ์ฌ์ฉํ๋ ํด๋ฌ์คํฐ์ ์ ์ฉํ ์ ์์ต๋๋ค.
ํด๋ฌ์คํฐ์
ip-masq-agent
DaemonSet๊ฐ ์์ง๋งip-masq-agent
ConfigMap์ ์ง์ ๋nonMasqueradeCIDRs
๋ชฉ๋ก์ด ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ํด๋ฌ์คํฐ์ip-masq-agent
DaemonSet๊ฐ ํฌํจ๋์ง๋งip-masq-agent
ConfigMap์ด ์ ํ ์๋ ๊ฒฝ์ฐ๊ฐ ํฌํจ๋ฉ๋๋ค.ํด๋ฌ์คํฐ์
ip-masq-agent
DaemonSet๊ฐ ์๊ณ ๋ํ--disable-default-snat
ํ๋๊ทธ๊ฐ ์ค์ ๋์ง ์์์ต๋๋ค.
๊ธฐ๋ณธ ๋น๋งค์ค์ปค๋ ์ด๋ ๋์์ ๋ค์ ๊ตฌ์ฑ์ ์ฌ์ฉํ๋ ํด๋ฌ์คํฐ์ ์ ์ฉ๋์ง ์์ต๋๋ค.
ํด๋ฌ์คํฐ์
ip-masq-agent
DaemonSet๊ฐ ์๊ณip-masq-agent
ConfigMap์ ์ง์ ๋ ์ปค์คํ nonMasqueradeCIDRs
๋ชฉ๋ก์ด ์์ต๋๋ค. ์ปค์คํ nonMasqueradeCIDRs
๋ชฉ๋ก์ ํด๋ฌ์คํฐ์ip-masq-agent
DaemonSet๊ฐ ์์ ๋ ํญ์ ๊ธฐ๋ณธ ๋น๋งค์ค์ปค๋ ์ด๋ ๋์์ ์ฌ์ ์ํฉ๋๋ค.ํด๋ฌ์คํฐ์
ip-masq-agent
DaemonSet๊ฐ ์๊ณ ๊ทธ๋ฆฌ๊ณ--disable-default-snat
ํ๋๊ทธ๊ฐ ์ค์ ๋์ด ์์ต๋๋ค. ์ด ๊ตฌ์ฑ์ ๋ํ ์์ธํ ๋ด์ฉ์--disable-default-snat
ํ๋๊ทธ ์ํฅ์ ์ฐธ์กฐํ์ธ์.
--disable-default-snat
ํ๋๊ทธ ์ํฅ
--disable-default-snat
ํ๋๊ทธ๋ ๋ชจ๋ ๋์์ผ๋ก ์ ์ก๋ ํจํท์ ๋ํด ์์ค ํฌ๋ IP ์ฃผ์๊ฐ ๋ณด์กด๋๋๋ก ๊ธฐ๋ณธ GKE SNAT ๋์์ ๋ณ๊ฒฝํฉ๋๋ค.
GKE๋ ํด๋ฌ์คํฐ์ ip-masq-agent
DaemonSet๋ฅผ ๋ฐฐํฌํ์ง ์๊ณ ๊ธฐ๋ณธ SNAT ๋์์ ๊ตฌํํฉ๋๋ค.
ํด๋ฌ์คํฐ์ ip-masq-agent
DaemonSet๊ฐ ํฌํจ๋์ด ์์ผ๋ฉด --disable-default-snat
ํ๋๊ทธ๋ ์๋ฌด๋ฐ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค.
- Autopilot ํด๋ฌ์คํฐ๋ ํญ์
ip-masq-agent
DaemonSet๋ฅผ ํฌํจํ๋ฏ๋ก--disable-default-snat
ํ๋๊ทธ๋ Autopilot ํด๋ฌ์คํฐ์ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค.
- ํ์ค ํด๋ฌ์คํฐ์ ๊ฒฝ์ฐ:
ip-masq-agent
DaemonSet์ ๋ฐฐํฌํ๊ฑฐ๋ GKE์์ip-masq-agent
DaemonSet์ ์๋์ผ๋ก ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ--disable-default-snat
ํ๋๊ทธ๋--disable-default-snat
๊ฐ ์ค์ ๋์ด ์๋๋ผ๋ ํด๋ฌ์คํฐ์ ์๋ฏธ๊ฐ ์์ต๋๋ค.ip-masq-agent
DaemonSet์ด ํด๋ฌ์คํฐ์ ์๋ ๊ฒฝ์ฐ ๋น๋งค์ค์ปค๋ ์ด๋ ๋์์ip-masq-agent
ConfigMap์nonMasqueradeCIDRs
๋ชฉ๋ก ๋๋nonMasqueradeCIDRs
๋ชฉ๋ก์ด ์ ์๋์ง ์์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ๋น๋งค์ค์ปค๋ ์ด๋ ๋์์์ ๋ช ์์ ์ผ๋ก ์ง์ ๋ฉ๋๋ค.
ํด๋ฌ์คํฐ๊ฐ ์์ฑ๋ ํ ํด๋ฌ์คํฐ๋ฅผ ์
๋ฐ์ดํธํ์ฌ --disable-default-snat
ํ๋๊ทธ๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. ํด๋ฌ์คํฐ์ ๋ฐฐํฌ๋ ip-masq-agent
DaemonSet๊ฐ ์๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ SNAT ์ฌ์ฉ ์ค์ง๋ ํด๋ฌ์คํฐ๊ฐ ๋ชจ๋ ๋
ธ๋๋ฅผ ๊ต์ฒดํ ํ(๊ฒฝ์ฐ์ ๋ฐ๋ผ ๋ช ์๊ฐ ํ์) ์ ์ฉ๋ฉ๋๋ค. ์ด๋ GKE๊ฐ ํด๋ฌ์คํฐ์ ๋
ธ๋๋ฅผ ๊ต์ฒดํ ๋ ๊ตฌ์ฑ๋ ์ ์ง๋ณด์ ๊ธฐ๊ฐ์ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์
๋๋ค. ์ ์ง๋ณด์ ๊ธฐ๊ฐ์ ๊ตฌ์ฑํ์ง ์์ ๊ฒฝ์ฐ --disable-default-snat
ํ๋๊ทธ๋ฅผ ์ ์ฉํ๊ธฐ ์ ์ ํด๋ฌ์คํฐ์ ๋
ธ๋๋ฅผ ์๋์ผ๋ก ์ํํด์ผ ํฉ๋๋ค.
๋งํฌ-๋ก์ปฌ ๋งค์ค์ปค๋ ์ด๋ฉ
169.254.0.0/16
๋ฒ์๋ ๋งํฌ-๋ก์ปฌ IP ์ฃผ์์ ์ฌ์ฉ๋ฉ๋๋ค. ๋งํฌ-๋ก์ปฌ ๋งค์ค์ปค๋ ์ด๋ฉ์ ์์ค ํฌ๋ IP ์ฃผ์๋ฅผ 169.254.0.0/16
๋์์ผ๋ก ์ ์ก๋ ํจํท์ ์์ค ๋
ธ๋ IP ์ฃผ์๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
Autopilot ํด๋ฌ์คํฐ๋ ํญ์ 169.254.0.0/16
๋์์ผ๋ก ์ ์ก๋ ํจํท์ ์์ค ํฌ๋ IP ์ฃผ์๋ฅผ ๋ณด์กดํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ํ์ค ํด๋ฌ์คํฐ๋ 169.254.0.0/16
๋์์ผ๋ก ์ ์ก๋ ํจํท์ ์์ค ํฌ๋ IP ์ฃผ์๋ ๋ณด์กดํฉ๋๋ค.
๋ค์ ๋ ๊ฐ์ง๋ฅผ ๋ชจ๋ ์ํํ์ฌ ํ์ค ํด๋ฌ์คํฐ์์ ๋งํฌ-๋ก์ปฌ IP ๋งค์ค์ปค๋ ์ด๋ฉ์ ์ฌ์ฉ ์ค์ ํ ์ ์์ต๋๋ค.
ip-masq-agent
configMap์masqLinkLocal
ํ๋ผ๋ฏธํฐ๊ฐ ์๊ณTrue
๋ก ์ค์ ๋์๋์ง ํ์ธํฉ๋๋ค.ip-masq-agent
configMap์masqLinkLocal
๋งค๊ฐ๋ณ์๊ฐ ์์ผ๋ฉด ๊ธฐ๋ณธ๊ฐ์False
์ ๋๋ค. ์์ธํ ๋ด์ฉ์ip-masq-agent
ConfigMap ํ์ธ,ip-masq-agent
ConfigMap ๋ง๋ค๊ธฐ, ๊ธฐ์กดip-masq-agent
ConfigMap ์์ ์ ์ฐธ์กฐํ์ธ์.- ํด๋ฌ์คํฐ์
ip-masq-agent
DaemonSet์ด ๋ฐฐํฌ๋์๋์ง ํ์ธํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ip-masq-agent
DaemonSet ํ์ธ ๋ฐip-masq-agent
DaemonSet ๋ฐฐํฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
hostNetwork: true
๋ฅผ ์ฌ์ฉํ ์ง๋จ ์ปจํ
์ด๋ ๋ฐ ํฌ๋
ํจํท์ ์ปค์คํ
์์ค IP ์ฃผ์๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด hostNetwork: true
๋ฐ ์ง๋จ ์ปจํ
์ด๋๋ก ์คํ๋๋ ํฌ๋๋ ๋
ธ๋์ IP ์ฃผ์์ ์ผ์นํ๋ ์์ค๋ฅผ ์ฌ์ฉํ์ฌ ํจํท์ ์ ์กํฉ๋๋ค. hostNetwork: true
๋ก ์คํ๋๋ ํฌ๋์ ๊ฒฝ์ฐ GKE๋ ๋
ธ๋์ IP ์ฃผ์๋ฅผ ํฌ๋์ ํ ๋นํฉ๋๋ค. GKE๋ ๋๊ตฌ ์์๋ฅผ ์ฌ์ฉํ์ฌ ๋
ธ๋ ๋ฌธ์ ๋ฅผ ๋๋ฒ๊น
ํ ์ ์๋ ์ปจํ
์ด๋๋ฅผ ํฌํจํ์ฌ ์ง๋จ ์ปจํ
์ด๋์ IP ์ฃผ์๋ฅผ ๊ด๋ฆฌํ์ง ์์ต๋๋ค.
Autopilot ํด๋ฌ์คํฐ๋ spec.hostNetwork: true
๋ฅผ ์ฌ์ฉํ ํฌ๋ ์คํ์ ์ง์ํ์ง ์์ต๋๋ค. Autopilot ํด๋ฌ์คํฐ์ ๋
ธ๋๋ SSH๋ฅผ ํตํด ์ก์ธ์คํ ์ ์์ผ๋ฏ๋ก ์ง๋จ ์ปจํ
์ด๋๋ฅผ ์คํํ ์ ์์ต๋๋ค.
์ธํฐ๋ท ๋์์ ํฌ๋ IPv4 ์ฃผ์ ์์ค ๋ณด์กด
ํด๋ฌ์คํฐ์ IP ๋งค์ค์ปค๋ ์ด๋ ๊ตฌ์ฑ์ด ๋ค์ ์ค ํ๋์ธ ๊ฒฝ์ฐ GKE๋ ์ธํฐ๋ท ๋์์ ํฌํจํ์ฌ ๋ชจ๋ ๋์์ผ๋ก ์ ์ก๋๋ ํจํท์ ํฌ๋ IP ์ฃผ์ ์์ค๋ฅผ ๋ณด์กดํฉ๋๋ค.
ip-masq-agent
DaemonSet์ด ์๋ ํ์ค ํด๋ฌ์คํฐ์์nonMasqueradeCIDRs
๋ฅผip-masq-agent
ConfigMap์0.0.0.0
์ผ๋ก ์ค์ ํ ๊ฒฝ์ฐip-masq-agent
DaemonSet์ด ์๋ ํ์ค ํด๋ฌ์คํฐ์์--disable-default-snat
ํ๋๊ทธ๋ฅผ ์ค์ ํ ๊ฒฝ์ฐ
- Autopilot ํด๋ฌ์คํฐ์์
spec.action
์ดNoSNAT
์ด๊ณspec.destinations
์Cidr: 0.0.0.0/0
์ด ํฌํจ๋๋๋ก ๊ธฐ๋ณธ EgressNATPolicy๋ฅผ ์์ ํ ๊ฒฝ์ฐ
๊ณต๊ฐ ๋ฐ ๋น๊ณต๊ฐ ํด๋ฌ์คํฐ ๋ชจ๋์์ ํฌ๋ IPv4 ์์ค๋ ๋ด๋ถ IPv4 ์ฃผ์์ด๋ฏ๋ก ์ธํฐ๋ท์์ ์ด ์์ค๋ฅผ ๋ผ์ฐํ ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ธํฐ๋ท์ผ๋ก ์ ์ก๋ ํจํท์ ์์ค ํฌ๋ IPv4 ์ฃผ์๋ฅผ ๋ณด์กดํ๋ ๊ฒฝ์ฐ ํด๋ฌ์คํฐ ๋ ธ๋๋ฅผ ๋๊ฐ ํ ํจํท์ ๋ผ์ฐํ ํ๋ ค๋ฉด ๋ค์ ๊ธฐ๋ฒ ์ค ํ๋๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
- VPC ๋คํธ์ํฌ์ ๊ธฐ๋ณธ ์ธํฐ๋ท ๊ฒ์ดํธ์จ์ด ๋ค์ ํ์ด ์๋ ๊ธฐ๋ณธ ๊ฒฝ๋ก๊ฐ ์๋์ง ํ์ธํ๊ณ ์ต์ํ ํด๋ฌ์คํฐ์ ํฌ๋์์ ์ฌ์ฉํ๋ ์๋ธ๋ท ๋ณด์กฐ IPv4 ์ฃผ์ ๋ฒ์ ์ด์์ผ๋ก Public NAT ์๋น์ค๋ฅผ ์ ๊ณตํ๋๋ก Cloud NAT ๊ฒ์ดํธ์จ์ด๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Cloud NAT ๊ฐ์์ GKE ์ํธ์์ฉ์ ์ฐธ์กฐํ์ธ์.
- ๋ค์ ํ์ด VM ์ธ์คํด์ค์ด๊ฑฐ๋ ๋ด๋ถ ํจ์ค ์ค๋ฃจ ๋คํธ์ํฌ ๋ถํ ๋ถ์ฐ๊ธฐ์ธ ์ปค์คํ ๊ธฐ๋ณธ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๋๋ก VPC ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ์ฌ๊ธฐ์ ๋ถํ ๋ถ์ฐ๊ธฐ์ VM ๋๋ ๋ฐฑ์๋๋ ํจํท์ ํฌ๋ ๋์ ์ธํฐ๋ท์ผ๋ก ๋ผ์ฐํ ํ๋๋ก ๊ตฌ์ฑ๋์์ต๋๋ค.
๊ธฐ๋ณธ SNAT ๋์์ผ๋ก ๋ณต์
ip-masq-agent
DaemonSet๊ฐ ํด๋ฌ์คํฐ์ ์์ ๋ ๊ธฐ๋ณธ SNAT ๋์์ผ๋ก ๋ณต์ํ๋ ค๋ฉด ์ฐ๊ฒฐ๋ ip-masq-agent
ConfigMap์ ์ญ์ ํฉ๋๋ค. ip-masq-agent
DaemonSet๋ ๊ด๋ฆฌํ๋ ๋
ธ๋์์ ๊ธฐ๋ณธ IP ๋งค์ค์ปค๋ ์ด๋ฉ ๋์์ ๋ณต์ํฉ๋๋ค.
ip-masq-agent
DaemonSet๊ฐ ํด๋ฌ์คํฐ์ ์์ ๋ ๊ธฐ๋ณธ SNAT ๋์์ผ๋ก ๋ณต์ํ๋ ค๋ฉด ๋
ธ๋ ํ์ ์
๊ทธ๋ ์ด๋ํด์ผ ํฉ๋๋ค(--disable-default-snat
๊ฐ ํด๋ฌ์คํฐ์ ์ค์ ๋์ง ์์๋์ง ํ์ธ).
Autopilot ํด๋ฌ์คํฐ์ ์ด๊ทธ๋ ์ค NAT ์ ์ฑ ์ํฅ
GKE ์ด๊ทธ๋ ์ค NAT ์ ์ฑ ์ ์ฌ์ฉํ๋ฉด Autopilot ํด๋ฌ์คํฐ์์ IP ๋งค์ค์ปค๋ ์ด๋ฉ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. GKE ์ด๊ทธ๋ ์ค NAT ์ ์ฑ ์ปค์คํ ๋ฆฌ์์ค ์ ์(CRD)๋ฅผ ์ฌ์ฉํ์ฌ ํฌ๋์์ ์ ์ก๋ ํจํท์ ์์ค IP ์ฃผ์๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
๋ณด์์ด๋ IP ์ฃผ์ ์์ง์์ ์ด์ ๋ก ํฌ๋์ IP ์ฃผ์๋ฅผ ์จํ๋ ๋ฏธ์ค ๋คํธ์ํฌ๋ก ๊ฐ๋ ์์๋ฐ์ด๋ ํธ๋ํฝ์ ๋ ธ๋ IP ์ฃผ์ ๋ฒ์๋ก ๋งค์ค์ปค๋ ์ด๋ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด Autopilot ํด๋ฌ์คํฐ์ RFC-1918 ์ด์ธ์ ๋ฒ์๋ฅผ ์ฌ์ฉํ๊ณ ๋ ธ๋์ RFC-1918 ๋ฒ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ์ง๋ง ํฌ๋์์ RFC-1918 ์ด์ธ์ ๋ฒ์๋ ์ฌ์ฉํ๋ ์จํ๋ ๋ฏธ์ค ๋คํธ์ํฌ์ ํต์ ํด์ผ ํ๋ ๊ฒฝ์ฐ IP ์ฃผ์๊ฐ ๊ฒน์น ์ ์์ต๋๋ค. ํธ๋ํฝ ์์ค์ ๋ฐฉ์งํ๋ ค๋ฉด ํฌ๋์ RFC-1918 ์ด์ธ์ ๋ฒ์๋ฅผ ์จํ๋ ๋ฏธ์ค ๋คํธ์ํฌ์ ๊ณต์งํ์ง ์๋๋ก ์ด๊ทธ๋ ์ค NAT ์ ์ฑ ์ ๊ตฌ์ฑํ๋ฉด ๋ฉ๋๋ค. ์ด๊ทธ๋ ์ค NAT ์ ์ฑ ์ ๋์ ํฌ๋์ RFC-1918 ์ด์ธ์ ๋ฒ์๋ฅผ ๋งค์ค์ปค๋ ์ด๋ํ์ฌ ๋ ธ๋์ RFC-1918 ๋ฒ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ ธ๋ ๋ฒ์๊ฐ ์จํ๋ ๋ฏธ์ค ๋ฒ์์ ๊ฒน์น์ง ์๋์ง ๋๋ ํธ๋ํฝ ๋ฃจํ๊ฐ ๋ฐ์ํ๋์ง ํ์ธํฉ๋๋ค.
GKE๋ ๋ค์ ํ๋ก์ธ์ค๋ฅผ ํตํด Autopilot ํด๋ฌ์คํฐ์ IP ๋งค์ค์ปค๋ ์ด๋ฉ ๋์์ ์ ์ฉํฉ๋๋ค.
- GKE๋ ์ด๊ทธ๋ ์ค NAT ์ปจํธ๋กค๋ฌ์
ip-masq-agent
๋ฅผ ๋ฐฐํฌํฉ๋๋ค. - ์ด๊ทธ๋ ์ค NAT ์ ์ฑ ์ ๋ง๋ญ๋๋ค.
- GKE ์ปจํธ๋กค๋ฌ๋ ์ ์ฑ
์
ip-masq-agent
ConfigMap์ผ๋ก ๋ณํํฉ๋๋ค. ip-masq-agent
DaemonSet์์ ConfigMap์ ์ฝ์ ํ GKE์์ IP ๋งค์ค์ปค๋ ์ด๋ฉ ๋์์ ์ ์ฉํฉ๋๋ค.
์๋ ์์ฑ๋ ์ ์ฑ
GKE๋ ์๋์ผ๋ก ์์ฑ๋ ์ด๊ทธ๋ ์ค NAT ์ ์ฑ ๋ ๊ฐ๋ฅผ ์ง์ํฉ๋๋ค.
- ๊ธฐ๋ณธ ์ ์ฑ : ์ด๋ฌํ ์ ์ฑ ์ ์์ ํ ์ ์์ต๋๋ค.
- GKE ๊ด๋ฆฌ ์ ์ฑ : ์ด๋ฌํ ์ ์ฑ ์ ๊ณ ์ ๋์ด ์์ผ๋ฉฐ ์์ ํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ ์ ์ฑ
GKE๋ ๊ธฐ๋ณธ IP ์ฃผ์ ๋ฒ์ ์งํฉ์ ์ฌ์ ์ ์ํฉ๋๋ค. ํจํท์ด ์ด๋ฌํ ๋์์ผ๋ก ์ ์ก๋๋ฉด ํด๋ฌ์คํฐ์์ IP ์ฃผ์ ์์ค๋ฅผ ๋งค์ค์ปค๋ ์ด๋ํ์ง ์๊ณ ์์ค ํฌ๋ IP ์ฃผ์๋ฅผ ๋ณด์กดํฉ๋๋ค. ์ด๋ฌํ ๊ธฐ๋ณธ IP ์ฃผ์ ๋ฒ์๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด ์ด๊ทธ๋ ์ค NAT ์ ์ฑ ์์ ๋ฐ ๋ฐฐํฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ค์ ๋งค๋ํ์คํธ์์๋ ๊ธฐ๋ณธ ์ด๊ทธ๋ ์ค NAT ์ ์ฑ ์ ์ค๋ช ํฉ๋๋ค.
Name: default
Namespace:
Labels: <none>
Annotations: <none>
API Version: networking.gke.io/v1
Kind: EgressNATPolicy
Metadata:
Creation Timestamp: 2022-03-16T21:05:45Z
Generation: 2
Managed Fields:
API Version: networking.gke.io/v1
Fields Type: FieldsV1
fieldsV1:
f:spec:
.:
f:action:
f:status:
Manager: egress-nat-controller
Operation: Update
Time: 2022-03-16T21:05:45Z
API Version: networking.gke.io/v1
Fields Type: FieldsV1
fieldsV1:
f:spec:
f:destinations:
Manager: kubectl
Operation: Update
Time: 2022-03-17T01:58:13Z
Resource Version: 189346
UID: 06acbb5a-23ba-4c2a-bb34-9b6ed8c4a87f
Spec:
Action: NoSNAT
Destinations:
Cidr: 10.0.0.0/8
Cidr: 172.16.0.0/12
Cidr: 192.168.0.0/16
Cidr: 240.0.0.0/4
Cidr: 192.0.2.0/24
Cidr: 198.51.100.0/24
Cidr: 203.0.113.0/24
Cidr: 100.64.0.0/10
Cidr: 198.18.0.0/15
Cidr: 192.0.0.0/24
Cidr: 192.88.99.0/24
Status:
Events: <none>
CIDR ๋ฒ์๋ ๊ธฐ๋ณธ ๋น๋งค์ค์ปค๋ ์ด๋ ๋์ ๋ฒ์์ ๋์ผํฉ๋๋ค.
GKE ์ ์ฑ ์ผ๋ก ๊ด๋ฆฌ
GKE ์ด๊ทธ๋ ์ค NAT ์ ์ฑ ์ ํด๋ฌ์คํฐ ์์ ์ ๋ณด์กดํ๋ ๋ฐ ํ์ํ ๊ณ ์ IP ์ฃผ์ ๋ฒ์๋ฅผ ์์ฝํฉ๋๋ค. ์ด ์ ์ ๋ฒ์์๋ ํด๋ฌ์คํฐ์ ํฌ๋, ์๋น์ค, ๋ ธ๋ IP ์ฃผ์ ๋ฒ์๊ฐ ํฌํจ๋๋ฉฐ, ๊ธฐ๋ณธ ์ ์ฑ ๊ณผ ๊ฒน์น ์ ์์ต๋๋ค.
GKE์์ ํ ๋นํ๋ ๋์ 8๋ฐ์ดํธ ํด์(gke-{CLUSTER_SHORT_HASH}
)๋ฅผ ์ฌ์ฉํ์ฌ ์ด ์ ์ฑ
์ ์๋ณํ ์ ์์ต๋๋ค. ์ด ์ ์ฑ
์ ์์ ํ ์ ์์ต๋๋ค.
๋ค์ ๋งค๋ํ์คํธ๋ gke-bbfa6c0e-1
์ด๋ผ๋ GKE์์ ๊ด๋ฆฌํ๋ ์ ์ฑ
์ ์ค๋ช
ํฉ๋๋ค.
Name: gke-bbfa6c0e-1
Namespace:
Labels: <none>
Annotations: <none>
API Version: networking.gke.io/v1
Kind: EgressNATPolicy
Metadata:
Creation Timestamp: 2022-03-16T21:05:46Z
Generation: 1
Managed Fields:
API Version: networking.gke.io/v1
Fields Type: FieldsV1
fieldsV1:
f:spec:
.:
f:action:
f:destinations:
f:status:
Manager: egress-nat-controller
Operation: Update
Time: 2022-03-16T21:05:46Z
Resource Version: 11699
UID: 0201b5de-a6f6-4926-822b-31ed7cdee2c6
Spec:
Action: NoSNAT
Destinations:
Cidr: 10.119.128.0/17
Cidr: 10.120.0.0/22
Cidr: 10.128.0.0/20
Status:
Events: <none>
๋ค์ ๋จ๊ณ
- ์ด๊ทธ๋ ์ค NAT ์ ์ฑ ์ ์ฌ์ฉํ์ฌ Autopilot ํด๋ฌ์คํฐ์์ IP ๋งค์ค์ปค๋ ์ด๋๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ
- Standard ํด๋ฌ์คํฐ์์ IP ๋งค์ค์ปค๋ ์ด๋ ์์ด์ ํธ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ
- GKE ๋คํธ์ํฌ ๊ฐ์ ์ฝ๊ธฐ
- ์น์ธ๋ ๋คํธ์ํฌ ๊ตฌ์ฑ์ ๋ํด ์์๋ณด๊ธฐ