使用此页面了解 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
具有相同的一组权限。operator 是用以部署所有 Knative serving 服务组件的对象,包括自定义资源定义和控制器。
适用于 Knative serving 服务账号的 RBAC
使用以下 apiGroup
定义,了解 Knative serving 中每个资源对 controller
和 cloud-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
下表列出了如何在 Knative serving 中使用 RBAC 权限,其中:
- view 包括以下动词:get、list、watch
- modify 包括以下动词:create、update、delete、patch
权限 | 原因 |
---|---|
可查看所有 secrets |
网络钩子需要从 knative-serving 命名空间中读取 Secret。DomainMapping 控制器需要读取通过自动 TLS 功能生成的证书 Secret,然后将其复制到 gke-system 命名空间。 |
可修改 pods |
DomainMapping 控制器需要创建一个 Pod,以处理用于执行 HTTP01 人机验证的请求。 |
可修改 secrets |
DomainMapping 控制器需要创建或更新证书 Secret。网络钩子需要从 knative-serving 命名空间中读取 Secret。 |
可修改 configmaps |
用于默认的网址功能。控制器需要更新“knative-serving”命名空间内的“config-domain” configmap 以添加“nip.io”网址。 |
可修改 endpoints |
Serverlessservice 控制器需要创建、更新或删除端点。Route 控制器需要创建、更新或删除端点。 |
可修改 services |
Route 控制器需要创建、更新或删除服务。Serverless 控制器需要创建、更新或删除服务。DomainMapping 控制器需要创建一项服务来处理 HTTP01 人机验证请求。 |
可修改 events |
Knative serving 控制器会为 Knative 管理的资源创建和发出事件。 |
可修改 serviceaccounts |
Knative serving 需要间接读取服务账号。 |
可修改 endpoints/restricted |
启用 RestrictedEndpointsAdmission 时,Knative serving 需要创建端点。 |
可修改 deployments |
Revision 控制器需要为 Knative 服务创建或更新部署。 |
可修改 mutatingwebhookconfiguration |
Knative 网络钩子会将 caBundle 添加到 Knative 拥有的 mutatingwebhookconfigurations 中。 |
可修改 validatingwebhookconfiguration |
Knative 网络钩子会将 caBundle 添加到 Knative 拥有的 validatingwebhookconfigurations 中。 |
可修改 customresourcedifinitions customresourcedefinitions/status |
Knative 安装后作业需要将 Knative 相关的 CRD 升级到 v1 版。 |
可修改 horizontalpodautoscalers |
Knative 支持基于 HPA 的自动扩缩。 |
可修改 namespace/finalizer |
Knative serving 需要设置对 Knative-serving 命名空间的 ownerreference。 |