• Kubernetes集群配置自动伸缩组件失败

Kubernetes集群配置自动伸缩组件失败

更新时间:2019-12-27 08:38

问题描述

在Kubernetes集群配置自动伸缩组件失败。cluster-autoscaler Pod一直处于失败重启的状态,无法正常运行。

查看该Pod日志,确认包含如下类似错误信息。

 

问题原因

配置RAM Role角色和权限出错,包含如下几种可能。

  • 对应的ECS的RAM Role不存在。
  • 对应的授权策略配置异常。
  • 对应的信任策略配置异常。

 

解决方案

  1. 选择如下任意一种方法,查看Worker RAM角色。
    • 手动查看角色相关信息。
      1. 登录cluster-autoscaler Pod所在ECS实例。
      2. 执行如下命令,获得RAM角色名称。
        curl 100.100.100.200/latest/meta-data/ram/security-credentials/
        系统返回类似如下。
      3. 登录RAM控制台,根据RAM角色名称查看相关信息。
    • 通过自动跳转的方式查看角色相关信息。
      1. 登录容器服务控制台。
      2. 在集群的基本信息页面,单击对应的 Worker RAM 角色
      3. 自动跳转到RAM控制台,查看对应的RAM角色相关信息。
  2. 单击对应的 权限策略名称
  3. 查看Statement的Action数组内是否包含如下ESS权限。如果不包含,请手动添加。
    "ess:Describe*", 
    "ess:CreateScalingRule", 
    "ess:ModifyScalingGroup", 
    "ess:RemoveInstances", 
    "ess:ExecuteScalingRule", 
    "ess:ModifyScalingRule", 
    "ess:DeleteScalingRule", 
    "ecs:DescribeInstanceTypes",
    "ess:DetachInstances"
    系统显示类似如下。
  4. 返回RAM角色管理页面,单击 信任策略管理 标签页。
  5. 检查当前信任策略,确认内容如下所示。如果内容不一致,则请手动修改。
  6. 在ECS控制台的基本信息页面,确认该ECS的RAM角色状态正常。如果没有对应的RAM角色,请参考借助于实例RAM角色访问其他云产品的步骤二进行配置。
  7. 完成上述步骤后,使用kubectl命令连接Kubernetes集群的Master节点,执行如下命令,删除cluster-autoscaler Pod。根据新建的Pod日志与状态确认cluster-autoscaler运行正常。
    kubectl delete pod cluster-autoscaler-XXXX

 

适用于

  • 容器服务 Kubernetes 专有版
  • 容器服务 Kubernetes 托管版

 

如果您的问题仍未解决,您可以在阿里云社区免费咨询,或提交工单联系阿里云技术支持。