

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

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

# Amazon Linux 2에서 Amazon Linux 2023으로 업그레이드
<a name="al2023"></a>

**주의**  
Amazon EKS는 2025년 11월 26일 이후 더 이상 EKS 최적화 Amazon Linux 2(AL2) AMI 게시를 중지했습니다. Amazon EKS에 대한 AL2023 및 Bottlerocket 기반 AMI는 1.33 이상을 포함하여 지원되는 모든 Kubernetes 버전에서 사용할 수 있습니다.

AL2023은 클라우드 애플리케이션에 안전하고 안정적이면서 고성능의 환경을 제공하도록 설계된 Linux 기반 운영 체제입니다. Amazon Web Services의 차세대 Amazon Linux로, 지원되는 모든 Amazon EKS 버전에서 사용할 수 있습니다.

AL2023은 AL2에 비해 몇 가지 향상된 기능을 제공합니다. 전체 비교는 **Amazon Linux 2023 사용 설명서의 [AL2와 Amazon Linux 2023 비교](https://docs.aws.amazon.com/linux/al2023/ug/compare-with-al2.html)를 참조하세요. AL2에서 여러 패키지가 추가, 업그레이드 및 제거되었습니다. 업그레이드하기 전에 AL2023 버전으로 애플리케이션을 테스트하는 것이 좋습니다. AL2023 패키지의 모든 변경 사항 목록은 **Amazon Linux 2023 릴리스 정보의 [Amazon Linux 2023의 패키지 변경 사항](https://docs.aws.amazon.com/linux/al2023/release-notes/compare-packages.html)을 참조하세요.

이러한 변경 사항 외에도 다음 사항을 숙지해야 합니다.
+ AL2023에 YAML 구성 스키마를 사용하는 새로운 노드 초기화 프로세스 `nodeadm`이 도입됩니다. 자체 관리형 노드 그룹 또는 시작 템플릿이 있는 AMI를 사용하는 경우 이제 새 노드 그룹을 생성할 때 추가 클러스터 메타데이터를 명시적으로 제공해야 합니다. 최소 필수 파라미터의 [예시](https://awslabs.github.io/amazon-eks-ami/nodeadm/)는 다음과 같으며, 여기에서 `apiServerEndpoint`, `certificateAuthority` 및 서비스 `cidr`가 필수입니다.

  ```
  ---
  apiVersion: node.eks.aws/v1alpha1
  kind: NodeConfig
  spec:
    cluster:
      name: my-cluster
      apiServerEndpoint: https://example.com
      certificateAuthority: Y2VydGlmaWNhdGVBdXRob3JpdHk=
      cidr: 10.100.0.0/16
  ```

  AL2에서 이러한 파라미터의 메타데이터는 Amazon EKS `DescribeCluster` API 직접 호출에서 확인되었습니다. AL2023 버전에서는 대형 노드 스케일 업 도중 추가 API 직접 호출로 인해 제한이 발생할 위험이 있기 때문에 이러한 동작이 변경되었습니다. 시작 템플릿이 없는 관리형 노드 그룹을 사용하거나 Karpenter를 사용하는 경우 이 변경 사항이 영향을 미치지 않습니다. `certificateAuthority` 및 서비스 `cidr`에 대한 자세한 내용은 *Amazon EKS API 참조*의 [https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeCluster.html](https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeCluster.html)를 참조하세요.
+ AL2023의 경우 `nodeadm`은 각 노드에 대해 [https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec)을 사용하여 파라미터를 `kubelet`에 적용하도록 형식도 변경합니다. AL2에서는 `--kubelet-extra-args` 파라미터를 사용하여 이 작업을 수행했습니다. 이는 일반적으로 노드에 레이블과 테인트를 추가하는 데 사용됩니다. 아래 예제는 노드에 `maxPods` 및 `--node-labels`를 적용하는 방법을 보여줍니다.

  ```
  ---
  apiVersion: node.eks.aws/v1alpha1
  kind: NodeConfig
  spec:
    cluster:
      name: test-cluster
      apiServerEndpoint: https://example.com
      certificateAuthority: Y2VydGlmaWNhdGVBdXRob3JpdHk=
      cidr: 10.100.0.0/16
    kubelet:
      config:
        maxPods: 110
      flags:
        - --node-labels=karpenter.sh/capacity-type=on-demand,karpenter.sh/nodepool=test
  ```
+ AL2023의 경우 Amazon VPC CNI 버전 `1.16.2` 이상이 필요합니다.
+ AL2023의 필수 기본값은 `IMDSv2`입니다. `IMDSv2`에는 보안 태세 개선에 도움이 되는 몇 가지 이점이 있습니다. 세션을 시작하려면 간단한 HTTP PUT 요청으로 비밀 토큰을 생성해야 하는 세션 지향 인증 방법을 사용합니다. 세션의 토큰은 1초에서 6시간 사이로 유효할 수 있습니다. `IMDSv1`에서 `IMDSv2`로 전환하는 방법에 대한 자세한 내용은 [인스턴스 메타데이터 서비스 버전 2 사용으로 전환](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-transition-to-version-2.html) 및 [Get the full benefits of IMDSv2 and disable IMDSv1 across your AWS infrastructure](https://aws.amazon.com/blogs/security/get-the-full-benefits-of-imdsv2-and-disable-imdsv1-across-your-aws-infrastructure)를 참조하세요. `IMDSv1`을 사용하려는 경우 인스턴스 메타데이터 옵션 시작 속성을 사용하여 설정을 수동으로 재정의하면 계속 사용할 수 있습니다.
**참고**  
AL2023을 사용하는 `IMDSv2`의 경우 관리형 노드 그룹의 기본 홉 수가 다를 수 있습니다.  
시작 템플릿을 사용하지 않을 때 기본값은 `1`로 설정됩니다. 따라서 컨테이너는 IMDS를 사용하여 노드의 자격 증명에 액세스할 수 없습니다. 노드의 자격 증명에 대한 컨테이너 액세스가 필요한 경우에도 [사용자 지정 Amazon EC2 시작 템플릿](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-metadataoptions.html)을 사용하면 가능합니다.
시작 템플릿에서 사용자 지정 AMI를 사용할 때 `HttpPutResponseHopLimit` 기본값은 `2`로 설정됩니다. 시작 템플릿에서 `HttpPutResponseHopLimit`를 수동으로 재정의할 수 있습니다.
또는 [Amazon EKS Pod Identity](pod-identities.md)를 사용하여 `IMDSv2` 대신 자격 증명을 제공할 수 있습니다.
+ AL2023에는 차세대 통합 제어 그룹 계층 구조(`cgroupv2`)가 있습니다. `cgroupv2`는 컨테이너 런타임을 구현하는 데 사용되며, `systemd`에 따라 사용됩니다. AL2023에 시스템이 `cgroupv1`을 사용하여 실행하도록 할 수 있는 코드가 포함되어 있지만 이 구성은 권장되거나 지원되지 않습니다. 이 구성은 Amazon Linux의 향후 메이저 릴리스에서 완전히 제거될 예정입니다.
+  `eksctl`이 AL2023을 지원하려면 `eksctl` 버전 `0.176.0` 이상이 필요합니다.

기존 관리형 노드 그룹의 경우 시작 템플릿을 사용하는 방식에 따라 인플레이스 업그레이드 또는 블루/그린 업그레이드를 수행할 수 있습니다.
+ 관리형 노드 그룹에서 사용자 지정 AMI를 사용하는 경우 시작 템플릿에서 AMI ID를 교체하여 인플레이스 업그레이드를 수행할 수 있습니다. 이 업그레이드 전략을 수행하기 전에 먼저 애플리케이션과 사용자 데이터가 AL2023으로 전송되는지 확인해야 합니다.
+ 표준 시작 템플릿 또는 AMI ID를 지정하지 않은 사용자 지정 시작 템플릿에서 관리형 노드 그룹을 사용하는 경우 블루/그린 전략을 사용하여 업그레이드해야 합니다. 블루/그린 업그레이드는 대체로 더 복잡하고 AMI 유형으로 AL2023을 지정하는 완전히 새로운 노드 그룹을 생성해야 합니다. 이후 AL2 노드 그룹의 모든 사용자 지정 데이터가 새 OS와 호환되도록 새 노드 그룹을 신중하게 구성해야 합니다. 애플리케이션에서 새 노드 그룹을 테스트하고 검증한 후에는 이전 노드 그룹에서 새 노드 그룹으로 포드를 마이그레이션할 수 있습니다. 마이그레이션이 완료되면 이전 노드 그룹을 삭제할 수 있습니다.

Karpenter를 사용 중이고 AL2023을 사용하려는 경우 `EC2NodeClass` `amiFamily` 필드를 AL2023으로 수정해야 합니다. 기본적으로 드리프트는 Karpenter에서 활성화됩니다. 따라서 `amiFamily` 필드가 변경되면 Karpenter에서 사용 가능할 때 워커 노드를 최신 AMI로 자동으로 업데이트합니다.

## nodeadm에 대한 추가 정보
<a name="_additional_information_about_nodeadm"></a>

EKS 최적화 Amazon Linux 2023 AMI를 사용하거나 공식 amazon-eks-ami GitHub 리포지토리에 제공된 Packer 스크립트를 통해 사용자 지정 EKS Amazon Linux 2023 AMI를 빌드하는 경우 EC2 사용자 데이터 내에서 또는 사용자 지정 AMI의 일부로 nodeadm init를 명시적으로 실행해서는 안 됩니다.

user-data에서 동적 NodeConfig를 생성하려면 해당 구성을 `/etc/eks/nodeadm.d`의 드롭인 yaml 또는 json 파일에 쓸 수 있습니다. 이러한 구성 파일은 nodeadm init가 부팅 프로세스의 후반부에서 자동으로 시작될 때 병합되어 노드에 적용됩니다. 예제:

```
cat > /etc/eks/nodeadm.d/additional-node-labels.yaml << EOF
apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig
spec:
  kubelet:
    flags:
      - --node-labels=foo=bar
EOF
```

EKS 최적화 Amazon Linux 2023 AMI는 별도의 systemd 서비스를 통해 2단계로 nodeadm init를 자동으로 실행합니다(nodeadm-config는 사용자 데이터 실행 전에 실행되지만, nodeadm-run은 이후에 실행됨). nodeadm-config 서비스는 사용자 데이터가 실행되기 전에 Containered 및 kubelet에 대한 기준 구성을 설정합니다. nodeadm-run 서비스는 시스템 선택 대몬을 실행하고 사용자 데이터 실행 후 최종 구성을 완료합니다. nodeadm init 명령이 사용자 데이터 또는 사용자 지정 AMI를 통해 추가적으로 실행되는 경우 실행 순서에 대한 가정을 위반할 수 있으며 이로 인해 잘못 구성된 ENI와 같이 예상치 못한 결과로 이어질 수 있습니다.