Permissões do componente de exibição do Knative

Use esta página para entender as permissões do RBAC que os componentes do Knative Serving mantêm para manter o acesso ao cluster. Essas permissões são obrigatórias e ativadas por padrão na veiculação do Knative. Não tente desativá-las.

Componentes Namespace Conta de serviço
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

A conta de serviço cloud-run-operator tem o mesmo conjunto de permissões que controller. É ele que implanta todos os componentes de exibição do Knative, incluindo controladores e definições de recursos personalizados.

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

Use as seguintes definições de apiGroup para entender quais permissões controle de acesso cada recurso tem na exibição do Knative 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 a seguir lista como as permissões do RBAC são usadas na exibição do Knative, em que:

  • view inclui os verbos: get, list, watch
  • modify inclui os verbos: create, update, delete, patch
Permissões Motivos
Pode ver todos os secrets O webhook precisa ler o secret do namespace knative-serving. O controlador do mapeamento de domínios precisa ler o secret do certificado gerada pelo recurso TLS automático e, em seguida, copiá-las para o namespace gke-system.
Pode modificar pods O controlador do mapeamento de domínios precisa criar um pod para exibir solicitações ao desafio HTTP01 correspondente.
Pode modificar secrets O controlador de mapeamento de domínio precisa criar ou atualizar o secret do certificado. O webhook precisa ler o secret do namespace knative-serving.
Pode modificar configmaps Usado no recurso de URL padrão. O controlador precisa atualizar o configmap "config-domain" no namespace "knative-serving" para adicionar o URL "nip.io".
Pode modificar endpoints O controlador sem servidor precisa criar, atualizar ou excluir os endpoints. O controlador de rotas precisa criar, atualizar ou excluir os endpoints.
Pode modificar services O controlador de rotas precisa criar, atualizar ou excluir um serviço. O controlador sem servidor precisa criar, atualizar ou excluir um serviço. O controlador de mapeamento de domínio precisa criar um serviço para atender a solicitações de desafio HTTP01.
Pode modificar events O controlador de disponibilização do Knative cria e emite eventos para os recursos gerenciados pelo Knative.
Pode modificar serviceaccounts O Knative precisa ler uma conta de serviço indiretamente.
Pode modificar endpoints/restricted A veiculação do Knative precisa criar endpoints quando RestrictedEndpointsAdmission está ativado.
Pode modificar deployments O controlador de revisão precisa criar ou atualizar uma implantação para o serviço Knative.
Pode modificar mutatingwebhookconfiguration O webhook do Knative adiciona caBundle a mutatingwebhookconfigurations de propriedade do Knative.
Pode modificar validatingwebhookconfiguration O webhook do Knative adiciona o caBundle a validatingwebhookconfigurations de propriedade do Knative.
Pode modificar customresourcedifinitions customresourcedefinitions/status O job de pós-instalação do Knative precisa fazer upgrade dos CRDs relacionados ao Knative para a versão v1.
Pode modificar horizontalpodautoscalers O Knative é compatível com o escalonamento automático baseado em HPA.
Pode modificar namespace/finalizer A exibição do Knative precisa definir o valor de "ownerreference" como o namespace de exibição do Knative.