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. |