Autorizzazioni dei componenti Knative serving

Utilizza questa pagina per comprendere le autorizzazioni RBAC detenute dai componenti di Knative Serving per mantenere l'accesso al cluster. Queste autorizzazioni sono obbligatorie e abilitate per impostazione predefinita in Knative serving. Non tentare di disattivarle.

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 come controller. L'operatore esegue il deployment di tutti i componenti di servizio Knative, inclusi i controller e le definizioni di risorse personalizzate.

RBAC per gli account di servizio Knative serving

Utilizza le seguenti definizioni apiGroup per capire quali autorizzazioni di controllo dell'accesso ha ogni risorsa nel servizio Knative sia per gli account di servizio controller sia per quelli 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

La tabella seguente elenca come vengono utilizzate le autorizzazioni RBAC in Knative serving, dove:

  • view include i verbi: get, list, watch
  • modify include i verbi: create, update, delete, patch
Autorizzazioni Motivi
Può visualizzare tutti i secrets L'webhook deve leggere il secret dallo spazio dei nomi knative-serving. Il controller di mappatura dei domini deve leggere il segreto del certificato generato dalla funzionalità TLS automatico e poi copiarlo nello spazio dei nomi gke-system.
Può modificare pods Il controller DomainMapping deve creare un pod utilizzato per gestire le richieste per la verifica HTTP01.
Può modificare secrets Il controller di mappatura del dominio deve creare o aggiornare il secret del certificato. Il webhook deve leggere il secret dallo spazio dei nomi knative-serving.
Può modificare configmaps Utilizzato nella funzionalità dell'URL predefinito. Il controller deve aggiornare "dominio-config" configmap all'interno della cartella "knative-serving" per aggiungere l'URL "nip.io".
Può modificare endpoints Il controller del servizio serverless deve creare, aggiornare o eliminare gli endpoint. Il controller di route deve creare, aggiornare o eliminare endpoint.
Può 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.
Può modificare events Il controller Knative serving crea ed emette eventi per le risorse gestite da Knative.
Può modificare serviceaccounts Il servizio Knative deve leggere un account di servizio indirettamente.
Può modificare endpoints/restricted Knative serving deve creare endpoint quando RestrictedEndpointsAdmission è abilitato.
Può modificare deployments Il controller di revisione deve creare o aggiornare un deployment per Knative completamente gestito di Google Cloud.
Può modificare mutatingwebhookconfiguration Il webhook Knative aggiunge caBundle alle configurazioni webhook con mutazioni di proprietà di Knative.
Può modificare validatingwebhookconfiguration L'webhook Knative aggiunge caBundle alle configurazioni di webhook di convalida 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 1 completamente gestita.
Può modificare horizontalpodautoscalers Knative supporta la scalabilità automatica basata su HPA.
Può modificare namespace/finalizer Knative serving deve impostare ownerreference sullo spazio dei nomi Knative-serving.