Kubernetes部署MySQL出现Unauthorized错误,请求排查故障原因
按照Kubernetes官方单实例有状态应用(MySQL)示例部署后,执行kubectl describe deployment mysql得到以下事件:
Events:
Type Reason Age From MessageWarning ReplicaSetCreateError 15m deployment-controller Failed to create new replica set "mysql-79c846684f": Unauthorized
Normal ScalingReplicaSet 15m deployment-controller Scaled up replica set mysql-79c846684f to 1
当前环境:kubectl版本v1.27.1,Kubernetes Server版本v1.25.9
可能的原因如下:
- Deployment控制器权限不足:部署控制器对应的ServiceAccount缺少创建ReplicaSet的权限,需要检查该ServiceAccount是否绑定了包含
replicasets/create权限的ClusterRole或Role。 - RBAC配置异常:当前命名空间的RBAC规则未正确授权,比如Role/ClusterRole未包含ReplicaSet相关资源的操作权限,或者RoleBinding/ClusterRoleBinding未将权限正确关联到Deployment控制器的ServiceAccount。
- API Server认证失败:Deployment控制器向API Server发送请求时使用的凭证无效或过期,比如ServiceAccount的Secret被删除、凭证过期,或是API Server的认证配置出现异常。
- 跨版本权限校验差异:kubectl v1.27.1与Kubernetes Server v1.25.9存在跨版本操作的权限验证差异,高版本kubectl的请求在低版本Server上触发了更严格的权限检查。
内容的提问来源于stack exchange,提问作者eastwater
相关产品推荐
相关产品推荐

