# EKS ALB
{{tag>eks alb}}
### AWS Load Balancer Controller에 대한 OIDC 공급자 및 IAM 역할 생성
- region-code : ap-northeast-2
- cluster : eks-demo
eksctl utils associate-iam-oidc-provider --region region-code \
--cluster your-cluster-name --approve
eksctl utils associate-iam-oidc-provider --region ap-northeast-2 \
--cluster eks-demo --approve
### IAM 정책 다운로드
curl -o iam_policy.json https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.2.0/docs/install/iam_policy.json
### 정책 생성
aws iam create-policy --policy-name AWSLoadBalancerControllerIAMPolicy --policy-document file://iam_policy.json
### 서비스 계정 생성
eksctl create iamserviceaccount --cluster=eks-demo --namespace=kube-system --name=aws-load-balancer-controller --attach-policy-arn=arn:aws:iam::YOUR_AWS_ACCOUNT_ID:policy/AWSLoadBalancerControllerIAMPolicy --override-existing-serviceaccounts --approve
### AWS ALB Ingress Controller for Kubernetes 제거
### 설치 확인
kubectl get deployment -n kube-system alb-ingress-controller
## Helm 3.0.0을 사용하여 AWS Load Balancer Controller 설치
kubectl apply -k "github.com/aws/eks-charts/stable/aws-load-balancer-controller//crds?ref=master"
helm repo add eks https://aws.github.io/eks-charts
helm upgrade -i aws-load-balancer-controller eks/aws-load-balancer-controller \
--set clusterName=eks-demo --set serviceAccount.create=false \
--set serviceAccount.name=aws-load-balancer-controller -n kube-system
### 설치 확인
kubectl get deployment -n kube-system aws-load-balancer-controller
## Links
- https://aws.amazon.com/ko/premiumsupport/knowledge-center/eks-alb-ingress-aws-waf/