AWS EKS ์คํฐ๋ 7์ฃผ์ฐจ - Automation
- kkumtree
2023-06-10T15:13:19+09:00
EKS ์คํฐ๋๋ ๋ง์ง๋ง 7์ฃผ์ฐจ๋ฅผ ๋ง์ดํ์ต๋๋ค. ์ด๋ฒ์๋ AWS Controller for k8s(ACK)์ flux๋ฅผ ๊ฐ๋ณ๊ฒ ์ค์ตํด๋ณด๊ณ ์๋ํ์ ๋ํด ๋ง๋ณด๊ธฐ๋ฅผ ํด๋ณด์์ต๋๋ค. ์์ ํ์ตํด๋ณธ IRSA ๊ฐ๋ ์ธ์๋ CRD(CustomResourceDefinition)์ ํ์ฉํฉ๋๋ค. 1. ์ค์ตํ๊ฒฝ ๋ฐฐํฌ ์ค์ต์ ์ํ YAMLํ์ผ์ด ๋ณ๊ฒฝ๋๊ฑฐ ๋ง๊ณ ๋ 6์ฃผ์ฐจ์ ์ ์ฌํฉ๋๋ค. curl -O https://s3.ap-northeast-2.amazonaws.com/cloudformation.cloudneta.net/K8S/eks-oneclick6.yaml # ์ดํ ์ค๋ต # CERT_ARN(ACM)์ ๊ฒฝ์ฐ์๋ /etc/profile์ ํ๊ฒฝ๋ณ์ ์ ์ฅ์ ์ํด๋ฌ์ # ์ธ์ ์ด ๋ง๋ฃ๋๋ฉด, ๋ค์ ์ฌ์ค์ ํ์ CERT_ARN=`aws acm list-certificates --query 'CertificateSummaryList[].CertificateArn[]' --output text` echo $CERT_ARN 2. ACK(AWS Controller for k8s) ์น์ฝ์์ ์ ๊ทผํ์ง ์๊ณ ๋, AWS ์๋น์ค ๋ฆฌ์์ค๋ฅผ ์ง์ k8s์์ ์ ์ ๋ฐ ์ฌ์ฉ๊ฐ๋ฅ ์์: ACK ์ปจํธ๋กค๋ฌ ์ค์น -> IRSA ์ค์ -> AWS ๋ฆฌ์์ค ์ปจํธ๋กค ๊ฐ์ ํจํด์ผ๋ก ์ด๋ฃจ์ด์ ธ์๋๋ฐ, Cloudformation์ ์ฐ๋ค๋ณด๋ ์ค๊ฐ์ค๊ฐ ๋๊ธฐ ์๊ฐ ๋ฐ์ (23/05/29) GA: 17๊ฐ ์๋น์ค, Preview: 10๊ฐ ์๋น์ค 2-1.
AWS EKS ์คํฐ๋ 6์ฃผ์ฐจ - Security
- kkumtree
2023-06-04T06:56:52+09:00
์ด๋ฒ์๋ ๋ณด์์ ์ํ ์ธ์ฆ ๋ฐ ์ธ๊ฐ, ๊ทธ๋ฆฌ๊ณ IRSA๋ฅผ ์ค์ฌ์ผ๋ก EKS์ ๋ณด์์ ๋ํด ํ์ตํด๋ณด์์ต๋๋ค. kops ์คํฐ๋ ๋์๋ ์ ๋ชฐ๋๋๋ฐ, RBAC ๋ฟ๋ง ์๋๋ผ ๋ณต๊ธฐํ๋ค๋ณด๋… [4-1] projected Volume [4-2] AWS Load Balancer Controller IRSA ๋ฐ LB Pod mutating ์์ ๋ ๊ฐ์ง๊ฐ ์ค์ํ ํํธ๋ฅผ ์ฐจ์งํ๊ณ ์์์์ ์ ์ ์์์ต๋๋ค. Network(2์ฃผ์ฐจ)๊ฐ ๋งค๋ฒ ๋ญ๊ฐ ์ผ๋ถ๊ฐ ์๋ฆฌ์กํ์๋ค๋ฉด Security๋ ๋ณต๊ธฐํ๋ค๊ฐ ์ด๋ก ์ ์ผ๋ก๋ ๊ฐ๋จ(๊ณผ์ฐ?)ํด๋ณด์ฌ๋ ์ค์ ๊ตฌ๋๋ฐฉ์ ์ดํด ์์ฒด๊ฐ ์ด๋ฐ์ ์๋์, ์ฌํ ๋จ์ง ๊ฑธ๋ฆฐ ๋์ ๋ ์ด๋ ค์ ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ ์ธ myeks-bastion-2์ ์ ์ ์, ํจ๊ป ์งํํ ๋๋ ssh {Public IP}๋ก ์ ์ ์๋๋ ๊ฑธ ๋ดค๋๋ฐ ์ ์ ํผ์ ํ ๋ ์ ์์ด ๋์ง์์์ต๋๋ค.
AWS EKS ์คํฐ๋ 5์ฃผ์ฐจ - Autoscaling
- kkumtree
2023-05-22T19:23:37+09:00
์ด๋ฒ ์ฃผ์ฐจ๋ ์คํ ์ค์ผ์ผ๋ง์ ๋ฉ์ธ์ผ๋ก ํ์ฌ, ์ํ/์์ง ํ๋ก๋น์ ๋์ ํ์ตํด๋ณด์์ต๋๋ค. ๋ง์ง๋ง์๋ ๊ณ ์ฑ๋ฅ ์คํ ์ค์ผ์ผ๋ฌ์ธ Karpenter๋ฅผ ๋ณ๋๋ก ์ค์ตํด๋ณด์์ต๋๋ค. ํนํ.. HPA custom metrics(์ฌ์ฉ์ ์ ์ ๋ฉํธ๋ฆญ) ์ ์ฉ YAML ์ค์ ๊ฐ์ CPU๋ก ๋ง์ถ ๊ฒ์ ์๊ณ , ํ๋ก๋น์ ๋์ ์๋ชป ์์ธกํ ๊ฒ๋ ํจ๊ป ๊ณต์ ํฉ๋๋ค. AutoScaling HPA: Horizontal Pod Autoscaler VPA: Vertical Pod Autoscaler CA: Cluster Autoscaler ๊ฐ CSP ์์กด์ , ์์ปค ๋ ธ๋ ๋ ๋ฒจ์์์ ์คํ ์ค์ผ์ผ๋ง 1. ์ค์ต ํ๊ฒฝ ๋ฐฐํฌ 4์ฃผ์ฐจ์ ์ด๊ธฐ ๋ฐฐํฌ ๋ด์ฉ์ p8s ๋ฐ Grafana๋ฅผ ์ถ๊ฐํ์ฌ ๋ฐฐํฌ verticalPodAutoscaler ํ์ฑํ ์ถ์ฒ ๋์๋ณด๋: 15757, 17900, 15172 curl -O https://s3.
AWS EKS ์คํฐ๋ 4์ฃผ์ฐจ - Observability
- kkumtree
2023-05-21T06:13:52+09:00
์ด๋ฒ ์ฃผ์ฐจ์๋ Observability์ ๋ํด ์คํฐ๋๊ฐ ์งํ๋์์ต๋๋ค. ์์ ๋ชจ๋ํฐ๋ง ํด๋ค์ ์ ์ฉ ๋ฐ ์ฌ์ฉ์ด ์ค์ฌ์ ๋๋ค. ๊ทธ๋์ ๋ k8s 1.26์์ metrics์ ์ผ๋ถ ๋ช ์นญ์ด ๋ฐ๋๋ ๊ฑธ ๋ณด๊ณ ์๊ฒํ์ต๋๋ค. (etcd_db_total_size_bytes ๋์ , apiserver_storage_db_total_size_in_bytes ์ผ๋ก ๋ณ๊ฒฝ) ๋ํ kubecost์ ๊ฒฝ์ฐ, cloudformation ์คํ ์ ๊ฑฐ ํ์๋ ๋ณผ๋ฅจ ๋ฐ์ดํฐ๊ฐ ๋จ์์์ด์ ๋ณ๋๋ก ์ญ์ ํด์ผ ํ์ต๋๋ค. 1. ์ค์ตํ๊ฒฝ ๋ฐฐํฌ NAT๊ฒ์ดํธ์จ์ด, EBS addon, IAM role, ISRA for LB/EFS, PreCommand ํฌํจ ๋ ธ๋: t3.xlarge t3a.xlarge(AMD)๋ ์์ธ ๋ฆฌ์ b AZ(ap-northeast-2b)์์ ๋ฏธ์ง์ ๋ ๋ง์ ๊ฐ๋ค์ด ์ ๋ ฅ๋์ด์, ์์ฑ ์๋ฃ๊น์ง ๋ ๋ง์ ์๊ฐ์ด ์์ (์ฝ 20์ฌ๋ถ ์ด๋ด) curl -O https://s3.
AWS EKS ์คํฐ๋ 3์ฃผ์ฐจ - Storage
- kkumtree
2023-05-12T05:36:38+09:00
์ด๋ฒ ์ฃผ์ฐจ์๋ ์คํ ๋ฆฌ์ง์ ๋ํด ์ค์ต์ ์งํํด๋ณด์์ต๋๋ค. ์ง๋๋ฒ kOps ์คํฐ๋์์ ๋ค๋ฃจ์๋ ๋ด์ฉ์ด์ง๋ง, ๋ถ์กฑํ๋ ๋ด์ฉ์ ๋ณด์ถฉํ๋ฉด์ ์์ฑ์ ํด๋ณด์์ต๋๋ค. ์ฃผ์ํ ๋ด์ฉ์… NodeAffinity๋ฅผ ์ด์ฉํ ๋ผ๋ฒจ๋ง AWS EBS controller์ ๊ฒฝ์ฐ, AWS managed policy๋ฅผ ํ์ฉ AWS Volume SnapShots Controller๋ฅผ ํตํ ๋ณผ๋ฅจ ๋ฐฑ์ AWS EFS controller์์์ ๋์ ํ๋ก๋น์ ๋ AWS EKS ์ ๊ท ๋ ธ๋๊ทธ๋ฃน ์์ฑ ๋ณ๋๋ก kube-ops-view์ ๊ฒฝ์ฐ, ์น์ผ๋ก ํ์ธํ ์ ์์ ๋๊น์ง ์๊ฐ์ด ์์๋๋ค๋ ์ ์ด ์์ต๋๋ค. 1. ์ค์ต ํ๊ฒฝ ๋ฐฐํฌ 2์ฃผ์ฐจ์ ์ค์ตํ๋ ๋ด์ฉ๋ค์ ๋ฏธ๋ฆฌ ๋ฐฐํฌ AWS LB ExternalDNS kube-ops-view context ์ด๋ฆ ๋ณ๊ฒฝ ์ง๋ ๋ฒ๊น์ง pkos๊ฐ ๋จ๋ ํ์์ด ์์๋๋ฐ, ๋๋ค์์ ๋ณ๋ ์ง์ ํ ์ ์์ EFS ์์ฑ ๊ด๋ จ cloudformation์ด ์ถ๊ฐ๋์์ EFS FS ID ์กฐํ๋ฅผ ํ๊ธฐ ์ํด aws-cli ํํฐ ํ์ฉ (์ถ์ฒ: AWS Docs) # ์ค์ต YAML ํ์ผ curl -O https://s3.