在Kubernetes中,ServiceAccount用于为Pod提供身份认证,通过与RBAC(基于角色的访问控制)结合,可精细化控制权限。管理员需创建ServiceAccount并绑定Role(命名空间级权限)或ClusterRole(集群级权限),从而限制Pod对资源的操作。
延伸知识点:RBAC中Role与ClusterRole的区别
Role作用于特定命名空间,例如限制Pod只能读取某命名空间的ConfigMap;ClusterRole则定义集群范围的权限(如访问节点信息)。两者的绑定方式不同:Role通过RoleBinding关联到当前命名空间的ServiceAccount,而ClusterRole通过ClusterRoleBinding全局生效(如允许ServiceAccount查看所有命名空间的Pod)。例如,创建ClusterRole时,可定义规则resources: ["pods"], verbs: ["get", "list"]
,再通过ClusterRoleBinding将其授予跨命名空间的监控组件ServiceAccount。