Permissões do componente do Knative serving

Use esta página para entender as permissões do RBAC que os componentes do Knative serving detêm para manter o acesso ao cluster. Essas permissões são obrigatórias e ativadas por padrão no Knative serving. 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. O operador é o que implanta todos os componentes do Knative serving, incluindo definições e controladores de recursos personalizados.

RBAC para contas de serviço do Knative serving

Use as definições de apiGroup a seguir para entender quais permissões de controle 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 a seguir lista como as permissões do RBAC são usadas no Knative serving, 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 do Knative serving cria e emite eventos para os recursos gerenciados pelo Knative.
Pode modificar serviceaccounts O Knative serving precisa ler uma conta de serviço indiretamente.
Pode modificar endpoints/restricted O Knative serving precisa criar endpoints quando o 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 O Knative serving precisa definir ownerreference para o namespace do Knative serving.