Permisos del componente de entrega de Knative

Usa esta página para comprender los permisos de RBAC que conservan los componentes de la entrega de Knative a fin de mantener el acceso al clúster. Estos permisos son obligatorios y habilitados de forma predeterminada en la entrega de Knative. No intentes inhabilitarlos.

Componentes Espacio de nombres Cuenta de servicio
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

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 entrega de Knative, incluidas las definiciones de recursos personalizados y los controladores.

RBAC para cuentas de servicio de entrega de Knative

Usa las siguientes definiciones de apiGroup para comprender qué permisos de control de acceso tiene cada recurso en la entrega de Knative 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 la entrega de Knative, en la que:

  • view incluye los verbos: get, list, watch
  • modify incluye los verbos: create, update, delete, patch
Permisos Razones
Puede ver todos los secrets El webhook debe leer el secreto del espacio de nombres knative-serving. El controlador de asignación de dominios debe leer el secreto del certificado que genera la función 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 ConfigMap “config-domain” dentro del espacio de nombres “knative-serving” para agregar la URL “nip.io”.
Puede modificar endpoints El controlador sin servidores 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 entrega de Knative crea y emite eventos para los recursos que administra Knative.
Puede modificar serviceaccounts La entrega de Knative necesita leer una cuenta de servicio de forma indirecta.
Puede modificar endpoints/restricted La entrega de Knative debe crear extremos cuando RestrictedEndpointsAdmission está habilitada.
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 el HPA.
Puede modificar namespace/finalizer La entrega de Knative debe establecer el valor de ownerreference al espacio de nombres de Knative.