확장 지원 Kubernetes 버전에 대한 릴리스 정보 검토 - Amazon EKS

확장 지원 Kubernetes 버전에 대한 릴리스 정보 검토

이 주제에서는 추가 지원의 각 Kubernetes 버전에 대해 알아야 할 중요한 변경 사항을 제공합니다. 업그레이드할 때는 클러스터의 이전 버전과 새 버전 간에 발생한 변경 사항을 주의 깊게 검토하세요.

Kubernetes 1.27

이제 Kubernetes 1.27는 Amazon EKS에서 사용 가능합니다. Kubernetes 1.27에 대한 자세한 내용을 알아보려면 공식 릴리스 발표를 참조하세요.

중요
  • 알파 seccomp 주석 seccomp.security.alpha.kubernetes.io/pod 및 container.seccomp.security.alpha.kubernetes.io 주석에 대한 지원이 제거되었습니다. 알파 seccomp 주석은 1.19에서 더 이상 사용되지 않으며 1.27에서 제거됨에 따라 seccomp 주석이 있는 Pods에 대해 seccomp 필드가 더 이상 자동으로 채워지지 않습니다. 대신 Pods 또는 컨테이너에 securityContext.seccompProfile 필드를 사용하여 seccomp 프로파일을 구성합니다. 클러스터에서 더 이상 사용되지 않는 알파 seccomp 주석을 사용하고 있는지 확인하려면 다음 명령을 실행합니다.

    kubectl get pods --all-namespaces -o json | grep -E 'seccomp.security.alpha.kubernetes.io/pod|container.seccomp.security.alpha.kubernetes.io'
  • kubelet에 대한 --container-runtime 명령줄 인수가 제거되었습니다. Amazon EKS의 기본 컨테이너 런타임은 1.24부터 containerd가 되어 컨테이너 런타임을 지정할 필요가 없습니다. 1.27부터 Amazon EKS는 부트스트랩 스크립트에 전달된 --container-runtime 인수를 무시합니다. 노드 부트스트랩 프로세스 중 오류를 방지하기 위해 이 인수를 --kubelet-extra-args에 전달하지 않는 것이 중요합니다. 모든 노드 생성 워크플로 및 빌드 스크립트에서 --container-runtime 인수를 제거해야 합니다.

  • Kubernetes 1.27의 kubelet은 기본  kubeAPIQPS를 50으로, kubeAPIBurst를 100으로 늘렸다. 이러한 향상된 기능을 통해 kubelet은 더 많은 양의 API 쿼리를 처리하여 응답 시간과 성능을 개선할 수 있습니다. 조정 요구 사항으로 인해 Pods에 대한 수요가 증가하면 수정된 기본값을 통해 kubelet이 증가한 워크로드를 효율적으로 관리할 수 있습니다. 결과적으로 Pod 실행이 더 빨라지고 클러스터 작업이 더 효과적입니다.

  • 보다 세분화된 Pod 토폴로지를 사용하여 minDomain과 같은 정책을 분산할 수 있습니다. 이 파라미터는 Pods가 분산되어야 하는 최소 도메인 수를 지정할 수 있는 기능을 제공합니다. nodeAffinityPolicy 및 nodeTaintPolicy를 사용하면 더 세부적으로 Pod 배포를 관리할 수 있습니다. 이는 노드 친화도, 테인트 및 Pod’s 사양의 topologySpreadConstraints에 있는 matchLabelKeys 필드에 따른 것입니다. 이를 통해 롤링 업그레이드 후 계산을 분산하기 위해 Pods를 선택할 수 있습니다.

  • Kubernetes 1.27PersistentVolumeClaims(PVCs)의 수명을 제어하는 StatefulSets에 대한 새로운 정책 메커니즘을 베타 버전으로 승격했습니다. 새로운 PVC 보존 정책을 사용하면 StatefulSet가 삭제되거나 StatefulSet의 복제본이 스케일 다운될 때 StatefulSet 사양 템플릿에서 생성된 PVCs를 자동으로 삭제할지 아니면 유지할지 지정할 수 있습니다.

  • Kubernetes API 서버의 goaway-chance 옵션은 연결을 무작위로 종료하여 HTTP/2 클라이언트 연결이 단일 API 서버 인스턴스에서 중단되는 것을 방지합니다. 연결이 닫히면 클라이언트가 다시 연결을 시도하고 로드 밸런싱의 결과로 다른 API 서버에 도달할 가능성이 높습니다. Amazon EKS 버전 1.27은 goaway-chance 플래그를 활성화했습니다. Amazon EKS 클러스터에서 실행 중인 워크로드가 HTTP GOAWAY와 호환되지 않는 클라이언트를 사용하는 경우, 연결 종료 시 다시 연결하여 GOAWAY를 처리하도록 클라이언트를 업데이트하는 것이 좋습니다.

