Autorizzazioni del componente di pubblicazione Knative

Utilizza questa pagina per comprendere le autorizzazioni RBAC conservate dai componenti di pubblicazione Knative per mantenere l'accesso al cluster. Queste autorizzazioni sono obbligatorie e abilitate per impostazione predefinita nella pubblicazione con Knative; non tentare di disabilitarle.

Componenti Spazio dei nomi Account di servizio
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 operatore-cloud-run

Tieni presente che l'account di servizio cloud-run-operator ha lo stesso insieme di autorizzazioni di controller. È l'operatore che esegue il deployment di tutti i componenti di pubblicazione Knative, inclusi controller e definizioni di risorse personalizzate.

RBAC per gli account di servizio di gestione di Knative

Utilizza le seguenti definizioni di apiGroup per comprendere le autorizzazioni di controllo dell'accesso dell'accesso di cui dispone ciascuna risorsa nella gestione di Knative per gli account di servizio controller e cloud-run-operator.

- 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

Nella tabella seguente sono elencate le modalità di utilizzo delle autorizzazioni RBAC nella pubblicazione con Knative, dove:

  • view include i verbi: get, list, watch
  • modify include i verbi: crea, aggiorna, elimina, patch
Autorizzazioni Motivi
Può visualizzare tutti: secrets Il webhook deve leggere il secret dallo spazio dei nomi knative-serving. Il controller di mappatura di dominio deve leggere il secret del certificato generato dalla funzionalità TLS automatico e poi copiarlo nello spazio dei nomi gke-system.
È possibile modificare pods Il controller DomainMapping deve creare un pod che viene utilizzato per gestire le richieste per il completamento della verifica HTTP01.
È possibile modificare secrets Il controller di mappatura di dominio deve creare o aggiornare il secret del certificato. Il webhook deve leggere il secret dallo spazio dei nomi knative-serving.
È possibile modificare configmaps Utilizzato nella funzionalità URL predefinito. Il controller deve aggiornare la risorsa configmap "config-domain" all'interno dello spazio dei nomi "knative-serving" per aggiungere l'URL "nip.io".
È possibile modificare endpoints Il controller Serverlessservice deve creare, aggiornare o eliminare gli endpoint. Il controller di route deve creare, aggiornare o eliminare gli endpoint.
È possibile modificare services Il controller di route deve creare, aggiornare o eliminare un servizio. Il controller serverless deve creare, aggiornare o eliminare un servizio. Il controller di mappatura dei domini deve creare un servizio per gestire le richieste di verifica HTTP01.
È possibile modificare events Il controller di pubblicazione Knative crea ed emette eventi per le risorse gestite da Knative.
È possibile modificare serviceaccounts La pubblicazione Knative deve leggere indirettamente un account di servizio.
È possibile modificare endpoints/restricted La gestione Knative deve creare endpoint quando RestrictedEndpointsAdmission è abilitato.
È possibile modificare deployments Il controller delle revisioni deve creare o aggiornare un deployment per il servizio Knative.
È possibile modificare mutatingwebhookconfiguration Il webhook Knative aggiunge caBundle alle configurazioni mutatingwebhook di proprietà di Knative.
È possibile modificare validatingwebhookconfiguration Il webhook Knative aggiunge caBundle alle configurazioni di convalidawebhook di proprietà di Knative.
Può modificare customresourcedifinitions customresourcedefinitions/status Il job di post-installazione di Knative deve eseguire l'upgrade dei CRD correlati a Knative alla versione v1.
È possibile modificare horizontalpodautoscalers Knative supporta la scalabilità automatica basata su HPA.
È possibile modificare namespace/finalizer La pubblicazione Knative deve impostare il riferimento del proprietario allo spazio dei nomi Knative-serving.