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 설명서 를 참조하십시오.

표 5.1. Kubernetes 1.26에서 제거된 API
리소스제거된 API다음으로 마이그레이션

FlowSchema

flowcontrol.apiserver.k8s.io/v1beta1

flowcontrol.apiserver.k8s.io/v1beta3

HorizontalPodAutoscaler

autoscaling/v2beta2

autoscaling/v2

PriorityLevelConfiguration

flowcontrol.apiserver.k8s.io/v1beta1

flowcontrol.apiserver.k8s.io/v1beta3

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-collectorsystem:serviceaccount:kube-system:namespace-controller 사용자는 제거할 리소스를 검색할 때 등록된 모든 API를 호출하므로 결과에 표시될 수 있습니다.
    • system:kube-controller-managersystem: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 역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.

절차

  • 다음 명령을 실행하고 usernameuserAgent 필드를 검사하여 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
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.