전체 Kubernetes 1.27 변경 로그를 확인하려면 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.27.md#changelog-since-v1260을 참조하세요.

Kubernetes 1.26

이제 Kubernetes 1.26는 Amazon EKS에서 사용 가능합니다. Kubernetes 1.26에 대한 자세한 내용을 알아보려면 공식 릴리스 발표를 참조하세요.

중요

Kubernetes 1.26는 더 이상 CRI v1alpha2를 지원하지 않습니다. 이로 인해 컨테이너 런타임이 CRI v1을 지원하지 않는 경우 kubelet이(가) 더 이상 노드를 등록하지 않습니다. 또한 이는 Kubernetes 1.26이 containerd 마이너 버전 1.5 이하를 지원하지 않음을 의미합니다. containerd를 사용하는 경우 노드를 Kubernetes 1.26으로 업그레이드하기 전에 containerd 버전 1.6.0 이상으로 업그레이드해야 합니다. v1alpha2만 지원하는 다른 컨테이너 런타임도 업그레이드해야 합니다. 자세한 내용은 컨테이너 런타임 공급업체에 문의하세요. 기본적으로 Amazon Linux 및 Bottlerocket AMI에는 containerd 버전 1.6.6이 포함됩니다.

  • Kubernetes 1.26으로 업그레이드하기 전에 Amazon VPC CNI plugin for Kubernetes를 버전 1.12 이상으로 업그레이드하세요. Amazon VPC CNI plugin for Kubernetes 버전 1.12 이상으로 업그레이드하지 않으면 Amazon VPC CNI plugin for Kubernetes가 충돌합니다. 자세한 내용은 Amazon VPC CNI 단원을 참조하십시오.

  • Kubernetes API 서버의 goaway-chance 옵션은 연결을 무작위로 종료하여 HTTP/2 클라이언트 연결이 단일 API 서버 인스턴스에서 중단되는 것을 방지합니다. 연결이 닫히면 클라이언트가 다시 연결을 시도하고 로드 밸런싱의 결과로 다른 API 서버에 도달할 가능성이 높습니다. Amazon EKS 버전 1.26은 goaway-chance 플래그를 활성화했습니다. Amazon EKS 클러스터에서 실행 중인 워크로드가 HTTP GOAWAY와 호환되지 않는 클라이언트를 사용하는 경우, 연결 종료 시 다시 연결하여 GOAWAY를 처리하도록 클라이언트를 업데이트하는 것이 좋습니다.

전체 Kubernetes 1.26 변경 로그를 확인하려면 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.26.md#changelog-since-v1250을 참조하세요.

Kubernetes 1.25

이제 Kubernetes 1.25는 Amazon EKS에서 사용 가능합니다. Kubernetes 1.25에 대한 자세한 내용을 알아보려면 공식 릴리스 발표를 참조하세요.

