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 serving 元件,包括自訂資源定義和控制器。

Knative serving 服務帳戶的 RBAC

請參閱下列 apiGroup 定義,瞭解 controller 和 cloud-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

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

  • view 包含的動詞:get、list、watch
  • 修改包括建立、更新、刪除、修補等動詞
權限 原因
可查看所有 secrets Webhook 必須從 knative-serving 命名空間讀取 Secret。Domainmapping 控制器需要讀取自動 TLS 功能產生的憑證密鑰,然後將其複製到 gke-system 命名空間。
可修改「pods」 DomainMapping 控制器需要建立 Pod,用於處理 HTTP01 驗證要求。
可修改「secrets」 網域對應控制器需要建立或更新憑證密鑰。 Webhook 必須從 knative-serving 命名空間讀取 Secret。
可修改「configmaps」 用於預設網址功能。控制器需要更新「knative-serving」命名空間中的「config-domain」configmap,加入 `nip.io` 網址。
可修改「endpoints」 無伺服器服務控制器需要建立、更新或刪除端點。路徑控制器需要建立、更新或刪除端點。
可修改「services」 路徑控制器需要建立、更新或刪除服務。 無伺服器控制器需要建立、更新或刪除服務。 網域對應控制器必須建立服務,以提供 HTTP01 驗證要求。
可修改「events」 Knative serving 控制器會為 Knative 管理的資源建立及發出事件。
可修改「serviceaccounts」 Knative serving 需要間接讀取服務帳戶。
可修改「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 命名空間。