Autorizzazioni dei componenti di Knative serving

Utilizza questa pagina per comprendere le autorizzazioni RBAC che i componenti di Knative Serving detengono per mantenere l'accesso al cluster. Queste autorizzazioni sono obbligatorie e attive 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 cloud-run-operator

Tieni presente che il account di servizio cloud-run-operator ha lo stesso insieme di autorizzazioni di controller. L'operatore è ciò che esegue il deployment di tutti i componenti di Knative Serving, incluse le definizioni di risorse personalizzate e i controller.

RBAC per i service account Knative serving

Utilizza le seguenti definizioni di apiGroup per capire quali autorizzazioni di controllo dell'accesso dell'accesso ha ogni risorsa in Knative Serving 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

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

  • view include i verbi: get, list, watch
  • modifica include i verbi: crea, aggiorna, elimina, patch
Autorizzazioni Motivi
Può visualizzare tutti i secrets Il webhook deve leggere il secret dallo spazio dei nomi knative-serving. Il controller Domainmapping deve leggere il secret del certificato generato dalla funzionalità TLS automatica 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 il completamento della sfida HTTP01.
Può modificare secrets Il controller di mappatura del dominio deve creare o aggiornare il segreto del certificato. Il webhook deve leggere il secret dallo spazio dei nomi knative-serving.
Può modificare configmaps Utilizzato nella funzionalità URL predefinito. Il controller deve aggiornare la configmap "config-domain" all'interno dello spazio dei nomi "knative-serving" per aggiungere l'URL `nip.io`.
Può modificare endpoints Il controller Serverlessservice deve creare, aggiornare o eliminare gli endpoint. Il controller di routing deve creare, aggiornare o eliminare gli endpoint.
Può modificare services Il controller di routing deve creare, aggiornare o eliminare un servizio. Il controller serverless deve creare, aggiornare o eliminare un servizio. Il controller Domainmapping deve creare un servizio per la gestione delle richieste di verifica HTTP01.
Può modificare events Il controller Knative serving crea ed emette eventi per le risorse gestite da Knative.
Può modificare serviceaccounts Knative Serving deve leggere un account di servizio indirettamente.
Può modificare endpoints/restricted Knative serving deve creare endpoint quando RestrictedEndpointsAdmission è abilitato.
Può modificare deployments Il controller delle revisioni deve creare o aggiornare un deployment per il servizio Knative.
Può modificare mutatingwebhookconfiguration Il webhook Knative aggiunge caBundle alle mutatingwebhookconfigurations di proprietà di Knative.
Può modificare validatingwebhookconfiguration Il webhook Knative aggiunge caBundle alle validatingwebhookconfigurations di proprietà di Knative.
Può modificare customresourcedifinitions customresourcedefinitions/status Il job post-installazione di Knative deve eseguire l'upgrade delle CRD correlate a Knative alla versione v1.
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.