중요
  • Amazon EC2 P2 인스턴스는 NVIDIA 드라이버 버전 470 이하가 필요하기 때문에 Amazon EKS에서 지원되지 않습니다.

  • PodSecurityPolicy (PSP)가 Kubernetes 1.25에서 제거됩니다. PSPs는 포드 보안 승인(PSA) 및 보드 보안 표준 (PSS)으로 대체됩니다. PSA은 PSS에서 간략히 설명된 보안 컨트롤을 구현하는 기본 제공 승인 컨트롤러입니다. PSA 및 PSS은 Kubernetes 1.25에서 안정화 상태로 전환되며 기본적으로 Amazon EKS에서 활성화됩니다. 클러스터에 PSPs가 있는 경우 클러스터를 버전 1.25으로 업그레이드하기 전에 PSP를 빌트인 Kubernetes PSS 또는 policy-as-code 솔루션으로 마이그레이션해야 합니다. PSP에서 마이그레이션하지 않으면 워크로드가 중단될 수 있습니다. 자세한 내용은 레거시 포드 보안 정책(PSP)에서 마이그레이션을 참조하세요.

  • Kubernetes 버전 1.25에는 API 우선순위 및 공정성(APF) 이라는 기존 기능의 동작을 변경하는 변경 사항이 포함되어 있습니다. APF는 요청량이 급증하는 기간에 잠재적인 과부하로부터 API 서버를 보호하는 역할을 합니다. 이렇게 하려면 특정 시점에 처리할 수 있는 동시 요청 수를 제한해야 합니다. 이는 다양한 워크로드 또는 사용자로부터 발생하는 요청에 고유한 우선 순위 수준과 제한을 적용하여 달성됩니다. 이 접근 방식은 중요한 애플리케이션 또는 우선 순위가 높은 요청이 우선적으로 처리되도록 하는 동시에 우선 순위가 낮은 요청이 API 서버에 부담을 주지 않도록 합니다. 자세한 내용은 Kubernetes 문서의 API 우선순위 및 공정성 또는 EKS 모범 사례 가이드의 API 우선순위 및 공정성을 참조하세요.

    이러한 업데이트는 PR #10352 및 PR #118601에 도입되었습니다. 이전에는 APF가 모든 유형의 요청을 일률적으로 처리했으며, 각 요청은 단일 단위의 동시 요청 한도를 소비했습니다. APF 동작 변경은 이러한 요청에 따라 API 서버에 부과되는 예외적으로 무거운 부하로 인해 LIST 요청에 더 높은 동시성 단위를 할당합니다. API 서버는 LIST 요청에 따라 반환할 객체 수를 추정합니다. 반환되는 객체 수에 비례하는 동시성 단위를 할당합니다.

    Amazon EKS 버전 1.25 이상으로 업그레이드할 때 이 업데이트된 동작으로 인해 LIST 요청이 많은 워크로드(이전에는 문제 없이 작동했지만)에서 속도 제한이 발생할 수 있습니다. 이는 HTTP 429 응답 코드로 표시됩니다. LIST요청 속도가 제한되어 있으므로 잠재적인 워크로드 중단을 방지하기 위해 이러한 요청의 비율을 줄이려면 워크로드를 재구성하는 것이 아주 좋습니다. 아니면 APF 설정을 조정하여 필수 요청에는 더 많은 용량을 할당하고 필수가 아닌 요청에는 할당되는 용량을 줄임으로써 이 문제를 해결할 수 있습니다. 이러한 완화 기술에 대한 자세한 내용은 EKS 모범 사례 가이드의 요청 삭제 방지을 참조하세요.

  • Amazon EKS 1.25에는 업데이트된 YAML 라이브러리가 포함된 향상된 클러스터 인증 기능이 포함되어 있습니다. kube-system 네임스페이스에서 검색된 aws-auth ConfigMap의 YAML 값이 첫 번째 문자가 중괄호인 매크로로 시작하는 경우 중괄호({ }) 앞뒤에 따옴표(" ")를 추가해야 합니다. 이는 Amazon EKS 1.25aws-authConfigMap에서 aws-iam-authenticator 버전 v0.6.3이 정확하게 파싱되도록하는 데 필요합니다.

  • EndpointSlice의 베타 API 버전(discovery.k8s.io/v1beta1)은 Kubernetes 1.21에서 더 이상 사용되지 않으며 Kubernetes 1.25 일자로 더 이상 제공되지 않습니다. 이 API는 discovery.k8s.io/v1로 업데이트되었습니다. 자세한 내용은 Kubernetes 설명서에서 EndpointSlice를 참조하세요. AWS Load Balancer Controller v2.4.6 및 이전 버전에서는 v1beta1 엔드포인트를 사용하여 EndpointSlices와 통신했습니다. AWS Load Balancer Controller에 대한 EndpointSlices 구성을 사용하는 경우 Amazon EKS 클러스터를 1.25로 업그레이드하기 에 AWS Load Balancer Controller v2.4.7로 업그레이드해야 합니다. AWS Load Balancer Controller에 대한 EndpointSlices 구성을 사용하는 동안 1.25로 업그레이드하면 컨트롤러가 충돌하여 워크로드가 중단됩니다. 컨트롤러를 업그레이드하려면 AWS 로드 밸런서 컨트롤러를 통해 인터넷 트래픽 라우팅 부분을 참조하세요.

  • HorizontalPodAutoscaler의 베타 API 버전(autoscaling/v2beta1)은 더 이상 Kubernetes 1.25에서 제공되지 않습니다. 이 API는 1.23 버전에서 더 이상 사용되지 않습니다. autoscaling/v2 HorizontalPodAutoscaler API 버전을 사용하도록 매니페스트와 API 클라이언트를 마이그레이션하세요. 자세한 내용은 Kubernetes 설명서를 참조하십시오.

  • SeccompDefault이 Kubernetes 1.25의 베타로 승격되었습니다. kubelet를 구성할 때 --seccomp-default 플래그를 설정하면 컨테이너 런타임은 무제한(seccomp disabled) 모드가 아닌 해당 RuntimeDefaultseccomp 프로필을 사용합니다. 기본 프로필은 워크로드의 기능을 유지하면서 강력한 보안 기본값 세트를 제공합니다. 이 플래그를 사용할 수 있지만 Amazon EKS는 기본적으로 이 플래그를 활성화하지 않으므로 Amazon EKS 동작은 사실상 변경되지 않습니다. 원하는 경우 노드에서 이 기능을 활성화할 수 있습니다. 자세한 내용은 Kubernetes 설명서의 seccomp를 사용한 컨테이너의 Syscalls 제한 튜토리얼을 참조하세요.

  • Docker(dockershim이라고도 함)의 CRI(컨테이너 런타임 인터페이스) 지원은 Kubernetes 1.24 이후 버전에서 제거되었습니다. Kubernetes 1.24 이후 클러스터에 대한 Amazon EKS 공식 AMIs의 유일한 컨테이너 런타임은 containerd입니다. Amazon EKS 1.24 또는 이후 버전으로 업그레이드하기 전에 더는 지원되지 않는 부트스트랩 스크립트 플래그에 대한 참조를 제거하세요. 자세한 내용은 dockershim에서 containerd로 마이그레이션 단원을 참조하십시오.

  • 와일드카드 쿼리에 대한 지원은 CoreDNS 1.8.7에서 더 이상 사용되지 않으며 CoreDNS 1.9에서 제거되었습니다. 이는 보안 조치로 수행되었습니다. 와일드카드 쿼리는 더 이상 작동하지 않으며 IP 주소 대신 NXDOMAIN을 반환합니다.

  • Kubernetes API 서버의 goaway-chance 옵션은 연결을 무작위로 종료하여 HTTP/2 클라이언트 연결이 단일 API 서버 인스턴스에서 중단되는 것을 방지합니다. 연결이 닫히면 클라이언트가 다시 연결을 시도하고 로드 밸런싱의 결과로 다른 API 서버에 도달할 가능성이 높습니다. Amazon EKS 버전 1.25은 goaway-chance 플래그를 활성화했습니다. Amazon EKS 클러스터에서 실행 중인 워크로드가 HTTP GOAWAY와 호환되지 않는 클라이언트를 사용하는 경우, 연결 종료 시 다시 연결하여 GOAWAY를 처리하도록 클라이언트를 업데이트하는 것이 좋습니다.

