이 페이지 개선에 도움 주기
이 사용자 설명서에 기여하고 싶으신가요? 이 페이지 하단으로 스크롤하여 GitHub에서 이 페이지 편집을 선택하세요. 여러분의 기여는 모두를 위한 더 나은 사용자 설명서를 만드는 데 도움이 됩니다.
더 이상 사용되지 않는 AWSIngress Controller에서 앱 이전
이 주제에서는 사용되지 않는 컨트롤러 버전에서 마이그레이션하는 방법을 설명합니다. 보다 구체적으로 AWS Load Balancer Controller의 사용되지 않는 버전을 제거하는 방법을 설명합니다.
-
사용되지 않는 버전은 업그레이드할 수 없습니다. 먼저 제거한 다음, 최신 버전을 설치해야 합니다.
-
사용되지 않는 버전은 다음과 같습니다.
-
AWS ALB Ingress Controller for Kubernetes("Ingress Controller"), 이전 AWS Load Balancer Controller.
-
AWS Load Balancer Controller의 모든
0.1.x
버전
-
더 이상 사용되지 않는 컨트롤러 버전 제거
참고
Helm을 사용하거나 Kubernetes 매니페스트를 사용하여 수동으로 사용되지 않는 버전을 설치했을 수 있습니다. 원래 설치한 도구를 사용하여 절차를 완료합니다.
Helm을 사용하여 Ingress Controller 제거
-
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
Kubernetes 매니페스트를 사용하여 Ingress Controller 제거
-
이 컨트롤러가 현재 설치되어 있는지 확인합니다.
$
kubectl get deployment -n kube-system alb-ingress-controller
컨트롤러가 설치되어 있지 않은 경우의 출력입니다.
서버에서 발생한 오류(찾을 수 없음): deployments.apps "alb-ingress-controller"를 찾을 수 없음
컨트롤러가 설치된 경우의 출력입니다.
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에서 생성한 리소스를 관리할 수 있도록 허용합니다.
AWS Load Balancer Controller IAM 역할에 마이그레이션 정책을 추가합니다.
-
IAM 정책을 다운로드합니다. 이 정책을 통해 AWS Load Balancer Controller가 ALB Ingress Controller for Kubernetes에서 생성한 리소스를 관리할 수 있습니다. 정책을 볼
수도 있습니다. $
curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.7.2/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 -
AWS Load Balancer Controller에서 사용하는 IAM 역할에 IAM 정책을 연결합니다.
을 역할의 이름(예:your-role-name
AmazonEKSLoadBalancerControllerRole
)으로 바꿉니다.eksctl
을 사용하여 역할을 생성한 경우 생성된 역할 이름을 찾으려면 AWS CloudFormation 콘솔을 열고 eksctl- my-cluster
-addon-iamserviceaccount-kube-system-aws-load-balancer-controller 스택을 선택합니다. 리소스(Resources) 탭을 선택합니다. 실제 ID(Physical ID) 열에 역할 이름이 있습니다. 클러스터가 AWS GovCloud(미국 동부) 또는 AWS GovCloud(미국 서부) AWS 리전에 있는 경우arn:aws:
를arn:aws-us-gov:
로 바꿉니다.$
aws iam attach-role-policy \ --role-name
your-role-name
\ --policy-arn arn:aws:iam::111122223333
:policy/AWSLoadBalancerControllerAdditionalIAMPolicy