오늘도 한 뼘 더

[EKS] eksctl - AWS Load Balancer Controller 설치 본문

DevOps & Infra/K8S(Kubernetes)

[EKS] eksctl - AWS Load Balancer Controller 설치

나른한댕댕이🐶 2022. 10. 28. 16:29
728x90
반응형

  # AWS Load Balancer Controller  

쿠버네티스 클러스터의 AWS Elastic Load Balancer를 관리한다. 

https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/aws-load-balancer-controller.html

 

AWS Load Balancer Controller 추가 기능 설치 - Amazon EKS

배포된 차트는 보안 업데이트를 자동으로 수신하지 않습니다. 새 차트가 사용 가능해지면 수동으로 업그레이드해야 합니다. 업그레이드 시 이전 명령에서 install을 upgrade로 변경하되, 이전 명령

docs.aws.amazon.com

 

  # IAM 정책 생성하기  

  • 한국 리전 IAM 정책 다운로드하기
 curl -o iam_policy.json https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.4.4/docs/install/iam_policy.json

 

  • 다운로드한 정책으로 IAM 정책 만들기
 aws iam create-policy \
    --policy-name AWSLoadBalancerControllerIAMPolicy \
    --policy-document file://iam_policy.json

 

  # IAM 역할 생성  

 eksctl create iamserviceaccount \
  --cluster=${cluster-name} \
  --namespace=kube-system \
  --name=aws-load-balancer-controller \
  --role-name ${role-name} \
  --attach-policy-arn=${policy-arn} \
  --approve

IAM 권한을 사용하기 위해서는 Cluster에 IAM OIDC 제공업체가 있어야 한다고 한다. OIDC 에러가 뜨면 다음과 같이 진행 

 

  ## OIDC 공급자 확인하고 생성하기  

1. OIDC 제공업체 ID 확인

  oidc_id=$(aws eks describe-cluster \
 	--name ${cluster-name} \
    --query "cluster.identity.oidc.issuer" --output text | cut -d '/' -f 5)

 

2. IAM OIDC 여부 확인하기

결괏값이 출력이 되지 않으면 IAM OIDC 제공업체를 생성해야 한다.

 aws iam list-open-id-connect-providers | grep $oidc_id

 

3. IAM OIDC ID 생성하기

 eksctl utils associate-iam-oidc-provider \
	--cluster ${cluster-name} \
	--approve

 

  #  Helm으로 load balancer 추가  

1. eks-charts 추가

 helm repo add eks https://aws.github.io/eks-charts

 

2. eks-charts 적용

 kubectl apply -k "github.com/aws/eks-charts/stable/aws-load-balancer-controller//crds?ref=master"

 

3. load balancer 설치

 helm install aws-load-balancer-controller eks/aws-load-balancer-controller \
  -n kube-system \
  --set clusterName=${cluster-name} \
  --set serviceAccount.create=false \
  --set serviceAccount.name=aws-load-balancer-controller

 

728x90
반응형
Comments