Ingress Controller

Ingress ๋ฆฌ์†Œ์Šค๊ฐ€ ์ž‘๋™ ํ•˜๋ ค๋ฉด ํด๋Ÿฌ์Šคํ„ฐ์— Ingress ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์‹คํ–‰ ์ค‘ ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

kube-controller-manager ๋ฐ”์ด๋„ˆ๋ฆฌ ์ผ๋ถ€๋กœ ์‹คํ–‰๋˜๋Š” ๋‹ค๋ฅธ ์œ ํ˜•์˜ ์ปจํŠธ๋กค๋Ÿฌ์™€ ๋‹ฌ๋ฆฌ Ingress ์ปจํŠธ๋กค๋Ÿฌ๋Š” ํด๋Ÿฌ์Šคํ„ฐ์™€ ํ•จ๊ป˜ ์ž๋™์œผ๋กœ ์‹œ์ž‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

AWS Load Balancer Controller

AWS ALB Ingress Controller๊ฐ€ AWS Load Balancer Controller๋กœ ์ด๋ฆ„์ด ๋ณ€๊ฒฝ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

AWS Load Balancer Controller๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ์šฉ Elastic Load Balancer๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” controller ์ž…๋‹ˆ๋‹ค.

  • Application Load Balancers๋ฅผ ํ”„๋กœ๋น„์ €๋‹ํ•˜์—ฌ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค Ingress ๋ฆฌ์†Œ์Šค๋ฅผ ์ถฉ์กฑ ํ•ฉ๋‹ˆ๋‹ค.

  • Network Load Balancers๋ฅผ ํ”„๋กœ๋น„์ €๋‹ํ•˜์—ฌ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค Service ๋ฆฌ์†Œ์Šค๋ฅผ ์ถฉ์กฑ ํ•ฉ๋‹ˆ๋‹ค.

AWS Load Balancer ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ์ง€์›ํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ ๋ชจ๋“œ๋Š” ์•„๋ž˜์˜ ๋‘ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

  • Instance(default): ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด ๋…ธ๋“œ๋ฅผ ALB์˜ ๋Œ€์ƒ์œผ๋กœ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. ALB์— ๋„๋‹ฌํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ์€ NodePort๋กœ ๋ผ์šฐํŒ…๋œ ๋‹ค์Œ ํŒŒ๋“œ๋กœ ํ”„๋ก์‹œ๋ฉ๋‹ˆ๋‹ค.

  • IP: ํŒŒ๋“œ๋ฅผ ALB ๋Œ€์ƒ์œผ๋กœ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. ALB์— ๋„๋‹ฌํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ์€ ํŒŒ๋“œ๋กœ ์ง์ ‘ ๋ผ์šฐํŒ…๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ํŠธ๋ž˜ํ”ฝ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„  ingress.yaml ํŒŒ์ผ์— ์ฃผ์„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ ์‹ค์Šต์—์„œ๋Š” Application Load Balancer์— ์ดˆ์ ์„ ๋งž์ถœ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

AWS Elastic Load Balancing Application Load Balancer (ALB)๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์šฉ ์˜์—ญ์—์„œ Amazon EC2 ์ธ์Šคํ„ด์Šค์™€ ๊ฐ™์€ ์—ฌ๋Ÿฌ ๋Œ€์ƒ์— ๊ฑธ์ณ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์—์„œ ์ˆ˜์‹  ํŠธ๋ž˜ํ”ฝ์„ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑํ•˜๋Š” ์ž˜ ์•Œ๋ ค์ง„ AWS ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

ALB๋Š” ๋‹ค์Œ์„ ํฌํ•จํ•œ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์ง€์› ํ•ฉ๋‹ˆ๋‹ค.

  • ํ˜ธ์ŠคํŠธ ๋˜๋Š” ๊ฒฝ๋กœ ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…

  • TLS (Transport Layer Security) ํ„ฐ๋ฏธ๋„ค์ด์…˜, WebSocket

  • HTTP / 2

  • AWS WAF(Web Application Firewall) ํ†ตํ•ฉ

  • ํ†ตํ•ฉ ์•ก์„ธ์Šค ๋กœ๊ทธ ๋ฐ ์ƒํƒœ ํ™•์ธ

1. AWS Load Balancer Controller ๋ฐฐํฌํ•˜๊ธฐ

๋จผ์ € AWS Load Balancer Controller ๋ฒ„์ „์ด ์„ค์ • ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ ํ•ฉ๋‹ˆ๋‹ค.

Helm์„ ์‚ฌ์šฉํ•˜์—ฌ ALB Ingress Controller๋ฅผ ์„ค์น˜ ํ•ฉ๋‹ˆ๋‹ค.

๋จผ์ € helm์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ ํ•˜์‹ญ์‹œ์˜ค:

ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•œ IAM OIDC provider ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. Pod์™€ ๊ฐ™์€ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๊ฐ€ ์ƒ์„ฑํ•œ ํ•ญ๋ชฉ์ด API Server ๋˜๋Š” ์™ธ๋ถ€ ์„œ๋น„์Šค์— ์ธ์ฆํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” service account์— IAM role์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด, ์ƒ์„ฑํ•œ ํด๋Ÿฌ์Šคํ„ฐ(ํ˜„์žฌ ์‹ค์Šต์—์„œ์˜ eks-demo)์— IAM OIDC provider๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Amazon EKS ์„ค๋ช…์„œ์—์„œ ์„œ๋น„์Šค ๊ณ„์ •์˜ IAM Roles for Service Accounts์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์‹ญ์‹œ์˜ค.

AWS Load Balancer Controller์— ๋ถ€์—ฌํ•  AWSLoadBalancerControllerIAMPolicy ์ •์ฑ…์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

AWS Load Balancer Controller๋ฅผ ์œ„ํ•œ ServiceAccount๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. Account ID๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด ๋‹ค์Œ์˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•œ ํ›„ IAM ์—ญํ• ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

TargetGroupBinding CRDs ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

EKS repo๋กœ ๋ถ€ํ„ฐ helm ์ฐจํŠธ(AWS Load Balancer Controller)๋ฅผ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

๋ฐฐํฌ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ๋˜๊ณ  ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์‹คํ–‰๋˜๋Š”์ง€ ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

Last updated

Was this helpful?