Knative serving 元件權限

請參閱這個頁面,瞭解 Knative Serving 元件為維持叢集存取權而持有的 RBAC 權限。Knative serving 預設會啟用這些必要權限,請勿嘗試停用。

元件 命名空間 服務帳戶
activator knative-serving 控制器
autoscaler knative-serving 控制器
controller knative-serving 控制器
webhook knative-serving 控制器
storage-version-migration-serving knative-serving 控制器
webhook knative-serving 控制器
cloud-run-operator cloud-run-system cloud-run-operator

請注意,cloud-run-operator 服務帳戶與 controller 具有相同的權限集。運算子會部署所有 Knative 服務元件,包括自訂資源定義和控制器。

Knative serving 服務帳戶的 RBAC

請參閱下列 apiGroup 定義,瞭解 controllercloud-run-operator 服務帳戶在 Knative Serving 中,各資源擁有的存取權控制權限。

- 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

下表列出 Knative Serving 中 RBAC 權限的使用方式,其中:

  • view 包含的動詞:get、list、watch
  • 修改包括以下動詞:建立、更新、刪除、修補
權限 原因
可以查看所有 secrets Webhook 必須從 knative-serving 命名空間讀取密鑰。 Domainmapping 控制器需要讀取自動 TLS 功能產生的憑證密鑰,然後將其複製到 gke-system 命名空間。
可修改「pods DomainMapping 控制器需要建立 Pod,用於處理 HTTP01 驗證要求。
可修改「secrets 網域對應控制器需要建立或更新憑證密碼。 Webhook 必須從 knative-serving 命名空間讀取密鑰。
可修改「configmaps 用於預設網址功能。控制器需要更新「knative-serving」命名空間中的「config-domain」configmap,加入 `nip.io` 網址。
可修改「endpoints 無伺服器服務控制器需要建立、更新或刪除端點。路徑控制器需要建立、更新或刪除端點。
可修改「services 路徑控制器需要建立、更新或刪除服務。 無伺服器控制器需要建立、更新或刪除服務。 網域對應控制器必須建立服務,以提供 HTTP01 驗證要求。
可修改「events Knative serving 控制器會為 Knative 管理的資源建立及發出事件。
可修改「serviceaccounts Knative 服務需要間接讀取服務帳戶。
可修改「endpoints/restricted 啟用 RestrictedEndpointsAdmission 時,Knative serving 必須建立端點。
可修改「deployments 修訂版本控制器需要為 Knative 服務建立或更新部署項目。
可修改「mutatingwebhookconfiguration Knative Webhook 會將 caBundle 新增至 Knative 擁有的 mutatingwebhookconfigurations。
可修改「validatingwebhookconfiguration Knative Webhook 會將 caBundle 新增至 Knative 擁有的 validatingwebhookconfigurations。
可修改 customresourcedifinitions customresourcedefinitions/status Knative 安裝後工作需要將 Knative 相關 CRD 升級至 v1 版本。
可修改「horizontalpodautoscalers Knative 支援根據 HPA 自動調度資源。
可修改「namespace/finalizer Knative serving 必須將 ownerreference 設為 Knative-serving 命名空間。