IP ๋งค์Šค์ปค๋ ˆ์ด๋“œ ์—์ด์ „ํŠธ


์ด ํŽ˜์ด์ง€์—์„œ๋Š” 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 ๋งค์Šค์ปค๋ ˆ์ด๋“œ ๊ตฌ์„ฑ์ด ์š”์•ฝ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ๊ฒฐ๊ณผ SNAT ๋™์ž‘

ip-masq-agent DaemonSet๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ์— ์žˆ๊ณ  ์ปค์Šคํ…€ nonMasqueradeCIDRs ๋ชฉ๋ก์ด ip-masq-agent ConfigMap์— ์žˆ์Šต๋‹ˆ๋‹ค.

GKE๋Š” nonMasqueradeCIDRs ๋ชฉ๋ก์— ์ง€์ •๋œ ๋Œ€์ƒ์œผ๋กœ ์ „์†ก๋œ ํŒจํ‚ท์˜ ์†Œ์Šค ํฌ๋“œ IP ์ฃผ์†Œ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

GKE๋Š” ์†Œ์Šค ํฌ๋“œ IP ์ฃผ์†Œ๋ฅผ nonMasqueradeCIDRs ๋ชฉ๋ก์— ์ง€์ •๋˜์ง€ ์•Š์€ ๋Œ€์ƒ์œผ๋กœ ์ „์†ก๋œ ํŒจํ‚ท์˜ ์†Œ์Šค ๋…ธ๋“œ IP ์ฃผ์†Œ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

ip-masq-agent DaemonSet๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ์— ์žˆ์ง€๋งŒ ์ปค์Šคํ…€ nonMasqueradeCIDRs ๋ชฉ๋ก์ด ip-masq-agent ConfigMap์— ์กด์žฌํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋˜๋Š” ip-masq-agent ConfigMap์ด ์ „ํ˜€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

GKE๋Š” ๊ธฐ๋ณธ ๋น„๋งค์Šค์ปค๋ ˆ์ด๋“œ ๋Œ€์ƒ ์ง‘ํ•ฉ์œผ๋กœ ์ „์†ก๋œ ํŒจํ‚ท์˜ ์†Œ์Šค ํฌ๋“œ IP ์ฃผ์†Œ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

GKE๋Š” ์†Œ์Šค ํฌ๋“œ IP ์ฃผ์†Œ๋ฅผ ๊ธฐ๋ณธ ๋น„๋งค์Šค์ปค๋ ˆ์ด๋“œ ๋Œ€์ƒ์˜ ์™ธ๋ถ€ ๋Œ€์ƒ์œผ๋กœ ์ „์†ก๋œ ํŒจํ‚ท์˜ ์†Œ์Šค ๋…ธ๋“œ IP ์ฃผ์†Œ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

ip-masq-agent DaemonSet๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ์— ์—†๊ณ  ๊ทธ๋ฆฌ๊ณ  --disable-default-snat ํ”Œ๋ž˜๊ทธ ์—†์ด ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

GKE๋Š” ๊ธฐ๋ณธ ๋น„๋งค์Šค์ปค๋ ˆ์ด๋“œ ๋Œ€์ƒ ์ง‘ํ•ฉ์œผ๋กœ ์ „์†ก๋œ ํŒจํ‚ท์˜ ์†Œ์Šค ํฌ๋“œ IP ์ฃผ์†Œ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

GKE๋Š” ์†Œ์Šค ํฌ๋“œ IP ์ฃผ์†Œ๋ฅผ ๊ธฐ๋ณธ ๋น„๋งค์Šค์ปค๋ ˆ์ด๋“œ ๋Œ€์ƒ์˜ ์™ธ๋ถ€ ๋Œ€์ƒ์œผ๋กœ ์ „์†ก๋œ ํŒจํ‚ท์˜ ์†Œ์Šค ๋…ธ๋“œ IP ์ฃผ์†Œ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

ip-masq-agent DaemonSet๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ์— ์—†๊ณ  ๊ทธ๋ฆฌ๊ณ  --disable-default-snat ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

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 ๋™์ž‘

ํด๋Ÿฌ์Šคํ„ฐ์—๋Š” spec.destinations[]์— ์ง€์ •๋œ ๋น„๋งค์Šค์ปค๋ ˆ์ด๋“œ ๋Œ€์ƒ์„ ํฌํ•จํ•˜๋Š” spec.action์ด NoSNAT์ธ ์ปค์Šคํ…€ EgressNATPolicy๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

GKE๋Š” EgressNATPolicy์˜ spec.destinations[]์— ์ง€์ •๋œ ๋Œ€์ƒ์œผ๋กœ ์ „์†ก๋œ ํŒจํ‚ท์˜ ์†Œ์Šค ํฌ๋“œ IP ์ฃผ์†Œ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. GKE๋Š” spec.destinations[]๋ฅผ ip-masq-agent configMap์˜ nonMasqueradeCIDRs ๋ชฉ๋ก์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

GKE๋Š” ์†Œ์Šค ํฌ๋“œ IP ์ฃผ์†Œ๋ฅผ EgressNATPolicy์˜ spec.destinations[]์— ์ง€์ •๋˜์ง€ ์•Š์€ ๋Œ€์ƒ์œผ๋กœ ์ „์†ก๋œ ํŒจํ‚ท์˜ ์†Œ์Šค ๋…ธ๋“œ IP ์ฃผ์†Œ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ์— ์ปค์Šคํ…€ EgressNATPolicy๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ EgressNATPolicy ๋ฐ GKE ๊ด€๋ฆฌ ์ •์ฑ…์ด ๋ชจ๋‘ ์ ์šฉ๋˜์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋™์ž‘์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

  • GKE๋Š” ๊ธฐ๋ณธ ๋น„๋งค์Šค์ปค๋ ˆ์ด๋“œ ๋Œ€์ƒ ์ง‘ํ•ฉ์œผ๋กœ ์ „์†ก๋œ ํŒจํ‚ท์˜ ์†Œ์Šค ํฌ๋“œ IP ์ฃผ์†Œ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • GKE๋Š” ์†Œ์Šค ํฌ๋“œ IP ์ฃผ์†Œ๋ฅผ ๊ธฐ๋ณธ ๋น„๋งค์Šค์ปค๋ ˆ์ด๋“œ ๋Œ€์ƒ์˜ ์™ธ๋ถ€ ๋Œ€์ƒ์œผ๋กœ ์ „์†ก๋œ ํŒจํ‚ท์˜ ์†Œ์Šค ๋…ธ๋“œ 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 ํด๋Ÿฌ์Šคํ„ฐ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ƒ์„ฑ๋œ ํ›„ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์—ฌ --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 ๋งค์Šค์ปค๋ ˆ์ด๋”ฉ์„ ์‚ฌ์šฉ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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 ํ”Œ๋ž˜๊ทธ๋ฅผ ์„ค์ •ํ•œ ๊ฒฝ์šฐ

๊ณต๊ฐœ ๋ฐ ๋น„๊ณต๊ฐœ ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋‘์—์„œ ํฌ๋“œ 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 ๋งค์Šค์ปค๋ ˆ์ด๋”ฉ ๋™์ž‘์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

  1. GKE๋Š” ์ด๊ทธ๋ ˆ์Šค NAT ์ปจํŠธ๋กค๋Ÿฌ์™€ ip-masq-agent๋ฅผ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.
  2. ์ด๊ทธ๋ ˆ์Šค NAT ์ •์ฑ…์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  3. GKE ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์ •์ฑ…์„ ip-masq-agent ConfigMap์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  4. 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>

๋‹ค์Œ ๋‹จ๊ณ„