전체 Kubernetes 1.25 변경 로그를 확인하려면 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.25.md#changelog-since-v1240을 참조하세요.

Kubernetes 1.24

이제 Kubernetes 1.24는 Amazon EKS에서 사용 가능합니다. Kubernetes 1.24에 대한 자세한 내용을 알아보려면 공식 릴리스 발표를 참조하세요.

중요
  • Kubernetes 1.24부터 새 베타 API가 기본적으로 클러스터에서 활성화되어 있지 않습니다. 기본적으로 기존 베타 API와 기존 베타 API의 새 버전이 계속 활성화되어 있습니다. Amazon EKS에서는 업스트림 Kubernetes 1.24와 동일한 동작을 따릅니다. 새 기능을 제어하는 기능 게이트는 새 API 작업과 기존 API 작업에서 모두 기본적으로 활성화되어 있습니다. 이는 업스트림 Kubernetes와 일치합니다. 자세한 내용은 GitHub의 KEP-3136: Beta APIs Are Off by Default(KEP-3136: 베타 API가 기본적으로 꺼져 있음)를 참조하세요.

  • Docker(dockershim이라고도 함)의 CRI(컨테이너 런타임 인터페이스) 지원은 Kubernetes 1.24에서 제거되었습니다. Amazon EKS 공식 AMI에 유일한 런타임인 containerd가 있습니다. Amazon EKS 1.24 또는 이후 버전으로 이동하기 전에 더는 지원되지 않는 부트스트랩 스크립트 플래그에 대한 참조를 제거해야 합니다. 또한 워커 노드에 대해 IP 전달이 활성화되어 있는지 확인해야 합니다. 자세한 내용은 dockershim에서 containerd로 마이그레이션 단원을 참조하십시오.

  • Container Insights에 대해 Fluentd를 이미 구성한 경우 클러스터를 업데이트하기 전에 Fluentd를 Fluent Bit로 마이그레이션해야 합니다. Fluentd 구문 분석기는 JSON 형식의 로그 메시지만 구문 분석하도록 구성됩니다. dockerd와 달리 containerd 컨테이너 런타임에는 JSON 형식이 아닌 로그 메시지가 있습니다. Fluent Bit로 마이그레이션하지 않으면 구성된 Fluentd’s 구문 분석기 중 일부가 Fluentd 컨테이너 내에서 엄청난 양의 오류를 생성합니다. 마이그레이션에 대한 자세한 내용은 로그를 CloudWatch Logs로 전송하기 위해 Fluent Bit를 데몬 세트로 설정하기를 참조하세요.

  • Kubernetes 1.23 및 이전 버전에서는 kubelet에서 제공되는 확인할 수 없는 IP와 DNS SAN(주체 대체 이름)이 있는 인증서가 확인할 수 없는 SAN과 함께 자동으로 발급됩니다. 이러한 확인할 수 없는 SAN은 프로비저닝된 인증서에서 생략됩니다. 1.24 및 이후 버전의 클러스터에서는 SAN을 확인할 수 없는 경우 kubelet에서 제공되는 인증서가 발급되지 않습니다. 이렇게 하면 kubectl exec 및kubectl log 명령이 작동하지 않습니다. 자세한 내용은 클러스터를 Kubernetes 1.24로 업그레이드하기 전의 인증서 서명 고려 사항 단원을 참조하십시오.

  • Fluent Bit를 사용하는 Amazon EKS 1.23 클러스터를 업그레이드할 때는 k8s/1.3.12 이상을 실행하고 있는지 확인해야 합니다. GitHub에서 적용 가능한 최신 Fluent Bit YAML 파일을 다시 적용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 Amazon CloudWatch 사용 설명서에서 Fluent Bit 설정을 참조하세요.

  • 토폴로지 인식 힌트를 사용하여 클러스터 워커 노드가 여러 가용 영역에 배포될 때 영역에서 트래픽을 유지하기 위한 기본 설정을 나타낼 수 있습니다. 영역 내에서 트래픽을 라우팅하면 비용을 절감하고 네트워크 성능을 개선하는 데 도움이 될 수 있습니다. 기본적으로 Amazon EKS 1.24에서는 토폴로지 인식 힌트가 활성화되어 있습니다. 자세한 내용은 Kubernetes 설명서의 토폴로지 인식 힌트를 참조하세요.

  • PodSecurityPolicy(PSP)는 Kubernetes 1.25에서 제거될 예정입니다. PSPs는 PSA(포드 보안 승인)로 대체되고 있습니다. PSA는 PSS(포드 보안 표준)에 간략히 설명된 보안 컨트롤을 사용하는 기본 제공 승인 컨트롤러입니다. PSA와 PSS는 모두 베타 기능이며 기본적으로 Amazon EKS에서 활성화되어 있습니다. 버전 1.25의 PSP 제거를 해결하려면 Amazon EKS에서 PSS를 구현하는 것이 좋습니다. 자세한 내용은 AWS 블로그의 Implementing Pod Security Standards in Amazon EKS(Amazon EKS에서 포드 보안 표준 구현)를 참조하세요.

  • client.authentication.k8s.io/v1alpha1 ExecCredential이 Kubernetes 1.24에서 제거되었습니다. ExecCredential API는 Kubernetes 1.22에서 일반적으로 사용할 수 있었습니다. v1alpha1 API를 이용하는 client-go 보안 인증 플러그인을 사용하는 경우 플러그인 배포자에게 v1 API로 마이그레이션하는 방법을 문의하세요.

  • Kubernetes 1.24의 경우 Amazon EKS 관리형 노드 그룹과 0 노드 사이의 크기 조정을 간소화하는 기능을 업스트림 Cluster Autoscaler 프로젝트에 제공했습니다. 이전에는 Cluster Autoscaler에서 0 노드로 크기가 조정된 관리형 노드 그룹의 리소스, 레이블 및 테인트를 이해하려면 담당하는 노드의 세부 정보로 기본 Amazon EC2 Auto Scaling 그룹에 태그를 지정해야 했습니다. 이제는 관리형 노드 그룹에 실행 중인 노드가 없을 때 Cluster Autoscaler에서 Amazon EKS DescribeNodegroup API 작업을 호출합니다. 이 API 작업에서는 Cluster Autoscaler에 필요한 관리 노드 그룹의 리소스, 레이블 및 테인트에 대한 정보가 제공됩니다. 이 기능을 사용하려면 Cluster Autoscaler 서비스 계정 IAM 정책에 eks:DescribeNodegroup 권한을 추가해야 합니다. Amazon EKS 관리형 노드 그룹을 지원하는 Auto Scaling의 Cluster Autoscaler 태그 값이 노드 그룹 자체와 충돌하는 경우 Cluster Autoscaler에서는 Auto Scaling 태그의 값을 선호합니다. 이는 필요에 따라 값을 재정의할 수 있도록 하기 위한 것입니다. 자세한 내용은 Cluster Autoscaler를 참조하세요.

  • Amazon EKS 1.24와 함께 Inferentia 또는Trainium 인스턴스 유형을 사용하려는 경우 AWS Neuron 디바이스 플러그인 버전 1.9.3.0 또는 이후 버전으로 업그레이드해야 합니다. 자세한 내용은 AWS Neuron 설명서의 Neuron K8 릴리스[1.9.3.0]를 참조하세요.

  • Containerd은 기본적으로 Pods에 대해 활성화된 IPv6을 가지고 있습니다. 노드 커널 설정을 Pod 네트워크 네임스페이스에 적용합니다. 이 때문에 Pod의 컨테이너는 IPv4(127.0.0.1) 및 IPv6(::1) 루프백 주소 모두에 바인딩됩니다. IPv6은 통신을 위한 기본 프로토콜입니다. 클러스터를 버전 1.24로 업데이트하기 전에 다중 컨테이너 Pods를 테스트하는 것이 좋습니다. 루프백 인터페이스의 모든 IP 주소에 바인딩할 수 있도록 앱을 수정합니다. 대부분의 라이브러리는 IPv4를 통해 이전 버전과 호환되는 IPv6 바인딩을 활성화합니다. 애플리케이션 코드를 수정할 수 없는 경우 두 가지 옵션이 있습니다.

    • init 컨테이너를 실행하고 disable ipv6true(sysctl -w net.ipv6.conf.all.disable_ipv6=1)로 설정합니다.

    • 애플리케이션 Pods와 함께 init 컨테이너를 삽입하도록 변형 승인 웹훅을 구성합니다.

    모든 노드의 모든 Pods에 대한 IPv6을 차단해야 하는 경우 인스턴스의 IPv6을 비활성화해야 할 수도 있습니다.

  • Kubernetes API 서버의 goaway-chance 옵션은 연결을 무작위로 종료하여 HTTP/2 클라이언트 연결이 단일 API 서버 인스턴스에서 중단되는 것을 방지합니다. 연결이 닫히면 클라이언트가 다시 연결을 시도하고 로드 밸런싱의 결과로 다른 API 서버에 도달할 가능성이 높습니다. Amazon EKS 버전 1.24은 goaway-chance 플래그를 활성화했습니다. Amazon EKS 클러스터에서 실행 중인 워크로드가 HTTP GOAWAY와 호환되지 않는 클라이언트를 사용하는 경우, 연결 종료 시 다시 연결하여 GOAWAY를 처리하도록 클라이언트를 업데이트하는 것이 좋습니다.

