面试题答案
一键面试主要资源对象
- Role:定义在特定Namespace内的一组权限。例如,定义一个只能查看Pod的Role,权限为对Pod资源的
get
、list
、watch
操作;再定义一个能创建和删除Deployment的Role,权限包含对Deployment资源的create
、delete
操作。 - ClusterRole:与Role类似,但作用于整个集群范围,而不是特定Namespace。如果有跨Namespace的权限需求,可使用ClusterRole。
- RoleBinding:将Role绑定到特定的用户、组或服务账号,使它们获得相应的权限。在特定Namespace内将Role与用户等主体关联。
- ClusterRoleBinding:将ClusterRole绑定到用户、组或服务账号,适用于集群范围的权限分配。
配置步骤
- 定义Role:
- 创建一个YAML文件,例如
view - pod - role.yaml
,内容如下:
- 创建一个YAML文件,例如
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: view - pod - role
namespace: <目标Namespace>
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]
- 创建另一个YAML文件,如`manage - deployment - role.yaml`,用于创建和删除Deployment:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: manage - deployment - role
namespace: <目标Namespace>
rules:
- apiGroups: ["apps"]
resources: ["deployments"]
verbs: ["create", "delete"]
- 使用`kubectl apply - f view - pod - role.yaml`和`kubectl apply - f manage - deployment - role.yaml`分别创建这两个Role。
2. 定义RoleBinding:
- 创建view - pod - role - binding.yaml
文件,将view - pod - role
绑定到特定用户:
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: view - pod - role - binding
namespace: <目标Namespace>
subjects:
- kind: User
name: <用户名>
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: view - pod - role
apiGroup: rbac.authorization.k8s.io
- 创建`manage - deployment - role - binding.yaml`文件,将`manage - deployment - role`绑定到特定用户:
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: manage - deployment - role - binding
namespace: <目标Namespace>
subjects:
- kind: User
name: <用户名>
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: manage - deployment - role
apiGroup: rbac.authorization.k8s.io
- 使用`kubectl apply - f view - pod - role - binding.yaml`和`kubectl apply - f manage - deployment - role - binding.yaml`分别创建RoleBinding。
如果需要集群范围的权限控制:
- 定义ClusterRole:类似定义Role,只是范围是集群级别。
- 定义ClusterRoleBinding:将ClusterRole绑定到用户、组或服务账号,同样类似RoleBinding的定义,只是使用
ClusterRoleBinding
资源类型。