1.3. 削除された API に対するクラスターの評価

削除予定の API が使用されている場所を特定するために管理者が使用できる方法がいくつかあります。ただし、OpenShift Dedicated はすべてのインスタンスを特定できるわけではありません。特にアイドル状態のワークロードや使用されている外部ツールは特定できません。管理者は、すべてのワークロードと削除された API のインスタンスにおけるすべてのワークロードや統合について適切に評価する必要があります。

1.3.1. 削除された API の使用を特定するためのアラートの確認

APIRemovedInNextReleaseInUse アラートは、クラスターで使用されている API が削除されたことを示しています。このアラートがクラスターで発生した場合はアラートを確認し、新しい API バージョンを使用するようにマニフェストと API クライアントを移行することでアラートをクリアします。APIRequestCount API を使用して、どの API が使用されているか、どのワークロードが削除された API を使用しているかについて、詳しい情報を取得できます。

1.3.2. APIRequestCount を使用して削除された API の使用状況を特定

APIRequestCount API を使用して API 要求を追跡し、削除された API が使用されていないか確認できます。

前提条件

  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。

手順

  • 以下のコマンドを実行し、出力された REMOVEDINRELEASE 列を確認して、現在使用中の削除された API を特定します。

    $ oc get apirequestcounts

    出力例

    NAME                                        REMOVEDINRELEASE   REQUESTSINCURRENTHOUR   REQUESTSINLAST24H
    cloudcredentials.v1.operator.openshift.io                      32                      111
    ingresses.v1.networking.k8s.io                                 28                      110
    ingresses.v1beta1.extensions                1.22               16                      66
    ingresses.v1beta1.networking.k8s.io         1.22               0                       1
    installplans.v1alpha1.operators.coreos.com                     93                      167
    ...

    注記

    結果に表示される以下のエントリーは無視しても問題はありません。

    • system:serviceaccount:kube-system:generic-garbage-collector が結果に表示されます。すべての登録済み API を確認して削除するリソースを検索するため、これが表示されます。
    • system:kube-controller-manager が結果に表示されます。クォータを適用しながらすべてのリソースを確認するため、これが表示されます。

    -o jsonpath を使用して結果をフィルタリングすることもできます。

    $ oc get apirequestcounts -o jsonpath='{range .items[?(@.status.removedInRelease!="")]}{.status.removedInRelease}{"\t"}{.metadata.name}{"\n"}{end}'

    出力例

    1.22    certificatesigningrequests.v1beta1.certificates.k8s.io
    1.22    ingresses.v1beta1.extensions
    1.22    ingresses.v1beta1.networking.k8s.io

1.3.3. APIRequestCount を使用して削除された API を使用しているワークロードを特定

特定の API バージョンの APIRequestCount リソースを確認することで、API を使用しているワークロードを特定できます。

前提条件

  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。

手順

  • 以下のコマンドを実行して username および userAgent を確認すると、API を使用しているワークロードの特定に役立ちます。

    $ oc get apirequestcounts <resource>.<version>.<group> -o yaml

    以下に例を示します。

    $ oc get apirequestcounts ingresses.v1beta1.networking.k8s.io -o yaml

    -o jsonpath を使用して、APIRequestCount リソースから username の値を抽出することもできます。

    $ oc get apirequestcounts ingresses.v1beta1.networking.k8s.io -o jsonpath='{range ..username}{$}{"\n"}{end}' | sort | uniq

    出力例

    user1
    user2
    app:serviceaccount:delta