전체 Kubernetes 1.24 변경 로그를 확인하려면 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.24.md#changelog-since-v1230을 참조하세요.

Kubernetes 1.23

이제 Kubernetes 1.23는 Amazon EKS에서 사용 가능합니다. Kubernetes 1.23에 대한 자세한 내용을 알아보려면 공식 릴리스 발표를 참조하세요.

중요
  • CSI(컨테이너 스토리지 인터페이스로 Kubernetes in-tree 볼륨 마이그레이션 기능이 활성화되었습니다. 이 기능을 사용하면 Amazon EBS의 기존 Kubernetes in-tree 스토리지 플러그인을 해당 Amazon EBS CSI 드라이버로 대체할 수 있습니다. 자세한 내용은 Kubernetes 블로그의 Kubernetes 1.17 기능: Kubernetes In-Tree에서 CSI 볼륨 마이그레이션이 베타로 전환됨을 참조하세요.

    이 기능은 in-tree API를 동등한 CSI API로 변환하고 작업을 대체 CSI 드라이버에 위임합니다. 이 기능을 사용하면 이러한 워크로드에 속하는 기존 StorageClass, PersistentVolume, PersistentVolumeClaim 객체를 사용하는 경우 눈에 띄는 변화가 없을 것입니다. 이 기능을 사용하면 Kubernetes에서 모든 스토리지 관리 작업을 in-tree 플러그인에서 CSI 드라이버로 위임합니다. 기존 클러스터에서 Amazon EBS 볼륨을 사용하는 경우 클러스터를 버전 1.23으로 업데이트하기 전에 클러스터에 Amazon EBS CSI 드라이버를 설치합니다. 기존 클러스터를 업데이트하기 전에 드라이버를 설치하지 않은 경우 워크로드가 중단될 수 있습니다. 새 1.23 클러스터에서 Amazon EBS 볼륨을 사용하는 워크로드를 배포하려는 경우 클러스터에 워크로드를 배포하기 전에 클러스터에 Amazon EBS CSI 드라이버를 설치합니다. 클러스터에 Amazon EBS CSI 드라이버를 설치하는 방법에 대한 지침은 Amazon EBS에 Kubernetes 볼륨 저장 부분을 참조하세요. 마이그레이션 기능에 대한 자주 묻는 질문은 Amazon EBS CSI 마이그레이션 관련 자주 묻는 질문 부분을 참조하세요.

  • AWS에서 게시한 Amazon EKS 최적화 Windows AMI에 대한 추가 지원은 Kubernetes 버전 1.23에서는 사용할 수 없지만 Kubernetes 버전 1.24 이상에서는 사용할 수 있습니다.

  • Kubernetes는 버전 1.20에서의 dockershim 지원을 중단하고 버전 1.24에서 dockershim을 제거했습니다. 자세한 내용은 Kubernetes 블로그의 Kubernetes, Dockershim에서 벗어나다: 커밋과 다음 단계를 참조하세요. Amazon EKS에서는 Amazon EKS 버전 1.24부터 dockershim에 대한 지원이 종료됩니다. Amazon EKS 버전 1.24부터 Amazon EKS 공식 AMI에는 containerd가 유일한 런타임으로 포함됩니다.

    Amazon EKS 버전 1.23에서 dockershim을 계속 지원하더라도 지금 애플리케이션 테스트를 시작하여 Docker 종속성을 식별하고 제거하는 것이 좋습니다. 이렇게 하면 클러스터를 버전 1.24로 업데이트할 준비가 됩니다. dockershim 제거에 대한 자세한 내용은 dockershim에서 containerd로 마이그레이션 부분을 참조하세요.

  • Kubernetes에서 Pods, 서비스, 노드에 대한 IPv4/IPv6 듀얼 스택 네트워킹이 정식 출시 단계로 전환되었습니다. 그러나 Amazon EKS와 Amazon VPC CNI plugin for Kubernetes는 듀얼 스택 네트워킹을 지원하지 않습니다. 클러스터가 Pods 및 서비스에 IPv4 또는 IPv6 주소를 할당할 수 있지만 두 주소 유형을 모두 할당할 수는 없습니다.

  • Kubernetes에서 PSA(포드 보안 승인) 기능이 베타 상태로 전환되었습니다. 이 기능은 기본적으로 활성화되어 있습니다. 자세한 내용은 Kubernetes 설명서의 포드 보안 승인을 참조하세요. PSA는 포드 보안 정책(PSP) 승인 컨트롤러를 대체합니다. PSP 승인 컨트롤러는 지원되지 않으며 Kubernetes 버전 1.25에서 제거될 예정입니다.

    PSP 승인 컨트롤러는 적용 수준을 설정하는 특정 네임스페이스 레이블을 기반으로 하는 네임스페이스에 Pods에 대한 Pod 보안 표준을 적용합니다. 자세한 내용은 Amazon EKS 모범 사례 안내서의 포드 보안 표준(PSS) 및 포드 보안 승인(PSA)을 참조하세요.

  • 클러스터와 함께 배포된 kube-proxy 이미지는 이제 Amazon EKS Distro(EKS-D)에서 관리하는 최소 기본 이미지입니다. 이미지에는 최소 패키지가 포함되어 있으며 셸 또는 패키지 관리자가 없습니다.

  • Kubernetes에서 임시 컨테이너가 베타 상태로 전환되었습니다. 임시 컨테이너는 기존 Pod와 동일한 네임스페이스에서 실행되는 임시 컨테이너입니다. 임시 컨테이너를 사용하여 문제 해결 및 디버깅을 위해 Pods 및 컨테이너 상태를 관찰할 수 있습니다. 이 방법은 컨테이너가 충돌했거나 컨테이너 이미지에 디버깅 유틸리티가 포함되어 있지 않아 kubectl exec가 충분하지 않은 경우에 대화형 문제 해결에 특히 유용합니다. 디버깅 유틸리티를 포함하는 컨테이너의 예는 Distroless 이미지입니다. 자세한 내용은 Kubernetes 설명서에서 임시 디버그 컨테이너를 사용한 디버깅을 참조하세요.

  • Kubernetes에서 HorizontalPodAutoscaler autoscaling/v2 안정적 API가 정식 출시 단계로 전환되었습니다. HorizontalPodAutoscaler autoscaling/v2beta2 API는 사용 중단되었습니다. 1.26에서 사용할 수 없습니다.

  • Kubernetes API 서버의 goaway-chance 옵션은 연결을 무작위로 종료하여 HTTP/2 클라이언트 연결이 단일 API 서버 인스턴스에서 중단되는 것을 방지합니다. 연결이 닫히면 클라이언트가 다시 연결을 시도하고 로드 밸런싱의 결과로 다른 API 서버에 도달할 가능성이 높습니다. Amazon EKS 버전 1.23은 goaway-chance 플래그를 활성화했습니다. Amazon EKS 클러스터에서 실행 중인 워크로드가 HTTP GOAWAY와 호환되지 않는 클라이언트를 사용하는 경우, 연결 종료 시 다시 연결하여 GOAWAY를 처리하도록 클라이언트를 업데이트하는 것이 좋습니다.

전체 Kubernetes 1.23 변경 로그를 확인하려면 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.23.md#changelog-since-v1220을 참조하세요.