Cloud Controller Manager(CCM)组件升级检查失败

本文介绍在容器计算服务 ACS(Container Compute Service)集群使用过程中,遇到Cloud Controller Manager(CCM)组件升级检查失败的解决方案。

解决方案

注意事项

  • 在升级CCM组件时,建议您先了解CCM新功能,详情请参见Cloud Controller Manager

  • 需要注意,如果在升级检查期间执行了Service变更操作,可能会导致升级检测结果存在误判,请重新发起升级检测即可。如果多次检测后仍未通过,请提交工单处理。

CCM升级检查失败的错误提示及解决方案

错误提示

错误原因

解决方案

create a new load balancer

在进行升级期间的新建Service或者同步已有Service时,新建了SLB实例。

请通过控制台或者执行以下命令,确认Service是否处于pending状态。如果状态为Running,且已经生成外部IP,请重新发起检测;如果处于pending状态,请提交工单处理。

kubectl get svc [$Svc_Name] -n [$Namespace]
说明
  • [$Svc_Name]为Service名称。

  • [$Namespace]为该Service的命名空间。

modify the slb instance spec

SLB的规格和Service中配置的规格不一致。

将Service的annotation下的service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec参数设置为SLB对应的规格,该参数的配置请参见指定负载均衡规格

delete the load balancer

不存在Service,但对应的SLB实例仍然存在。

如已不需要该SLB实例,请通过SLB控制台手动删除该SLB实例。如果还需要该SLB实例,请提交工单处理。

modify the slb internet spec

SLB的带宽或者支付类别与Service中配置的不一致。

  • 若是带宽问题,需要将Service的annotation下的service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth设置为SLB中对应配置,该参数的配置请参见创建按带宽付费的负载均衡

  • 若是支付类别问题,需要将Service的annotation下的service.beta.kubernetes.io/alibaba-cloud-loadbalancer-charge-type设置为SLB中对应配置,该参数的配置请参见创建按带宽付费的负载均衡

remove backend servers

Endpoint与SLB后端服务器配置不一致。

  • 若您未在SLB控制台修改过后端服务器配置:

    请勿在升级检测期间执行Service的Endpoint变更操作,然后重新发起检测。

  • 若您手动在SLB控制台修改过后端服务器配置:

    请先恢复SLB后端服务器组配置,然后重新发起检测。

add backend servers

stop listener

Service的port与SLB监听配置不一致。

  • 若您未在SLB控制台修改过监听配置:

    请勿在升级检测期间执行Service变更操作,然后重新发起检测。

  • 若您手动在SLB控制台修改过监听配置:

    请执行以下命令,查看具体不一致的配置,然后在SLB控制台恢复SLB监听配置,再重新发起检测。

    kubectl -n [$Namespace] describe svc [$Svc_Name]

start listener

delete listener

Service的port与SLB监听配置不一致。

  • 若您未在SLB控制台修改过监听配置:

    请勿在升级检测期间执行Service变更操作,然后重新发起检测。

  • 若您手动在SLB控制台修改过监听配置:

    请先删除添加的监听,然后重新发起检测。

create listener

Service的port与SLB监听配置不一致。

  • 若您未在SLB控制台修改过监听配置:

    请勿在升级检测期间执行Service变更操作,然后重新发起检测。

  • 若您手动在SLB控制台修改过监听配置:

    请先添加被删除的监听,然后重新发起检测。

update listener

Service的port与SLB监听配置不一致。

  • 若您未在SLB控制台修改过监听配置:

    请勿在升级检测期间执行Service变更操作,然后重新发起检测。

  • 若您手动在SLB控制台修改过监听配置:

    请执行以下命令,查看具体不一致的配置,然后在SLB控制台恢复SLB监听配置,例如证书、访问控制、健康检查、Cookie设置等,然后重新发起检测,详情请参见通过Annotation配置传统型负载均衡CLB

    kubectl -n [$Namespace] describe svc [$Svc_Name]

create VServerGroup

Endpoint与SLB后端虚拟服务器组配置不一致。

  • 若您未在SLB控制台修改过虚拟服务器配置:

    请勿在升级检测期间执行Service的Endpoint变更操作,然后重新发起检测。如果多次检测后仍重复出现“create vServerGroup”提示,请提交工单处理。

  • 若您手动在SLB控制台修改过后端服务器配置:

    请先恢复SLB虚拟服务器组配置,然后重新发起检测。

delete VServerGroup

Endpoint与SLB后端虚拟服务器组配置不一致。

  • 若您未在SLB控制台修改过虚拟服务器配置:

    请勿在升级检测期间执行Service的Endpoint变更操作,然后重新发起检测。

  • 若您手动在SLB控制台修改过后端服务器配置:

    请先恢复SLB虚拟服务器组配置,然后重新发起检测。

add VServerGroup backends

remove VServerGroup backends

modify loadbalancer instance charge type

Servicec中实例计费类型与SLB不一致。

  • 若您在SLB控制台手动修改过CLB付费类型为PayByCLCU:

    需要将Service的annotation中service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec删除。

  • 若您未在SLB控制台修改过计费类型:

    请勿在升级检测期间执行Service的变更操作,然后重新发起检测。