Knative serving 구성요소 권한

이 페이지를 사용하여 Knative serving 구성요소가 클러스터에 대한 액세스 권한을 유지하기 위해 보유하는 RBAC 권한을 이해합니다. 이러한 권한은 필수 권한이며 기본적으로 Knative serving에 사용 설정되어 있습니다. 이를 사용 중지하려고 시도하지 마세요.

구성요소 네임스페이스 서비스 계정
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

cloud-run-operator 서비스 계정에는 controller와 동일한 권한 집합이 있습니다. 연산자는 커스텀 리소스 정의와 컨트롤러를 포함한 모든 Knative serving 구성요소를 배포합니다.

Knative serving 서비스 계정을 위한 RBAC

다음 apiGroup 정의를 사용하여 Knative serving에서 controllercloud-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

다음 표에는 RBAC 권한이 Knative serving에서 사용되는 방법이 나와 있습니다.

  • 보기에는 가져오기, 나열, 시청 동사가 포함됩니다.
  • 수정에는 만들기, 업데이트, 삭제, 패치 동사가 포함됩니다.
권한 이유
모든 secrets 보기 가능 웹훅은 knative-serving 네임스페이스에서 보안 비밀을 읽어야 합니다. Domainmapping 컨트롤러는 자동 TLS 기능으로 생성된 인증서 보안 비밀을 읽은 후 gke-system 네임스페이스에 복사해야 합니다.
pods 수정 가능 DomainMapping 컨트롤러는 HTTP01 도전과제를 처리하기 위한 요청을 제공하는 데 사용되는 포드를 만들어야 합니다.
secrets 수정 가능 Domainmapping 컨트롤러는 인증서 보안 비밀을 만들거나 업데이트해야 합니다. 웹훅은 knative-serving 네임스페이스에서 보안 비밀을 읽어야 합니다.
configmaps 수정 가능 기본 URL 기능에 사용됩니다. 컨트롤러는 'knative-serving' 네임스페이스에 있는 'config-domain' configmap을 업데이트하여 `nip.io` URL을 추가해야 합니다.
endpoints 수정 가능 서버리스 서비스 컨트롤러는 엔드포인트를 생성, 업데이트 또는 삭제해야 합니다. 경로 컨트롤러는 엔드포인트를 생성, 업데이트 또는 삭제해야 합니다.
services 수정 가능 경로 컨트롤러는 서비스를 생성, 업데이트 또는 삭제해야 합니다. 서버리스 컨트롤러는 서비스를 생성, 업데이트 또는 삭제해야 합니다. Domainmapping 컨트롤러는 HTTP01 도전과제 요청을 처리하기 위한 서비스를 만들어야 합니다.
events 수정 가능 Knative serving 컨트롤러가 Knative에서 관리하는 리소스의 이벤트를 만들고 내보냅니다.
serviceaccounts 수정 가능 Knative serving은 서비스 계정을 간접적으로 읽어야 합니다.
endpoints/restricted 수정 가능 RestrictedEndpointsAdmission이 사용 설정되면 Knative serving에서 엔드포인트를 만들어야 합니다.
deployments 수정 가능 버전 컨트롤러는 Knative 서비스의 배포를 만들거나 업데이트해야 합니다.
mutatingwebhookconfiguration 수정 가능 Knative 웹훅은 Knative에서 소유한 mutatingwebhookconfigurations에 caBundle을 추가합니다.
validatingwebhookconfiguration 수정 가능 Knative 웹훅은 Knative에서 소유한 validatingwebhookconfigurations에 caBundle을 추가합니다.
customresourcedifinitions customresourcedefinitions/status 수정 가능 Knative 설치 후 작업에서 Knative 관련 CRD를 v1 버전으로 업그레이드해야 합니다.
horizontalpodautoscalers 수정 가능 Knative에서 HPA 기반 자동 확장을 지원합니다.
namespace/finalizer 수정 가능 Knative serving은 Knative serving 네임스페이스에 대한 ownerreference를 설정해야 합니다.