Berechtigungen für Knative Serving-Komponenten

Auf dieser Seite werden die RBAC-Berechtigungen erläutert, die die Komponenten von Knative Serving enthalten, um den Zugriff auf den Cluster beizubehalten. Diese Berechtigungen sind in Knative Serving standardmäßig erforderlich und 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. Mit dem Operator werden alle Knative Serving-Komponenten bereitgestellt, einschließlich benutzerdefinierter Ressourcendefinitionen und Controller.

RBAC für Knative Serving-Dienstkonten

Verwenden Sie die folgenden apiGroup-Definitionen, um zu verstehen, welche Zugriffssteuerungsberechtigungen jede Ressource in Knative Serving für die Dienstkonten controller und cloud-run-operator 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 ist die Verwendung der RBAC-Berechtigungen in Knative Serving aufgeführt, wobei Folgendes 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 Knative Serving-Controller erstellt Ereignisse für die von Knative verwalteten Ressourcen und gibt sie aus.
Kann serviceaccounts bearbeiten Knative Serving muss das Dienstkonto indirekt lesen.
Kann endpoints/restricted bearbeiten Knative Serving muss Endpunkte erstellen, wenn „RestrictedEndpointsAdmission“ 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 Knative Serving muss „ownerreference“ auf den Namespace festlegen, der Knative bereitstellt.