

 **이 페이지 개선에 도움 주기** 

이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 **GitHub에서 이 페이지 편집** 링크를 선택합니다.

# 더 이상 사용되지 않는 ALB 수신 컨트롤러에서 앱 마이그레이션
<a name="lbc-remove"></a>

이 주제에서는 사용되지 않는 컨트롤러 버전에서 마이그레이션하는 방법을 설명합니다. 보다 구체적으로 AWS Load Balancer Controller의 사용되지 않는 버전을 제거하는 방법을 설명합니다.
+ 사용되지 않는 버전은 업그레이드할 수 없습니다. 먼저 제거한 다음, 최신 버전을 설치해야 합니다.
+ 사용되지 않는 버전은 다음과 같습니다.
  +  AWS ALB Ingress Controller for Kubernetes("Ingress Controller"), 이전 AWS Load Balancer Controller.
  + `0.1.x ` 버전의 AWS Load Balancer Controller

## 더 이상 사용되지 않는 컨트롤러 버전 제거
<a name="lbc-remove-desc"></a>

**참고**  
Helm을 사용하거나 Kubernetes 매니페스트를 사용하여 수동으로 사용되지 않는 버전을 설치했을 수 있습니다. 원래 설치한 도구를 사용하여 절차를 완료합니다.

1. `incubator/aws-alb-ingress-controller` 차트 Helm이 설치된 경우 제거합니다.

   ```
   helm delete aws-alb-ingress-controller -n kube-system
   ```

1. `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
   ```

1. 이 컨트롤러가 현재 설치되어 있는지 확인합니다.

   ```
   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
   ```

1. 다음 명령을 입력하여 컨트롤러를 제거합니다.

   ```
   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로 마이그레이션
<a name="lbc-migrate"></a>

ALB Ingress Controller for Kubernetes에서 AWS Load Balancer Controller로 마이그레이션하려면 다음을 수행해야 합니다.

1. ALB Ingress Controller를 제거합니다(위 내용 참조).

1.  [AWS 로드 밸런서 컨트롤러를 설치합니다.](aws-load-balancer-controller.md#lbc-overview)

1. AWS Load Balancer Controller에서 사용하는 IAM 역할에 정책을 더 추가합니다. 이 정책은 LBC가 ALB Ingress Controller for Kubernetes에서 생성한 리소스를 관리할 수 있도록 허용합니다.

1. IAM 정책을 다운로드합니다. 이 정책을 통해 AWS Load Balancer Controller가 ALB Ingress Controller for Kubernetes에서 생성한 리소스를 관리할 수 있습니다. [정책을 볼](https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/main/docs/install/iam_policy_v1_to_v2_additional.json) 수도 있습니다.

   ```
   curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.14.1/docs/install/iam_policy_v1_to_v2_additional.json
   ```

1. 클러스터가 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
   ```

1. IAM 정책을 생성하고 반환된 ARN 적어둡니다.

   ```
   aws iam create-policy \
     --policy-name AWSLoadBalancerControllerAdditionalIAMPolicy \
     --policy-document file://iam_policy_v1_to_v2_additional.json
   ```

1. IAM 정책을 AWS Load Balancer Controller에서 사용하는 IAM 역할에 연결합니다. *your-role-name*을 역할의 이름(예: `AmazonEKSLoadBalancerControllerRole`)으로 바꿉니다.

   `eksctl`을 사용하여 역할을 생성한 경우 생성된 역할 이름을 찾으려면 [AWS CloudFormation 콘솔](https://console.aws.amazon.com/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
   ```