Kubernetes API の優先度およびフェアネスの設定
IBM Cloud® Kubernetes Service クラスターのデフォルト設定は、API サーバーに対する要求を同時に処理することと、トラフィックの過負荷を回避することを目的として設定されています。 クラスターの API サーバーに対して実行される要求について、独自のフロー・スキーマと優先度レベルを構成することができます。 詳細については、Kubernetes ドキュメントの API priority and fairness を参照してください。
例えば、あるユーザーまたは名前空間で、実稼働環境の重要なアプリを実行するとします。 フロー・スキーマと優先度を作成することで、重要なアプリの要求がクラスターの他のアプリよりも優先して API サーバーで満たされるようにすることができます。
デフォルトのフロー・スキーマおよび優先度レベルの確認
Kubernetes のデフォルト設定に加えて、IBM Cloud Kubernetes Service によって特定のデフォルトのフロー・スキーマと優先順位レベルが設定されます。
フロー・スキーマ | 要求元のリソース | 優先順位 |
---|---|---|
apiserver-health |
Kubernetes API サーバーの正常性に関するリソース | これらのリソースではカスタム優先順位です。 |
calico-apiserver-service-accounts |
名前空間内のサービス・アカウントを使用する calico-apiserver 名前空間内のリソース |
kube-system 名前空間サービスアカウントと同じ優先順位。 このスキーマはIBM Cloud® Kubernetes Serviceバージョン1.31以降で利用可能です。 |
calico-system-service-accounts |
名前空間内のサービス・アカウントを使用する calico-system 名前空間内のリソース |
kube-system 名前空間サービスアカウントと同じ優先順位。 このスキーマはIBM Cloud® Kubernetes Serviceバージョン1.29以降で利用可能です。 |
ibm-admin |
IBM クラスター管理者のリソース | クラスター管理者による要求を優先順位の制限から除外します。 |
ibm-system-service-accounts |
名前空間内のサービス・アカウントを使用する ibm-system 名前空間内のリソース |
kube-system 名前空間サービス・アカウントと同じ優先順位 |
ibm-operators-service-accounts |
名前空間内のサービス・アカウントを使用する ibm-operators 名前空間内のリソース |
kube-system 名前空間サービスアカウントと同じ優先順位。 |
system-node-proxiers |
kube-proxy |
kubelet と同じ優先順位 |
tigera-operator-service-accounts |
名前空間内のサービス・アカウントを使用する tigera-operator 名前空間内のリソース |
kube-system 名前空間サービスアカウントと同じ優先順位。 このスキーマはIBM Cloud® Kubernetes Serviceバージョン1.29以降で利用可能です。 |
独自のフロー・スキーマと優先度を作成することはできますが、デフォルトの設定は変更しないでください。 API 要求の優先度を変更すると、予期しない結果がクラスターに生じる可能性があります。
IBM Cloud Kubernetes Service によって設定されたフロー・スキーマと優先順位レベルを確認するには、以下の手順に従います。
-
クラスター内のすべてのフロー・スキーマ (IBM Cloud Kubernetes Service によって設定されたものを含む) と、それらに対応する優先順位レベルをリストします。
kubectl get flowschemas
-
特定のフロー・スキーマの詳細を確認します。例えば、優先される API 要求を行えるリソース、行える API 要求のタイプ、要求で変更できるオブジェクトなどを確認します。
kubectl describe flowschema <flow-schema-name>
IBM Cloud Kubernetes Service 作成の優先順位構成の表示
IBM Cloud Kubernetes Service は、 apiserver-health
リソースのカスタム優先順位構成を設定します。
以下のコマンドを使用して、構成に関する詳細を表示します。
kubectl get prioritylevelconfiguration apiserver-health
kubectl describe prioritylevelconfiguration apiserver-health