請參閱這個頁面,瞭解 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 命名空間。 |