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