請參閱這個頁面,瞭解 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 定義,瞭解 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
下表列出 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 命名空間。 |