本文档说明如何在启用了RBAC的环境中部署BFE Ingress controller。
Kubernetes 中,采用基于角色的访问控制,使用了如下对象:
-
通过定义角色,配置角色相关的权限:
ClusterRole
- 定义适用于整个集群的角色及其所具有的权限Role
- 定义适用于特定名称空间的角色及其所具有的权限
-
通过配置角色绑定,可以将角色中定义的权限赋予一个或者一组用户
ClusterRoleBinding
,赋予用户ClusterRole
角色中定义的权限RoleBinding
,赋予用户ClusterRole
角色中定义的权限
在启用了RBAC的环境中部署BFE Ingress Controller,应该将其关联到一个ServiceAccount
,且该ServiceAccount
需要绑定到具有BFE Ingress Controller所需权限的ClusterRole
。
BFE Ingress Controller所需要的权限至少应该包括:
-
具有ClusterRole中定义的如下权限:
services, endpoints, secrets, namespaces: get, list, watch ingresses, ingressclasses: get, list, watch, update
在 controller.yaml 中:
- 定义一个
ServiceAccount
,- 命名为
bfe-ingress-controller
- 命名为
- 定义了BFE Ingress Controller的部署
- 部署的实例关联 ServiceAccount
bfe-ingress-controller
- 部署的实例关联 ServiceAccount
在 rbac.yaml 中:
- 定义了一个
ClusterRole
,-
命名为
bfe-ingress-controller
-
定义了它具有如下的集群权限(适用于整个集群):
services, endpoints, secrets, namespaces: get, list, watch ingresses, ingressclasses: get, list, watch, update
-
在 rbac.yaml 中:
- 定义了一个
ClusterRoleBinding
,- 将 ServiceAccount
bfe-ingress-controller
绑定到 ClusterRolebfe-ingress-controller
- 将 ServiceAccount