Kubernetes์ ์ปจํธ๋กค ํ๋ ์ธ ๋๋ ๋ ธ๋๋ฅผ ์ ๊ณตํ๋ AWS์ ๊ด๋ฆฌํ K8S ์๋น์ค์ฆ, AWS์์ ์ ๊ณตํ๋ ํ๋ ฅ์ ์ผ๋ก ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ๊ด๋ฆฌํ ์ ์๋ ์๋น์ค์ด๋ค.์ฌ์ค ์ฟ ๋ฒ๋คํฐ์ค๊ฐ ๊ฐ์ฅ ์ฃผ๋ชฉ๋ฐ๊ณ , ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ํด์ 1์ธ์๋ก์จ ์ฌ๋ผ์ ๋งํผ AWS ๋ฟ๋ง ์๋
์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ฑํ ๋, ๋ง์ฃผ์ณค๋ ๋ฐ๋ก ๊ทธ๊ฒ๐ก ํด๋ฌ์คํฐ ์๋ํฌ์ธํธ ์ก์ธ์ค์ ๋ํด์ ์์๋ณด์.์ฟ ๋ฒ๋คํฐ์ค์ ์ํธํฌ์ธํธ ์ก์ธ์ค๋ ์ฟ ๋ฒ๋คํฐ์ค API ์๋ฒ์ ๋ํ ์ ๊ทผ ๋ฐฉ์์ด๋ค.์ฝ๊ฒ ๋งํด, ์ฌ์ฉ์๊ฐ ์ฟ ๋ฒ๋คํฐ์ค API ์๋ฒ์ kubectl๋ก ๋ช ๋ น์ ๋ด๋ฆด ๋, ์ด๋ค ๋ฐฉ์
EKS๋ฅผ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์๋ 3๊ฐ์ง๊ฐ ์๋ค. ๋ณธ ๊ธ์์๋ ์ด๋ฌํ ๋ฐฐํฌ๋ฅผ ํ๊ธฐ ์ํ ์ฌ์ ์์ ์ธ IAM ์ฌ์ฉ์ ์์ฑ ๋ฐ CloudFormation์ ํตํ ์ธํ๋ผ ๋ฐฐํฌ๋ฅผ ์ํํ ๊ฒ์ด๋ค.
๊ด๋ฆฌ ์ฝ์์ ํตํด์ EKS๋ฅผ ๋ฐฐํฌํด๋ณด์.๊ทธ๋ฆผ์ ์ซ์๋ฅผ ๋ณด๋ฉฐ ์์๋๋ก ์งํ๋๋ค.(1) ๊ด๋ฆฌ์ฝ์์์ EKS๋ฅผ ์์ฑํ๋ฉด ์ปจํธ๋กค ํ๋ ์ธ์ด EKS ํด๋ฌ์คํฐ์ AWS Managed VPC์์ญ์ ์์ฑ๋๋ค.์ด ๋ AWS๊ฐ ์ปจํธ๋กค ํ๋ ์ธ์ ์ ๊ทผํ์ฌ etcd ์์ฑ, API ์๋ฒ ์์ฑ ๋ฑ
eksctl์ ํตํด์ EKS๋ฅผ ๋ฐฐํฌํด ๋ณด์.ํต์ฌ์ myeks-host EC2์์ EKS ํด๋ฌ์คํฐ๋ฅผ ์์ฑํ๋ ๋ช ๋ น์ด์ธ eksctl create cluster๋ฅผ ํตํด EKS๋ฅผ ๊ฐํธํ๊ฒ ์์ฑํ๋ ๊ฒ์ด๋ค.์ด๋ฌํ eksctl ๋ช ๋ น์ ํตํด์ EKS๋ฅผ ๋ฐฐํฌํ๊ฒ ๋๋ฉด ์์ "์ฝ์ํ๊ฒฝ
EKS ํด๋ฌ์คํฐ ๊ตฌ์ฑ์ ๋ฐ๋ฅธ ๋คํธ์ํฌ๋ฅผ ์ดํดํ๊ธฐ ์ํ ์ฒซ๋ฒ์งธ ๊ด๋ฌธ์ธ Amazon VPC CNI์ ๋ํด์ ์์๋ณด์.Amazon EKS๋ Amazon VPC CNI ํ๋ฌ๊ทธ์ธ์ ํตํด์ ํด๋ฌ์คํฐ ๋คํธ์ํฌ ํ๊ฒฝ์ ๊ตฌ์ฑํฉ๋๋ค.์ผ๋ฐ์ ์ผ๋ก ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ์ CNI๋ก ๊ฑฐ๋๋๋ Ca
Amazon VPC CNI๋ฅผ ์ฌ์ฉํด์ EKS ํ๊ฒฝ์ ๊ตฌ์ถํ ๋ ์ธ์คํด์ค์ ์ ํ์ ๋ฐ๋ฅธ ํ๋์ ์์ฑ ์๋์ ์ ํ์ด ๋ฐ์ํ๋ค.๋ ธ๋์ ์ ์๋ ํ๋์ max-pod ์๋ ๋๋ํด๋, ์ค์ ๋ถ์ฌํ๊ณ ์ ํ๋ IP ์ ๋ถ์กฑ์ผ๋ก ํ๋์ IP๋ฅผ ํ ๋นํ์ง ๋ชปํด ํ๋๋ฅผ ์์ฑํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ
Amazon VPC CNI๋ก ๊ตฌ์ฑ๋ ๋คํธ์ํฌ ํ๊ฒฝ์ ํ์ธํด๋ณด์.์ด๋ฌํ ๊ณผ์ ์ ํตํด์ VPC CNI ๋์๊ณผ์ ์ ๋ํด์ ์ค์ ๋ก ์ด๋ป๊ฒ ํ๋ฌ๊ฐ๋์ง ์ ์ ์๋ค.์ด๋ฌํ ์ค์ต ํ๊ฒฝ์ ๊ตฌ์ถํ๊ธฐ ์ํด์๋ YAML ๋ค์ด๋ก๋๋ฅผ ํตํด์ CloudFormation ์คํ์ ์ ์ํด์ ์์ฑํ๋ฉด
์๋น์ค์ ์ธ๊ทธ๋ ์ค ๋ฌด์์ด ๋ค๋ฅธ์ง ์ดํด๋ณด๊ณ , ์ ํ๋ฆฌ์ผ์ด์ (ํ๋)์ ์ฐ๊ฒฐํ์ฌ ๊ฐ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๋ ธ์ถํด๋ณด๋๋ก ํ์.์๋น์ค๋ ๋ฌด์์ผ๊น?๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ๋ฉด, ํ๋ ์งํฉ์์ ์คํ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋คํธ์ํฌ ์๋น์ค๋ก ๋ ธ์ถํ๋ ์ถ์ํ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ๊ธฐ์ ๋์ด ์๋ค.์ฝ๊ฒ๋งํด ๋ค์๊ณผ ๊ฐ์ด ์
AWS LoadBalancer Controller ์ค์นํ๋ ๊ณผ์ ๊ณผ Seriver 4๊ณ์ธต NLB์ Ingress 7๊ณ์ธต ALB์ ๋ํด์ ์์๋ณด๊ณ ๋ฐฐํฌํด ๋ณด์.
ExternalDNS๋ ๋ฌด์์ผ๊น?ExternalName๊ณผ ํท๊ฐ๋ฆด ์ ์์ผ๋ ์ ๊น ์ง๊ณ ๋์ด๊ฐ์๋ฉด..ExternalName์ ํด๋ฌ์คํฐ ๋ด๋ถ์์ ์ธ๋ถ ์๋น์ค์ DNS ์ด๋ฆ์ ํตํด ์ ์ํ ์ ์๋๋ก ํ๋ ์๋น์ค์ด๋ค.์๋ฅผ ๋ค์ด, ์ธ๋ถ RDS์ ์ ๊ทผํ ๋ ExternalName
๐ฅ๏ธ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์์ ์ธ ๋์์ ์ํด์๋ ๋ฌด์์ด ํ์ํ ๊น?์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์์ ์ธ ๋์์ ์ํด์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ ์งํ๊ธฐ ์ํ ๐๋ฐ์ดํฐ ์ง์์ฑ์ด ํ์ํ๋ค.์ฆ, ์ปจํ ์ด๋, ํ๋, ๋ ธ๋์ ์๋ช ์ฃผ๊ธฐ์ ๋ฌด๊ดํ ์๊ตฌ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ ์คํ ๋ฆฌ์ง๊ฐ
CloudFormation์ ํตํด์ ํด๋น ์ธํ๋ผ ์ ์ฒด๋ฅผ ๊ตฌ์ถํ๊ณ , ๋ค์๊ณผ ๊ฐ์ ํ๊ฒฝ์์ ์งํ๋๋ค.๊ตฌ์ถ๋ ์ ์ฒด์ ์ธ ํ๊ฒฝ์ ๋ค์๊ณผ ๊ฐ๋ค.์ฌ๊ธฐ์ ์ผ์ชฝ์ ๋ณด๋ฉด AWS EFS๋ฅผ ์์ฑํ๊ณ ์์ ์ฉ ๋ฒ ์ค์ฒ ํธ์คํธ EC2์ ๋ง์ดํธํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.๋ง์ดํธ ํ๊ฒ์ 3๊ฐ์ ๊ฐ์ฉ์
์๊ตฌ ๋ณผ๋ฅจํ๊ฒฝ์ธ PV์ ์์ฑ์ ์ค์ ์คํ ๋ฆฌ์ง๊ฐ ์์ฑ๋๋ ์์น๋ ํฌ๊ฒ 2๊ฐ์ง์ ์ข ๋ฅ๊ฐ ์๋ค.์ด์ ์ฑํฐ์์ ์ดํด๋ณธ ๊ฒ์ฒ๋ผ Local Path Provisioner์ ๊ฐ์ด ๋ด๋ถ์ ๋ก์ปฌ ์คํ ๋ฆฌ์ง ์์ญ์ ์ฌ์ฉํ ์๋ ์๊ณ , ์ธ๋ถ ์คํ ๋ฆฌ์ง ๊ณต๊ธ์(AWS EBS, EFS)๋ฅผ ์ฌ์ฉํ
๋ณธ ๊ณผ์ ์ AWS EBS CSI Driver ์ค์น ๋ฐ ๊ตฌ์ฑ์ด ์๋ฃ๋ ์ํ์์ ์งํํฉ๋๋ค.
EFS๋ AWS์์ ์ ๊ณตํ๋ ํ์ผ์คํ ๋ฆฌ์ง๋ก EBS์ ๊ฐ์ด ๋ณ๋์ ์คํ ๋ฆฌ์ง ์ฉ๋์ด ์ง์ ๋ ๊ฒ์ด ์๋ Elasticํ๊ฒ ๋์ด๋๋ ์คํ ๋ฆฌ์ง๋ฅผ ๋งํ๋ค.์ฆ, ๋ค์์ ๊ฐ์ฉ์์ญ์์ ๋ค์์ ์ฌ์ฉ์๊ฐ ํ์ํ ๋งํผ์ ์คํ ๋ฆฌ์ง๋ฅผ ์ฌ์ฉํ ์ ์๋ค.๐EBS๋ ๋จ์ผ EC2 ์ธ์คํด์ค์ ๋ง์ดํธ๋
AWS EKS (Amazon Elastic Kubernetes Service) ์ต์ ๋น๋ฆฌํฐ(Observability)๋ EKS ํด๋ฌ์คํฐ์ ๊ฐ์์ฑ๊ณผ ๋ชจ๋ํฐ๋ง์ ํฅ์์ํค๊ธฐ ์ํ ๊ฐ๋ ๊ณผ ๋๊ตฌ๋ค์ ์๋ฏธํ๋ค.
ํ๋ก๋ฉํ ์ฐ์ค์ ์ํคํ ์ณ๋ ํ์ฅ์ฑ์ด๋ ๊ณ ๊ฐ์ฉ์ฑ์ ๋ฌธ์ ๊ฐ ์๋ค. ํ๋ก๋ฉํ ์ฐ์ค๋ ํด๋ฌ์คํฐ๋ง(์ฌ๋ฌ ๋ ธ๋์ ๋ถ์ฐ)์ด ๋์ง ์์ ๋จ์ผ ๋ ธ๋์์ ๋ชจ๋ ๋ฉํธ๋ฆญ์ด ์ฒ๋ฆฌ๋๋ฏ๋ก ๋๊ท๋ชจ ํ๊ฒฝ์์ ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ ์ ์๋ค.๋ํ ๋จ์ผ ๋ ธ๋์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด, ํด๋น ๋ ธ๋๊ฐ ๋ณต๊ตฌ๋ ๋๊น์ง ๋ฉํธ
Control Plane ๋ก๊น AWS EKS ํ๊ฒฝ์ Control Plane์ ๋ก๊น ์ ํ์ฑํ ํด๋ณด์. Control Plane์ ๋ก๊น ๊ธฐ๋ฅ์ ํ์ฑํโ ํ๋ฉด* ์๋์ผ๋ก CloudWatch๊ฐ ์์ฑ*๋๋ค๊ณ ์ด์ ๊ธ์์ ์ค๋ช ํ ๋ฐ๊ฐ ์๋ค. Control Plane์ ๋ก๊น
๋ณธ ์ค์ต์ ๋ค์๊ณผ ๊ฐ์ ํ๊ฒฝ์์ ์งํ๋์์ต๋๋ค.์ค์น๋ ํ๋ ์ ๋ณด์ค์น๋ ํ๋์ ์ด๋ฏธ์ง ์ ๋ณด (AWS ๊ณต์๊ณ์ ID : 602401143452)์ด๋ฌํ ์ด๋ฏธ์ง๋ค์ AWS์์ ์ ์์ผ๋ก ์ ๊ณตํ๊ณ ์ง์ํ๋ ๊ฒ์ด๋ฉฐ, ์ฌ์ฉ์๊ฐ EKS ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ฑํ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ฌํ ์ด๋ฏธ์ง๋ฅผ
๋ ธ๋ ์์ฒด์ ๋ก๊ทธ์ Data Plane์ ๋ก๊ทธ ํ์ธ์ EKS์์ ์ง์ํ์ง ์์ผ๋ฏ๋ก ๋ณ๋์ ๋๊ตฌ๋ก ์์งํด์ผํ๋ค.๋ํ ๋ก๊ทธ๋ฅผ ์ ํ๋ฆฌ์ผ์ด์ (์ปจํ ์ด๋)์ ์ ์ฅํ๋ ๊ฒฝ์ฐ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ก ์ฐ๊ฒฐ๋ ๋ ธ๋์ /var/log/\* ์์น์ ๋ก๊ทธ๊ฐ ์ปจํ ์ด๊ฐ ์ง์์ง ์ ํจ๊ป ์ง์์ง๋ค๋ ๋จ์ ์ด
Prometeus๐ฅ์ Grafanaโ๏ธ๋ฅผ ์ค์นํ๊ณ , ์๊ณ์ด ๋ฐ์ดํฐ์ ์์คํ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ๋ชจ๋ํฐ๋ง ํด๋ณด์!ํ๋ก๋ฉํ ์ฐ์ค์ ๊ทธ๋ผํ๋์ ๋ํ ๊ฐ๋ ์ ์ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ๋ผ.์ด๋ฒ ๊ณผ์ ์ ํ๋ก๋ฉํ ์ฐ์ค ์คํ์ ์ด์ฉํด์ ์ค์นํ ๊ฒ์ด๋ค.ํ๋ก๋ฉํ ์ฐ์ค ์คํ์ด๋, ํ๋ก๋ฉํ ์ฐ์ค ๋ชจ๋ํฐ
์ด์ ํ์ต์์ Prometheus๐ฅ๋ฅผ ํตํด์ ๋งคํธ๋ฆญ์ ์์งํ๊ณ , Prometheus์์ ์ ๊ณตํ๋ ๊ธฐ๋ณธ Graph๐๋ฅผ ์ดํด๋ณด์๋ค.ํ์ง๋ง, ๋์ฑ ๊ฐ์์ฑ ์๊ณ , ๋ณด๊ธฐ์ข๊ฒ ๋์๋ณด๋๋ฅผ ๋ด ๋ง์๋๋ก ๊ตฌ์ถํ ์๋ ์์๊น? ๋ฐ๋ก ๊ทธ๋ผํ๋โ๏ธ๋ฅผ ์ฌ์ฉํด์ ์ด๋ฅผ ๊ตฌ์ถํ ์ ์๋ค!๊ทธ๋ผํ