Kubernetes API の優先度およびフェアネスの設定

Red Hat OpenShift on IBM Cloud クラスターには、API サーバーに対する同時要求を処理してトラフィックの過負荷を防ぐためのデフォルトの設定が適用されています。 クラスターの API サーバーに対して実行される要求について、独自のフロー・スキーマと優先度レベルを構成することができます。 詳細については、『 Kubernetes 』のドキュメントにある「 APIの優先順位と公平性 」を参照してください。

例えば、あるユーザーまたは名前空間で、実稼働環境の重要なアプリを実行するとします。 フロー・スキーマと優先度を作成することで、重要なアプリの要求がクラスターの他のアプリよりも優先して API サーバーで満たされるようにすることができます。

デフォルトのフロー・スキーマおよび優先度レベルの確認

Red Hat OpenShift on IBM Cloud には、Kubernetes のデフォルト設定に加えて、いくつかのデフォルトのフロー・スキーマと優先度レベルが設定されています。

デフォルトのフロー・スキーマと優先順位
フロー・スキーマ 要求元のリソース 優先順位
apiserver-health Kubernetes API サーバーの正常性に関するリソース これらのリソースではカスタム優先順位です。
calico-apiserver-service-accounts 名前空間内のサービス・アカウントを使用する calico-apiserver 名前空間内のリソース kube-system のネームスペースのサービスアカウントと同じ優先度です。 このスキーマは、 Red Hat OpenShift on IBM Cloud のバージョン 4.16 以降で利用可能です。
calico-system-service-accounts 名前空間内のサービス・アカウントを使用する calico-system 名前空間内のリソース kube-system のネームスペースのサービスアカウントと同じ優先度です。
ibm-admin IBM クラスター管理者のリソース クラスター管理者による要求を優先順位の制限から除外します。
ibm-system-service-accounts 名前空間内のサービス・アカウントを使用する ibm-system 名前空間内のリソース kube-system 名前空間サービス・アカウントと同じ優先順位
tigera-operator-service-accounts 名前空間内のサービス・アカウントを使用する tigera-operator 名前空間内のリソース kube-system のネームスペースのサービスアカウントと同じ優先度です。

独自のフロー・スキーマと優先度を作成することはできますが、デフォルトの設定は変更しないでください。 API 要求の優先度を変更すると、予期しない結果がクラスターに生じる可能性があります。

以下の手順に従って、Red Hat OpenShift on IBM Cloud によって設定されたフロー・スキーマおよび優先度レベルを確認します。

  1. クラスター内のすべてのフロースキーマ( Red Hat OpenShift on IBM Cloud で設定されたものを含む)と、それに対応する優先度レベルを一覧表示します。
    oc get flowschemas
    
  2. 特定のフロー・スキーマの詳細を確認します。例えば、優先される API 要求を行えるリソース、行える API 要求のタイプ、要求で変更できるオブジェクトなどを確認します。
    oc describe flowschema <flow-schema-name>
    

Red Hat OpenShift on IBM Cloud 作成の優先順位構成の表示

Red Hat OpenShift on IBM Cloud は、apiserver-health リソースのカスタム優先順位構成を設定します。

以下のコマンドを使用して、構成に関する詳細を表示します。

oc get prioritylevelconfiguration apiserver-health
oc describe prioritylevelconfiguration apiserver-health