En esta página se explican los permisos de control de acceso basado en roles (RBAC) que tienen los componentes de Knative Serving para mantener el acceso al clúster. Estos permisos son obligatorios y están habilitados de forma predeterminada en el servicio de Knative. No intentes inhabilitarlos.
Componentes | Espacio de nombres | Cuenta de servicio |
---|---|---|
activator |
knative-serving | controlador |
autoscaler |
knative-serving | controlador |
controller |
knative-serving | controlador |
webhook |
knative-serving | controlador |
storage-version-migration-serving |
knative-serving | controlador |
webhook |
knative-serving | controlador |
cloud-run-operator |
cloud-run-system | cloud-run-operator |
Ten en cuenta que la cuenta de servicio cloud-run-operator
tiene el mismo conjunto de permisos que controller
. El operador es el que implementa todos los componentes de Knative Serving, incluidas las definiciones de recursos personalizados y los controladores.
RBAC para cuentas de servicio de Knative Serving
Consulta las siguientes definiciones de apiGroup
para saber qué permisos de control de acceso tiene cada recurso en Knative Serving para las cuentas de servicio controller
y 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
En la siguiente tabla se indica cómo se usan los permisos de RBAC en Knative Serving.
- view incluye los verbos get, list y watch.
- Modificar incluye los verbos crear, actualizar, eliminar y parchear.
Permisos | Motivos |
---|---|
Puede ver todos los secrets |
El webhook debe leer el secreto del espacio de nombres knative-serving .
El controlador de asignación de dominio debe leer el secreto del certificado generado por la función TLS automática y, a continuación, copiarlo en el espacio de nombres gke-system . |
Puede modificar pods |
El controlador DomainMapping debe crear un pod que se use para atender las solicitudes de la verificación HTTP01. |
Puede modificar secrets |
El controlador de asignación de dominio necesita crear o actualizar el secreto del certificado.
El webhook debe leer el secreto del espacio de nombres knative-serving . |
Puede modificar configmaps |
Se usa en la función de URL predeterminada. El controlador debe actualizar el configmap "config-domain" en el espacio de nombres "knative-serving" para añadir la URL `nip.io`. |
Puede modificar endpoints |
El controlador de servicio sin servidor necesita crear, actualizar o eliminar los endpoints. El controlador de ruta debe crear, actualizar o eliminar los endpoints. |
Puede modificar services |
El controlador de ruta necesita crear, actualizar o eliminar un servicio. El controlador sin servidor necesita crear, actualizar o eliminar un servicio. El controlador de asignación de dominios debe crear un servicio para atender las solicitudes de verificación HTTP01. |
Puede modificar events |
El controlador de servicio de Knative crea y emite eventos para los recursos gestionados por Knative. |
Puede modificar serviceaccounts |
Knative Serving necesita leer una cuenta de servicio de forma indirecta. |
Puede modificar endpoints/restricted |
Knative Serving necesita crear endpoints cuando RestrictedEndpointsAdmission está habilitado. |
Puede modificar deployments |
El controlador de revisiones debe crear o actualizar un despliegue para el servicio de Knative. |
Puede modificar mutatingwebhookconfiguration |
El webhook de Knative añade caBundle a los mutatingwebhookconfigurations propiedad de Knative. |
Puede modificar validatingwebhookconfiguration |
El webhook de Knative añade caBundle a las validatingwebhookconfigurations propiedad de Knative. |
Puede modificar
customresourcedifinitions customresourcedefinitions/status |
El trabajo posterior a la instalación de Knative debe actualizar los CRDs relacionados con Knative a la versión v1. |
Puede modificar horizontalpodautoscalers |
Knative admite el autoescalado basado en HPA. |
Puede modificar namespace/finalizer |
El servicio de Knative debe definir ownerreference en el espacio de nombres de Knative-serving. |