이 페이지 개선에 도움 주기
이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다.
확장 지원의 Kubernetes 버전에 대한 릴리스 노트 검토
Amazon EKS는 Amazon EKS에서 릴리스된 시점으로부터 14개월 동안 Kubernetes 마이너 버전에 대한 표준 지원과 추가 12개월 동안 Kubernetes 마이너 버전에 대한 추가 지원(버전당 총 26개월)을 통해 업스트림에서 지원되는 것보다 긴 Kubernetes 버전을 지원합니다.
이 주제에서는 추가 지원의 각 Kubernetes 버전에 대해 알아야 할 중요한 변경 사항을 제공합니다. 업그레이드할 때는 클러스터의 이전 버전과 새 버전 간에 발생한 변경 사항을 주의 깊게 검토하세요.
Kubernetes 1.29
Kubernetes 1.29
는 이제 Amazon EKS에서 사용할 수 있습니다. Kubernetes 1.29
에 대한 자세한 내용은 공식 릴리스 발표
중요
-
FlowSchema
및PriorityLevelConfiguration
의 사용 중단된flowcontrol.apiserver.k8s.io/v1beta2
API 버전은 Kubernetes 버전1.29
에서 더 이상 제공되지 않습니다. 사용 중단된 베타 API 그룹을 사용하는 매니페스트 또는 클라이언트 소프트웨어가 있는 경우 버전1.29
로 업그레이드하기 전에 이를 변경해야 합니다.
-
Node 객체의
.status.kubeProxyVersion
필드는 이제 사용 중단되었으며 Kubernetes 프로젝트는 향후 릴리스에서 해당 필드를 제거할 것을 제안하고 있습니다. 사용 중단된 필드는 정확하지 않으며kube-proxy
버전을 실제로 알지 못하거나kube-proxy
가 실행 중인지 여부조차 모르는kubelet
에 의해 관리되었습니다. 클라이언트 소프트웨어에서 이 필드를 사용했다면 중지하세요. 정보를 신뢰할 수 없으며 해당 필드는 이제 사용 중단되었습니다. -
잠재적인 공격 표면을 줄이기 위해 Kubernetes
1.29
에서LegacyServiceAccountTokenCleanUp
기능은 레거시 자동 생성 비밀 기반 토큰이 오랫동안(기본값으로 1년) 사용되지 않으면 유효하지 않은 것으로 레이블을 지정하고, 유효하지 않은 것으로 표시된 후 오랫동안(기본값으로 추가 1년) 사용을 시도하지 않으면 자동으로 제거합니다. 이러한 토큰을 식별하려면 다음을 실행합니다.kubectl get cm kube-apiserver-legacy-service-account-token-tracking -n kube-system
전체 Kubernetes 1.29
변경 로그는 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.29.md#changelog-since-v1280
Kubernetes 1.28
Kubernetes 1.28
은 이제 Amazon EKS에서 사용할 수 있습니다. Kubernetes 1.28
에 대한 자세한 내용은 공식 릴리스 발표
-
Kubernetes
v1.28
은 코어 노드와 컨트롤 플레인 구성 요소 간에 지원되는 스큐를n-2
에서n-3
으로 하나의 마이너 버전으로 확장하여 지원되는 가장 오래된 마이너 버전의 노드 구성 요소(kubelet
및kube-proxy
)가 지원되는 최신 마이너 버전의 컨트롤 플레인 구성 요소(kube-apiserver
,kube-scheduler
,kube-controller-manager
,cloud-controller-manager
)와 함께 작동할 수 있도록 했습니다. -
Pod GC Controller
의 지표force_delete_pods_total
및force_delete_pod_errors_total
은 모든 강제 포드 삭제를 처리하도록 향상되었습니다. 포드가 종료됐거나, 끊겼거나, 서비스 중단 테인트로 종료되었거나, 종료 및 예정되지 않았기 때문에 포드가 강제 삭제됐는지 여부를 나타내기 위해 지표에 이유가 추가됩니다. -
storageClassName
이 설정되지 않은 바인딩되지 않은PersistentVolumeClaim
에 기본StorageClass
를 자동으로 할당하도록PersistentVolume (PV)
컨트롤러가 수정되었습니다. 또한 API 서버 내의PersistentVolumeClaim
승인 검증 메커니즘이 설정되지 않은 상태에서 실제StorageClass
이름으로 값을 변경할 수 있도록 조정되었습니다.
전체 Kubernetes 1.28
변경 로그는 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.28.md#changelog-since-v1270
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.27
은PersistentVolumeClaims
(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
으로 업그레이드하기 전에 Kubernetes용 Amazon VPC CNI 플러그인을 버전1.12
이상으로 업그레이드합니다. Kubernetes용 Amazon VPC CNI 플러그인1.12
이상으로 업그레이드하지 않으면 Kubernetes용 Amazon VPC CNI 플러그인이 충돌합니다. 자세한 내용은 Amazon VPC CNI를 통해 포드에 IP 할당 섹션을 참조하세요. -
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