이 페이지에서는 GKE 버전 1.25로 업그레이드하기 위해 클러스터를 준비하는 방법을 설명합니다. 1.25에서 삭제된 지원 중단된 API로 호출하는 API 클라이언트를 찾고 해당 클라이언트를 업데이트하여 GA API를 사용할 수 있습니다. 자세한 내용은 Kubernetes 지원 중단된 API 마이그레이션 가이드를 참조하세요.
1.25에서 삭제된 API
Kubernetes 버전 1.25에서 대부분의 지원 중단된 API는 Beta(예: v1beta1
)에서 GA(예: v1
)로 전환된 이전의 베타 API들입니다. GA API는 보다 장기적인 호환성 보증을 제공하며, 지원 중단된 베타 API 대신 사용됩니다.
GA API를 사용하여 GA로 전환된 API의 모든 기존 객체와 상호 작용할 수 있습니다.
EndpointSlice
EndpointSlice
의 베타 API 버전(discovery.k8s.io/v1beta1
)은 버전 1.25를 기준으로 더 이상 제공되지 않습니다. 이 API는 버전 1.21에서 지원 중단되었습니다.
discovery.k8s.io/v1
API 버전을 사용하도록 매니페스트 및 API 클라이언트를 마이그레이션합니다.GA API 버전의 중요한 변경사항을 보여주는 다음 표를 참조하세요.
필드 변경 endpoints[*].topology["kubernetes.io/hostname"]
endpoints[*].nodeName
을 사용합니다.endpoints[*].topology["topology.kubernetes.io/zone"]
endpoints[*].zone
을 사용합니다.endpoints[*].topology
v1에서 쓰기가 불가능한 endpoints[*].deprecatedTopology
로 대체되었습니다.
PodDisruptionBudget
PodDisruptionBudget
의 베타 API 버전(policy/v1beta1
)은 버전 1.25를 기준으로 더 이상 제공되지 않습니다. 이 API는 버전 1.21에서 지원 중단되었습니다.
policy/v1
API 버전을 사용하도록 매니페스트 및 API 클라이언트를 마이그레이션합니다.GA API 버전의 중요한 변경사항을 보여주는 다음 표를 참조하세요.
필드 변경 spec.selector
policy/v1 PodDisruptionBudget
에 기록된 빈 값({}
)은 네임스페이스의 모든 포드를 선택합니다. 설정하지 않은 값은 여전히 포드를 선택하지 않습니다.
CronJob
CronJob
의 베타 API 버전(batch/v1beta1
)은 버전 1.25를 기준으로 더 이상 제공되지 않습니다. 이 API는 버전 1.21에서 지원 중단되었습니다. batch/v1
API 버전을 사용하도록 매니페스트 및 API 클라이언트를 마이그레이션합니다.
PodSecurityPolicy
PodSecurityPolicy
의 베타 API 버전(policy/v1beta1
)은 버전 1.25를 기준으로 더 이상 제공되지 않습니다. 이 API는 버전 1.21에서 지원 중단되었습니다.
자세한 내용은 PodSecurityPolicy 지원 중단을 참조하세요.
RuntimeClass
RuntimeClass
의 베타 API 버전(node.k8s.io/v1beta1
)은 버전 1.25를 기준으로 더 이상 제공되지 않습니다. 이 API는 버전 1.20에서 지원 중단되었습니다. node.k8s.io/v1
API 버전을 사용하도록 매니페스트 및 API 클라이언트를 마이그레이션합니다.
이벤트
Events
의 베타 API 버전(events.k8s.io/v1beta1
)은 버전 1.25를 기준으로 더 이상 제공되지 않습니다. 이 API는 버전 1.19에서 지원 중단되었습니다.
v1
API 버전 또는events.k8s.io/v1
API 버전을 사용하도록 매니페스트 및 API 클라이언트를 마이그레이션합니다.GA API 버전의 중요한 변경사항을 보여주는 다음 표를 참조하세요.
필드 변경 type
Normal
및Warning
으로 제한됩니다.involvedObject
이름이 regarding
으로 변경되었습니다.action
,reason
,reportingController
,reportingInstance
이 필드는 이제 이벤트를 만들 때 필요합니다. firstTimestamp
이름이 deprecatedFirstTimestamp
로 변경되었고 새 이벤트에서 더 이상 허용되지 않습니다. 대신eventTime
을 사용하세요.lastTimestamp
이름이 deprecatedLastTimestamp
로 변경되었고 새 이벤트에서 더 이상 허용되지 않습니다. 대신series.lastObservedTime
을 사용하세요.count
이름이 deprecatedCount
로 변경되었고 새 이벤트에서 더 이상 허용되지 않습니다. 대신series.count
를 사용하세요.source.component
이름이 deprecatedSource.component
로 변경되었고 새 이벤트에서 더 이상 허용되지 않습니다. 대신reportingController
를 사용하세요.source.host
이름이 deprecatedSource.host
로 변경되었고 새 이벤트에서 더 이상 허용되지 않습니다. 대신reportingInstance
를 사용하세요.
HorizontalPodAutoscaler
HorizontalPodAutoscaler
의 베타 API 버전(autoscaling/v2beta1
)은 버전 1.25를 기준으로 더 이상 제공되지 않습니다. 이 API는 버전 1.23에서 지원 중단되었습니다.
autoscaling/v2 HorizontalPodAutoscaler
API 버전을 사용하도록 매니페스트 및 API 클라이언트를 마이그레이션합니다.
버전 1.25로 업그레이드 준비
API 객체를 삭제하고 다시 만들 필요가 없습니다. GA로 전환된 API에 대해 모든 기존 API 객체는 새로운 API 버전을 사용하여 읽고 업데이트할 수 있습니다.
그러나 Kubernetes 1.25로 업그레이드하기 전에 클라이언트와 매니페스트를 마이그레이션하는 것이 좋습니다. 자세한 내용은 Kubernetes 지원 중단된 API 마이그레이션 가이드를 참조하세요.
지원 중단 통계 및 추천을 확인하면 클러스터가 Kubernetes 1.25 지원 중단된 API를 사용 중인지 파악할 수 있습니다. GKE는 Kubernetes 객체의 구성을 사용하는 것이 아니라 사용자 에이전트가 지원 중단된 API를 호출할 때 지원 중단 통계를 생성합니다.
지원 중단된 API를 사용하여 클러스터 찾기
지원 중단 통계에서 지원 중단된 API를 사용 중인 클러스터를 찾을 수 있습니다. 지원 중단 통계는 또한 클러스터에서 지원 중단된 API를 호출하는 API 클라이언트와 같은 정보를 제공합니다.
또한 감사 로그를 사용해서 지원 중단된 API를 호출하는 클라이언트를 찾을 수 있습니다.
지원 중단된 API에 쓰기 호출을 수행하는 API 클라이언트 찾기
Google Cloud Observability가 사용 설정된 클러스터의 경우 다음 관리자 활동 감사 로그 쿼리를 사용하여 Google이 관리하지 않는 사용자 에이전트가 사용한 지원 중단된 API를 표시할 수 있습니다.
resource.type="k8s_cluster"
labels."k8s.io/removed-release"="DEPRECATED_API_MINOR_VERSION"
protoPayload.authenticationInfo.principalEmail:("system:serviceaccount" OR "@")
protoPayload.authenticationInfo.principalEmail!~("system:serviceaccount:kube-system:")
DEPRECATED_API_MINOR_VERSION
을 지원 중단된 API가 삭제된 마이너 버전(예: 1.22
)으로 바꿉니다.
관리자 활동 감사 로그는 GKE 클러스터에 대해 자동으로 사용 설정됩니다. 이 쿼리를 사용하면 지원 중단된 API에 쓰기 호출을 수행하는 사용자 에이전트가 표시됩니다.
지원 중단된 API에 읽기 호출을 수행하는 API 클라이언트 찾기
기본적으로 감사 로그는 지원 중단된 API에 대해 쓰기 호출만 표시합니다. 지원 중단된 API에 대해 읽기 호출도 표시하려면 데이터 액세스 감사 로그를 구성합니다.
안내에 따라 Google Cloud 콘솔을 사용하여 데이터 액세스 감사 로그 구성을 수행합니다. Google Cloud 콘솔에서 Kubernetes Engine API를 선택합니다. 정보 패널의 로그 유형 탭에서 Admin Read
및 Data Read
를 선택합니다.
이러한 로그가 사용 설정되면 이제 원본 쿼리를 사용해서 지원 중단된 API에 대해 읽기 호출 및 쓰기 호출을 모두 볼 수 있습니다.
타사 구성요소 업그레이드
지원 중단 통계에서는 클러스터에서 지원 중단된 API를 호출하는 서드 파티 에이전트에 대한 결과를 표시할 수 있습니다.
지원 중단된 API를 호출하는 타사 에이전트를 확인하려면 다음 권장사항을 따르는 것이 좋습니다.
- 서드 파티 소프트웨어 제공업체에 업데이트된 버전이 있는지 확인합니다.
- 서드 파티 소프트웨어를 최신 버전으로 업그레이드합니다. 소프트웨어를 업그레이드할 수 없는 경우 지원 중단되어 삭제된 API를 사용하는 버전으로 GKE를 업그레이드하면 서비스가 손상되는지 테스트해야 합니다.
프로덕션 클러스터를 업그레이드하기 전에 스테이징 클러스터에서 이러한 업그레이드와 GKE 버전 업그레이드를 수행하여 서비스 중단을 모니터링하는 것이 좋습니다.
지원 중단의 영향을 받은 클러스터 업데이트
지원 중단의 영향을 받은 클러스터를 업그레이드하려면 다음 단계를 수행하세요.
- 로그에서 지원 중단된 API가 사용자 에이전트에 사용되는지 확인합니다.
- 지원 중단된 API를 사용하는 사용자 에이전트를 지원되는 API 버전을 사용하도록 업데이트합니다.
- 지원 중단된 API를 호출하는 서드 파티 소프트웨어를 최신 버전으로 업데이트합니다.
- 프로덕션 클러스터를 업그레이드하기 전에 테스트 클러스터를 업그레이드하고 테스트 환경에서 애플리케이션을 테스트하여 지원 중단된 API를 더 이상 사용할 수 없게 되면 발생할 수 있는 서비스 중단을 줄입니다.
- 영향을 받은 사용자 에이전트를 업데이트할 수 없는 경우 별도의 테스트 클러스터를 업그레이드하여 업그레이드로 인해 서비스 중단이 발생하는지 확인합니다. 업그레이드로 인해 서비스 중단이 발생하지 않으면 클러스터를 수동으로 업그레이드하면 됩니다.
- 모든 사용자 에이전트를 업데이트한 후 GKE는 지원 중단된 API의 사용이 30일 동안 관찰되지 않을 때까지 기다리고 자동 업데이트를 차단 해제합니다. 자동 업그레이드는 출시 일정에 따라 진행됩니다.
리소스
자세한 내용은 OSS Kubernetes 설명서에서 확인할 수 있습니다.
- Kubernetes 블로그: 1.25의 Kubernetes 삭제 및 주요 변경사항
- Kubernetes 1.25 출시 노트
- Kubernetes 지원 중단된 API 마이그레이션 가이드