8.2. 複数のプロジェクト間のリソースクォータ
ClusterResourceQuota オブジェクトで定義される複数プロジェクトのクォータは、複数プロジェクト間でクォータを共有できるようにします。それぞれの選択されたプロジェクトで使用されるリソースは集計され、その集計は選択したすべてのプロジェクトでリソースを制限するために使用されます。
以下では、クラスター管理者が複数のプロジェクトでリソースクォータを設定および管理する方法を説明します。
デフォルトプロジェクトでワークロードを実行したり、デフォルトプロジェクトへのアクセスを共有したりしないでください。デフォルトのプロジェクトは、コアクラスターコンポーネントを実行するために予約されています。
デフォルトプロジェクトである default、kube-public、kube-system、openshift、openshift-infra、openshift-node、および openshift.io/run-level ラベルが 0 または 1 に設定されているその他のシステム作成プロジェクトは、高い特権があるとみなされます。Pod セキュリティーアドミッション、Security Context Constraints、クラスターリソースクォータ、イメージ参照解決などのアドミッションプラグインに依存する機能は、高い特権を持つプロジェクトでは機能しません。
8.2.1. クォータ作成時の複数プロジェクトの選択 リンクのコピーリンクがクリップボードにコピーされました!
クォータの作成時に、アノテーションの選択、ラベルの選択、またはその両方に基づいて複数のプロジェクトを選択することができます。
手順
アノテーションに基づいてプロジェクトを選択するには、以下のコマンドを実行します。
$ oc create clusterquota for-user \ --project-annotation-selector openshift.io/requester=<user_name> \ --hard pods=10 \ --hard secrets=20これにより、以下の
ClusterResourceQuotaオブジェクトが作成されます。apiVersion: quota.openshift.io/v1 kind: ClusterResourceQuota metadata: name: for-user spec: quota:1 hard: pods: "10" secrets: "20" selector: annotations:2 openshift.io/requester: <user_name> labels: null3 status: namespaces:4 - namespace: ns-one status: hard: pods: "10" secrets: "20" used: pods: "1" secrets: "9" total:5 hard: pods: "10" secrets: "20" used: pods: "1" secrets: "9"- 1
- 選択されたプロジェクトに対して実施される
ResourceQuotaSpecオブジェクトです。 - 2
- アノテーションの単純なキー/値のセレクターです。
- 3
- プロジェクトを選択するために使用できるラベルセレクターです。
- 4
- 選択された各プロジェクトの現在のクォータの使用状況を記述する namespace ごとのマップです。
- 5
- 選択されたすべてのプロジェクトにおける使用量の総計です。
この複数プロジェクトのクォータの記述は、デフォルトのプロジェクト要求エンドポイントを使用して
<user_name>によって要求されるすべてのプロジェクトを制御します。ここでは、10 Pod および 20 シークレットに制限されます。
同様にラベルに基づいてプロジェクトを選択するには、以下のコマンドを実行します。
$ oc create clusterresourcequota for-name \1 --project-label-selector=name=frontend \2 --hard=pods=10 --hard=secrets=20- 1
clusterresourcequotaおよびclusterquotaはいずれも同じコマンドのエイリアスです。for-nameはClusterResourceQuotaオブジェクトの名前です。- 2
- ラベル別にプロジェクトを選択するには、
--project-label-selector=key=value形式を使用してキーと値のペアを指定します。これにより、以下の
ClusterResourceQuotaオブジェクト定義が作成されます。apiVersion: quota.openshift.io/v1 kind: ClusterResourceQuota metadata: creationTimestamp: null name: for-name spec: quota: hard: pods: "10" secrets: "20" selector: annotations: null labels: matchLabels: name: frontend