Usa esta página para comprender los permisos de RBAC que contienen los componentes de Knative serving para mantener el acceso al clúster. Estos permisos son obligatorios y están habilitados de forma predeterminada en Knative serving; 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 lo que implementa todos los componentes de Knative serving, incluidas las definiciones de recursos y los controladores personalizados.
RBAC para cuentas de servicio de Knative serving
Usa las siguientes definiciones apiGroup
para comprender 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 muestra cómo se usan los permisos de RBAC en Knative serving, en los que sucede lo siguiente:
- view incluye los verbos: get, list, watch
- modify incluye los verbos: create, update, delete, patch
Permisos | Razones |
---|---|
Puede ver todos los secrets |
Webhook necesita leer el secreto del espacio de nombres knative-serving .
El controlador de asignación de dominios debe leer el secreto de certificado que genera la función de TLS automática y, luego, copiarlo en el espacio de nombres gke-system . |
Puede modificar pods |
El controlador de DomainMapping necesita crear un Pod que se use para entregar solicitudes al desafío de HTTP01 completado. |
Puede modificar secrets |
El controlador de asignación de dominio debe crear o actualizar el secreto de certificado.
Webhook necesita 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 archivo configmap “config-domain” dentro del espacio de nombres “knative-serving” para agregar la URL “nip.io”. |
Puede modificar endpoints |
El controlador de ServerlessService debe crear, actualizar o borrar los extremos. El controlador de ruta debe crear, actualizar o borrar los extremos. |
Puede modificar services |
El controlador de ruta debe crear, actualizar o borrar un servicio. El controlador sin servidores debe crear, actualizar o borrar un servicio. El controlador de asignación de dominio debe crear un servicio para entregar solicitudes de desafío de HTTP01. |
Puede modificar events |
El controlador de Knative serving crea y emite eventos para los recursos que administra Knative. |
Puede modificar serviceaccounts |
Knative serving necesita leer una cuenta de servicio de forma indirecta. |
Puede modificar endpoints/restricted |
Knative serving necesita crear extremos cuando RestrictedEndpointsAdmission esté habilitado. |
Puede modificar deployments |
El controlador de revisión debe crear o actualizar una implementación para el servicio de Knative. |
Puede modificar mutatingwebhookconfiguration |
El webhook de Knative agrega caBundle a las configuraciones de mutatingwebhook que son propiedad de Knative. |
Puede modificar validatingwebhookconfiguration |
El webhook de Knative agrega caBundle a las configuraciones de validwebhook que son propiedad de Knative. |
Puede modificar customresourcedifinitions customresourcedefinitions/status |
El trabajo posterior a la instalación de Knative debe actualizar las CRD relacionadas con Knative a la versión 1. |
Puede modificar horizontalpodautoscalers |
Knative admite el ajuste de escala automático basado en HPA. |
Puede modificar namespace/finalizer |
Knative serving debe establecer ownerreference en el espacio de nombres de Knative-serving. |