Autorizações dos componentes de serviço do Knative

Use esta página para compreender as autorizações RBAC que os componentes do Knative serving detêm para manter o acesso ao cluster. Estas autorizações são necessárias e estão ativadas por predefinição no Knative serving. Não tente desativá-las.

Componentes Espaço de nomes Conta de serviço
activator knative-serving responsável
autoscaler knative-serving responsável
controller knative-serving responsável
webhook knative-serving responsável
storage-version-migration-serving knative-serving responsável
webhook knative-serving responsável
cloud-run-operator cloud-run-system cloud-run-operator

Tenha em atenção que a conta de serviço cloud-run-operator tem o mesmo conjunto de autorizações que controller. O operador é o que implementa todos os componentes do Knative Serving, incluindo definições de recursos personalizadas e controladores.

RBAC para contas de serviço de publicação do Knative

Use as seguintes definições apiGroup para compreender que autorizações de controlo de acesso cada recurso tem no Knative Serving para as contas de serviço 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

A tabela seguinte indica como as autorizações RBAC são usadas no Knative serving, onde:

  • view inclui os verbos: get, list, watch
  • modify inclui os verbos: create, update, delete, patch
Autorizações Motivos
Pode ver todos os secrets O webhook tem de ler o segredo do espaço de nomes knative-serving. O controlador de mapeamento de domínios tem de ler o segredo do certificado gerado pela funcionalidade TLS automático e, em seguida, copiá-lo para o espaço de nomes gke-system.
Pode modificar pods O controlador DomainMapping tem de criar um pod que é usado para publicar pedidos para o desafio HTTP01.
Pode modificar secrets O controlador de mapeamento de domínios tem de criar ou atualizar o segredo do certificado. O webhook tem de ler o segredo do espaço de nomes knative-serving.
Pode modificar configmaps Usado na funcionalidade de URL predefinido. O controlador tem de atualizar o configmap "config-domain" no espaço de nomes "knative-serving" para adicionar o URL `nip.io`.
Pode modificar endpoints O controlador Serverlessservice tem de criar, atualizar ou eliminar os pontos finais. O controlador de rotas tem de criar, atualizar ou eliminar os pontos finais.
Pode modificar services O controlador de rotas tem de criar, atualizar ou eliminar um serviço. O controlador sem servidor tem de criar, atualizar ou eliminar um serviço. O controlador de mapeamento de domínios tem de criar um serviço para publicar pedidos de desafio HTTP01.
Pode modificar events O controlador de publicação do Knative cria e emite eventos para os recursos geridos pelo Knative.
Pode modificar serviceaccounts O Knative Serving tem de ler uma conta de serviço indiretamente.
Pode modificar endpoints/restricted O Knative serving tem de criar pontos finais quando o RestrictedEndpointsAdmission está ativado.
Pode modificar deployments O controlador de revisões tem de criar ou atualizar uma implementação para o serviço Knative.
Pode modificar mutatingwebhookconfiguration O webhook do Knative adiciona caBundle às mutatingwebhookconfigurations pertencentes ao Knative.
Pode modificar validatingwebhookconfiguration O webhook do Knative adiciona caBundle às validatingwebhookconfigurations pertencentes ao Knative.
Pode modificar customresourcedifinitions customresourcedefinitions/status O trabalho pós-instalação do Knative tem de atualizar os CRDs relacionados com o Knative para a versão 1.
Pode modificar horizontalpodautoscalers O Knative suporta o dimensionamento automático com base no HPA.
Pode modificar namespace/finalizer O Knative serving tem de definir ownerreference para o espaço de nomes Knative-serving.