このページは、Knative serving のコンポーネントがクラスタへのアクセスを維持するために保持する RBAC 権限について説明します。これらの権限は必須で、Knative serving ではデフォルトで有効になっています。これらは無効にしないでください。
コンポーネント | Namespace | サービス アカウント |
---|---|---|
activator |
knative-serving | controller |
autoscaler |
knative-serving | controller |
controller |
knative-serving | controller |
webhook |
knative-serving | controller |
storage-version-migration-serving |
knative-serving | controller |
webhook |
knative-serving | controller |
cloud-run-operator |
cloud-run-system | cloud-run-operator |
cloud-run-operator
サービス アカウントには、controller
と同じ権限セットがあります。このオペレータは、カスタム リソース定義とコントローラを含むすべての Knative serving コンポーネントをデプロイします。
Knative serving サービス アカウントの RBAC
次の apiGroup
定義を使用して、controller
と cloud-run-operator
の両方のサービス アカウントに対して Knative serving の各リソースが持っているアクセス制御権限を確認してください。
- apiGroups:
- ""
resources:
- pods
- secrets
verbs:
- deletecollection
- apiGroups:
- ""
resources:
- nodes
verbs:
- get
- watch
- list
- apiGroups:
- ""
resources:
- pods
- namespaces
- secrets
- configmaps
- endpoints
- services
- events
- serviceaccounts
verbs:
- get
- list
- create
- update
- delete
- patch
- watch
- apiGroups:
- ""
resources:
- endpoints/restricted
verbs:
- create
- apiGroups:
- ""
resources:
- namespaces/finalizers
verbs:
- update
- apiGroups:
- apps
resources:
- deployments
- deployments/finalizers
verbs:
- get
- list
- create
- update
- delete
- patch
- watch
- apiGroups:
- admissionregistration.k8s.io
resources:
- mutatingwebhookconfigurations
- validatingwebhookconfigurations
verbs:
- get
- list
- create
- update
- delete
- patch
- watch
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
- customresourcedefinitions/status
verbs:
- get
- list
- create
- update
- delete
- patch
- watch
- apiGroups:
- autoscaling
resources:
- horizontalpodautoscalers
verbs:
- get
- list
- create
- update
- delete
- patch
- watch
- apiGroups:
- coordination.k8s.io
resources:
- leases
verbs:
- get
- list
- create
- update
- delete
- patch
- watch
- apiGroups:
- admissionregistration.k8s.io
resources:
- validatingwebhookconfigurations
verbs:
- get
- list
- create
- update
- delete
- patch
- watch
次の表は、Knative serving で RBAC 権限がどのように使用されるかを示しています。ここで、
- 表示には、取得、一覧表示、監視が含まれます。
- 変更には、作成、更新、削除、パッチ適用が含まれます。
権限 | 理由 |
---|---|
すべての secrets を表示できる |
Webhook は knative-serving Namespace から Secret を読み取る必要があります。ドメイン マッピング コントローラは、自動 TLS 機能によって生成された証明書の Secret を読み取り、gke-system Namespace にコピーする必要があります。 |
pods を変更できる |
ドメイン マッピング コントローラは、HTTP01 チャレンジを処理するリクエストに対応する Pod を作成する必要があります。 |
secrets を変更できる |
ドメイン マッピング コントローラは証明書の Secret を作成または更新する必要があります。Webhook は knative-serving Namespace から Secret を読み取る必要があります。 |
configmaps を変更できる |
デフォルトの URL 機能で使用されます。コントローラは、Knative serving Namespace 内の config-domain configmap を更新して、nip.io URL を追加する必要があります。 |
endpoints を変更できる |
サーバーレス サービス コントローラは、エンドポイントを作成、更新、または削除する必要があります。ルート コントローラは、エンドポイントを作成、更新、または削除する必要があります。 |
services を変更できる |
ルート コントローラは、サービスを作成、更新、または削除する必要があります。サーバーレス コントローラは、サービスを作成、更新、または削除する必要があります。ドメイン マッピング コントローラは、HTTP01 チャレンジ リクエストを処理するサービスを作成する必要があります。 |
events を変更できる |
Knative serving コントローラは、Knative によって管理されるリソースのイベントを作成して出力します。 |
serviceaccounts を変更できる |
Knative serving は、サービス アカウントを間接的に読み取る必要があります。 |
endpoints/restricted を変更できる |
RestrictedEndpointsAdmission が有効な場合、Knative serving はエンドポイントを作成する必要があります。 |
deployments を変更できる |
リビジョン コントローラは、Knative サービスのデプロイを作成または更新する必要があります。 |
mutatingwebhookconfiguration を変更できる |
Knative Webhook は、Knative が所有する mutatingwebhookconfigurations に caBundle を追加します。 |
validatingwebhookconfiguration を変更できる |
Knative Webhook は、Knative が所有する validatingwebhookconfigurations に caBundle を追加します。 |
customresourcedifinitions customresourcedefinitions/status を変更できる |
Knative のインストール後のジョブでは、Knative 関連の CRD を v1 バージョンにアップグレードする必要があります。 |
horizontalpodautoscalers を変更できる |
Knative は、HPA に基づく自動スケーリングをサポートしています。 |
namespace/finalizer を変更できる |
Knative serving では、Knative serving の Namespace に ownerreference を設定する必要があります。 |