Kubernetes集群配置自动伸缩组件失败
更新时间:
问题描述
在Kubernetes集群配置自动伸缩组件失败。cluster-autoscaler Pod一直处于失败重启的状态,无法正常运行。
查看该Pod日志,确认包含如下类似错误信息。
问题原因
配置RAM Role角色和权限出错,包含如下几种可能:
- 对应的ECS的RAM Role不存在。
- 对应的授权策略配置异常。
- 对应的信任策略配置异常。
解决方案
- 选择如下任意一种方法,查看Worker RAM角色。
- 手动查看角色相关信息。
- 登录cluster-autoscaler Pod所在ECS实例。
- 执行如下命令,获得RAM角色名称。
curl 100.100.100.200/latest/meta-data/ram/security-credentials/
系统返回类似如下。 - 登录RAM控制台,根据RAM角色名称查看相关信息。
- 通过自动跳转的方式查看角色相关信息。
- 登录容器服务控制台。
- 在集群的基本信息页面,单击对应的 Worker RAM 角色。
- 自动跳转到RAM控制台,查看对应的RAM角色相关信息。
- 手动查看角色相关信息。
- 单击对应的 权限策略名称。
- 查看Statement的Action数组内是否包含如下ESS权限。如果不包含,请手动添加。
"ess:Describe*",
系统显示类似如下。
"ess:CreateScalingRule",
"ess:ModifyScalingGroup",
"ess:RemoveInstances",
"ess:ExecuteScalingRule",
"ess:ModifyScalingRule",
"ess:DeleteScalingRule",
"ecs:DescribeInstanceTypes",
"ess:DetachInstances" - 返回RAM角色管理页面,单击 信任策略管理 标签页。
- 检查当前信任策略,确认内容如下所示。如果内容不一致,则请手动修改。
- 在ECS控制台的基本信息页面,确认该ECS的RAM角色状态正常。如果没有对应的RAM角色,请参考借助于实例RAM角色访问其他云产品的步骤二进行配置。
- 完成上述步骤后,使用kubectl命令连接Kubernetes集群的Master节点,执行如下命令,删除cluster-autoscaler Pod。根据新建的Pod日志与状态确认cluster-autoscaler运行正常。
kubectl delete pod cluster-autoscaler-XXXX
适用于
- 容器服务Kubernetes专有版
- 容器服务Kubernetes托管版
文档内容是否对您有帮助?