Berechtigungen für Knative-Bereitstellungskomponenten

Auf dieser Seite werden die RBAC-Berechtigungen beschrieben, die die Komponenten der Knative-Bereitstellung für den Zugriff auf den Cluster haben. Diese Berechtigungen sind für die Bereitstellung mit Knative erforderlich und standardmäßig aktiviert. Versuchen Sie nicht, sie zu deaktivieren.

Komponenten Namespace Dienstkonto
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

Beachten Sie, dass das Dienstkonto cloud-run-operator dieselben Berechtigungen wie controller hat. Der Operator stellt alle Knative-Bereitstellungskomponenten bereit, einschließlich benutzerdefinierter Ressourcendefinitionen und Controller.

RBAC für die Bereitstellung von Knative-Dienstkonten

Anhand der folgenden apiGroup-Definitionen können Sie nachvollziehen, welche Berechtigungen zur Zugriffssteuerung jede Ressource in der Knative-Bereitstellung sowohl für das controller- als auch für das cloud-run-operator-Dienstkonto hat.

- 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

In der folgenden Tabelle wird aufgeführt, wie die RBAC-Berechtigungen bei der Bereitstellung mit Knative verwendet werden. Dabei gilt:

  • view enthält die Verben: get, list, watch
  • modify enthält die Verben: erstellen, aktualisieren, löschen, patchen
Berechtigungen Gründe
Kann alle secrets ansehen Webhook muss das Secret aus dem Namespace knative-serving lesen. Der DomainMapping-Controller muss das von der automatischen TLS-Funktion generierte Zertifikat-Secret lesen und dann in den Namespace gke-system kopieren.
Kann pods bearbeiten Der DomainMapping-Controller muss einen Pod erstellen, der Anfragen zur Erfüllung der HTTP01-Herausforderung bereitstellt.
Kann secrets bearbeiten Der DomainMapping-Controller muss das Zertifikat-Secret erstellen oder aktualisieren. Webhook muss das Secret aus dem Namespace knative-serving lesen.
Kann configmaps bearbeiten Wird in der Standard-URL-Funktion verwendet. Der Controller muss die ConfigMap „config-domain“ im Namespace „knative-serving“ aktualisieren, um die URL „nip.io“ hinzuzufügen.
Kann endpoints bearbeiten Der serverlose Dienst-Controller muss die Endpunkte erstellen, aktualisieren oder löschen. Der Routen-Controller muss die Endpunkte erstellen, aktualisieren oder löschen.
Kann services bearbeiten Der Controller muss einen Dienst erstellen, aktualisieren oder löschen. Der serverlose Controller muss einen Dienst erstellen, aktualisieren oder löschen. Der DomainMapping-Controller muss einen Dienst erstellen, um HTTP01-Herausforderungsanfragen zu verarbeiten.
Kann events bearbeiten Der Knative Bereitstellungs-Controller erstellt und sendet Ereignisse für die von Knative verwalteten Ressourcen.
Kann serviceaccounts bearbeiten Knative Serving muss indirekt ein Dienstkonto lesen.
Kann endpoints/restricted bearbeiten Knative muss Endpunkte erstellen, wenn „Restricted EndpointsAdmission“ aktiviert ist.
Kann deployments bearbeiten Der Revisions-Controller muss eine Bereitstellung für den Knative-Dienst erstellen oder aktualisieren.
Kann mutatingwebhookconfiguration bearbeiten Knative-Webhook fügt CaBundle zu "mutatingwebhookconfigurations" hinzu, die zu Knative gehören.
Kann validatingwebhookconfiguration bearbeiten Knative-Webhook fügt CaBundle zu "validatingwebhookconfigurations" hinzu, die zu Knative gehören.
Kann customresourcedifinitions customresourcedefinitions/status bearbeiten Der Knative-Job nach der Installation muss ein Upgrade der Knative-zugehörigen CRDs auf Version 1 ausführen.
Kann horizontalpodautoscalers bearbeiten Knative unterstützt Autoscaling auf Basis von HPA.
Kann namespace/finalizer bearbeiten Bei der Bereitstellung von Knative muss der Inhaberverweis auf den Namespace für die Bereitstellung von Knative festgelegt werden.