Permisos del componente de Knative serving

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.