5.2. Kubernetes API 사용 중단 및 제거
OpenShift Container Platform 4.13에서는 더 이상 사용되지 않는 여러 API를 제거한 Kubernetes 1.26을 사용합니다.
클러스터 관리자는 클러스터를 OpenShift Container Platform 4.12에서 4.13으로 업데이트하기 전에 수동으로 승인을 제공해야 합니다. 이는 OpenShift Container Platform 4.13으로 업그레이드한 후에도 문제를 방지하기 위한 것입니다. 여기서 제거된 API는 클러스터에서 실행 중이거나 클러스터와 상호 작용하는 기타 구성 요소에서 여전히 사용 중입니다. 관리자는 제거될 모든 API에 대해 클러스터를 평가하고 영향을 받는 구성 요소를 마이그레이션하여 적절한 새 API 버전을 사용해야 합니다. 이 평가 및 마이그레이션이 완료되면 관리자는 승인을 제공할 수 있습니다.
OpenShift Container Platform 4.12 클러스터를 4.13로 업데이트하려면 관리자에게 승인을 제공해야 합니다.
5.2.1. 제거된 Kubernetes API
OpenShift Container Platform 4.13에서는 더 이상 사용되지 않는 다음 API를 제거한 Kubernetes 1.26을 사용합니다. 적절한 API 버전을 사용하려면 매니페스트 및 API 클라이언트를 마이그레이션해야 합니다. 제거된 API 마이그레이션에 대한 자세한 내용은 Kubernetes 설명서 를 참조하십시오.
리소스 | 제거된 API | 다음으로 마이그레이션 |
---|---|---|
|
|
|
|
|
|
|
|
|
5.2.2. 제거된 API에 대한 클러스터 평가
관리자가 제거할 API 위치를 식별하는 데 도움이 되는 여러 가지 방법이 있습니다. 그러나 OpenShift Container Platform은 모든 인스턴스, 특히 유휴 상태인 워크로드 또는 사용되는 외부 툴을 식별할 수 없습니다. 관리자가 제거된 API 인스턴스에 대한 모든 워크로드 및 기타 통합을 적절하게 평가해야 합니다.
5.2.2.1. 제거된 API의 사용 식별을 위한 경고 검토
다음 릴리스에서 제거될 API가 사용 중인 경우 두 개의 경고가 발생합니다.
-
APIRemovedInNextReleaseInUse
- OpenShift Container Platform의 다음 릴리스에서 제거될 API의 경우 -
APIRemovedIn다음 EUSReleaseInUse
- OpenShift Container Platform EUS (Extended Update Support) 릴리스에서 제거될 API의 경우
이러한 경고 중 하나가 클러스터에서 실행 중인 경우 경고를 검토하고 새 API 버전을 사용하도록 매니페스트 및 API 클라이언트를 마이그레이션하여 경고를 지우는 조치를 취합니다.
경고가 이 정보를 제공하지 않기 때문에 APIRequestCount
API를 사용하여 사용 중인 API 및 제거된 API를 사용하는 워크로드에 대한 자세한 정보를 가져옵니다. 또한 일부 API는 이러한 경고를 트리거하지 않을 수 있지만 APIRequestCount
에 의해 계속 캡처됩니다. 경고는 프로덕션 시스템에서 경고 피로를 피하기 위해 덜 민감하게 조정됩니다.
5.2.2.2. APIRequestCount를 사용하여 제거된 API 사용 확인
APIRequestCount API
를 사용하여 API 요청을 추적하고 제거된 API 중 하나를 사용 중인지 검토할 수 있습니다.
사전 요구 사항
-
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
프로세스
다음 명령을 실행하고 출력의
REMOVEDINRELEASE
열을 검사하여 현재 사용 중인 제거된 API를 확인합니다.$ oc get apirequestcounts
출력 예
NAME REMOVEDINRELEASE REQUESTSINCURRENTHOUR REQUESTSINLAST24H ... flowschemas.v1beta1.flowcontrol.apiserver.k8s.io 1.26 0 16 flowschemas.v1beta2.flowcontrol.apiserver.k8s.io 101 857 groups.v1.user.openshift.io 22 201 hardwaredata.v1alpha1.metal3.io 3 33 helmchartrepositories.v1beta1.helm.openshift.io 142 628 horizontalpodautoscalers.v2.autoscaling 11 103 horizontalpodautoscalers.v2beta2.autoscaling 1.26 0 15 ...
중요결과에 표시되는 다음 항목을 무시해도 됩니다.
-
system:serviceaccount:kube-system:kube-garbage-collector
및system:serviceaccount:kube-system:namespace-controller
사용자는 제거할 리소스를 검색할 때 등록된 모든 API를 호출하므로 결과에 표시될 수 있습니다. -
system:kube-controller-manager
및system:cluster-policy-controller
사용자는 다양한 정책을 적용하는 동안 모든 리소스를 진행하므로 결과에 나타날 수 있습니다.
-o jsonpath
를 사용하여 결과를 필터링할 수도 있습니다.$ oc get apirequestcounts -o jsonpath='{range .items[?(@.status.removedInRelease!="")]}{.status.removedInRelease}{"\t"}{.metadata.name}{"\n"}{end}'
출력 예
1.26 flowschemas.v1beta1.flowcontrol.apiserver.k8s.io 1.26 horizontalpodautoscalers.v2beta2.autoscaling
-
5.2.2.3. APIRequestCount를 사용하여 제거된 API를 사용하는 워크로드 식별
지정된 API 버전에 대해 APIRequestCount
리소스를 검사하여 API를 사용하는 워크로드를 식별할 수 있습니다.
사전 요구 사항
-
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
절차
다음 명령을 실행하고
username
및userAgent
필드를 검사하여 API를 사용하는 워크로드를 식별할 수 있습니다.$ oc get apirequestcounts <resource>.<version>.<group> -o yaml
예를 들면 다음과 같습니다.
$ oc get apirequestcounts flowschemas.v1beta1.flowcontrol.apiserver.k8s.io -o yaml
-o jsonpath
를 사용하여APIRequestCount
리소스에서사용자 이름
및userAgent
값을 추출할 수도 있습니다.$ oc get apirequestcounts flowschemas.v1beta1.flowcontrol.apiserver.k8s.io \ -o jsonpath='{range .status.currentHour..byUser[*]}{..byVerb[*].verb}{","}{.username}{","}{.userAgent}{"\n"}{end}' \ | sort -k 2 -t, -u | column -t -s, -NVERBS,USERNAME,USERAGENT
출력 예
VERBS USERNAME USERAGENT get system:serviceaccount:openshift-cluster-version:default cluster-version-operator/v0.0.0 watch system:serviceaccount:openshift-oauth-apiserver:oauth-apiserver-sa oauth-apiserver/v0.0.0
5.2.3. 제거된 API의 인스턴스 마이그레이션
제거된 Kubernetes API 마이그레이션 방법에 대한 자세한 내용은 Kubernetes 문서의 더 이상 사용되지 않는 API 마이그레이션 가이드를 참조하십시오.
5.2.4. 관리자 확인 제공
제거된 API에 대해 클러스터를 평가하고 제거된 API를 마이그레이션한 후 클러스터가 OpenShift Container Platform 4.12에서 4.13으로 업그레이드할 준비가 되었는지 확인할 수 있습니다.
이 관리자 승인을 제공하기 전에 제거된 API의 모든 사용이 해결되고 필요에 따라 마이그레이션되었는지 확인하는 모든 책임은 관리자에게 있음을 유의하십시오. OpenShift Container Platform은 평가를 지원할 수 있지만 제거된 API, 특히 유휴 워크로드 또는 외부 툴의 모든 사용을 식별할 수 없습니다.
사전 요구 사항
-
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
절차
다음 명령을 실행하여 평가를 완료했으며 OpenShift Container Platform 4.13에서 Kubernetes API를 제거할 준비가 되었는지 확인합니다.
$ oc -n openshift-config patch cm admin-acks --patch '{"data":{"ack-4.12-kube-1.26-api-removals-in-4.13":"true"}}' --type=merge