이 페이지 개선에 도움 주기
이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다.
이 주제에서는 사용되지 않는 컨트롤러 버전에서 마이그레이션하는 방법을 설명합니다. 보다 구체적으로 AWS Load Balancer Controller의 사용되지 않는 버전을 제거하는 방법을 설명합니다.
-
사용되지 않는 버전은 업그레이드할 수 없습니다. 먼저 제거한 다음, 최신 버전을 설치해야 합니다.
-
사용되지 않는 버전은 다음과 같습니다.
-
AWS ALB Ingress Controller for Kubernetes("Ingress Controller"), 이전 AWS Load Balancer Controller.
-
0.1.
버전의 AWS Load Balancer Controllerx
-
더 이상 사용되지 않는 컨트롤러 버전 제거
참고
Helm을 사용하거나 Kubernetes 매니페스트를 사용하여 수동으로 사용되지 않는 버전을 설치했을 수 있습니다. 원래 설치한 도구를 사용하여 절차를 완료합니다.
-
incubator/aws-alb-ingress-controller
차트 Helm이 설치된 경우 제거합니다.helm delete aws-alb-ingress-controller -n kube-system
-
eks-charts/aws-load-balancer-controller
차트의 버전0.1.
이 설치된 경우 제거합니다. 버전x
0.1.
에서x
1.0.0
으로의 업그레이드는 웹후크 API 버전과 호환되지 않아 작동되지 않습니다.helm delete aws-load-balancer-controller -n kube-system
-
이 컨트롤러가 현재 설치되어 있는지 확인합니다.
kubectl get deployment -n kube-system alb-ingress-controller
컨트롤러가 설치되어 있지 않은 경우의 출력입니다.
Error from server (NotFound): deployments.apps "alb-ingress-controller" not found
컨트롤러가 설치된 경우의 출력입니다.
NAME READY UP-TO-DATE AVAILABLE AGE alb-ingress-controller 1/1 1 1 122d
-
다음 명령을 입력하여 컨트롤러를 제거합니다.
kubectl delete -f https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/v1.1.8/docs/examples/alb-ingress-controller.yaml kubectl delete -f https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/v1.1.8/docs/examples/rbac-role.yaml
AWS Load Balancer Controller로 마이그레이션
ALB Ingress Controller for Kubernetes에서 AWS Load Balancer Controller로 마이그레이션하려면 다음을 수행해야 합니다.
-
ALB Ingress Controller를 제거합니다(위 내용 참조).
-
AWS Load Balancer Controller에서 사용하는 IAM 역할에 정책을 더 추가합니다. 이 정책은 LBC가 ALB Ingress Controller for Kubernetes에서 생성한 리소스를 관리할 수 있도록 허용합니다.
-
IAM 정책을 다운로드합니다. 이 정책을 통해 AWS Load Balancer Controller가 ALB Ingress Controller for Kubernetes에서 생성한 리소스를 관리할 수 있습니다. 정책을 볼
수도 있습니다. curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.11.0/docs/install/iam_policy_v1_to_v2_additional.json
-
클러스터가 AWS GovCloud(미국 동부) 또는 AWS GovCloud(미국 서부) AWS 리전에 있는 경우,
arn:aws:
를arn:aws-us-gov:
로 대체합니다.sed -i.bak -e 's|arn:aws:|arn:aws-us-gov:|' iam_policy_v1_to_v2_additional.json
-
IAM 정책을 생성하고 반환된 ARN 적어둡니다.
aws iam create-policy \ --policy-name AWSLoadBalancerControllerAdditionalIAMPolicy \ --policy-document file://iam_policy_v1_to_v2_additional.json
-
IAM 정책을 AWS Load Balancer Controller에서 사용하는 IAM 역할에 연결합니다.
your-role-name
을 역할의 이름(예:AmazonEKSLoadBalancerControllerRole
)으로 바꿉니다.eksctl
을 사용하여 역할을 생성한 경우 생성된 역할 이름을 찾으려면 AWS CloudFormation 콘솔을 열고 eksctl- my-cluster
-addon-iamserviceaccount-kube-system-aws-load-balancer-controller 스택을 선택합니다. 리소스 탭을 선택합니다. 물리적 ID 열에 역할 이름이 있습니다.aws iam attach-role-policy \ --role-name your-role-name \ --policy-arn arn:aws:iam::111122223333:policy/AWSLoadBalancerControllerAdditionalIAMPolicy