Problem description
A check failure may occur before you update the cloud controller manager (CCM) of a Container Service for Kubernetes (ACK) cluster.
Solutions
Take note of the following items:
- Before you perform operations that may cause risks, such as modifying instance configurations or data, check the disaster recovery and fault tolerance capabilities of the instances to ensure data security.
- Before you modify the configurations and data of instances that include, but are not limited to, Elastic Compute Service (ECS) and ApsaraDB RDS instances, create snapshots or enable RDS log backup.
- If you have authorized or submitted sensitive information, such as the logon account and password, in the Alibaba Cloud Management Console, modify the information at the earliest opportunity.
Usage notes
- Before you update the CCM, we recommend that you know more about the new features of the CCM. For more information, see Cloud Controller Manager.
- If you modify the Service object of the CCM during the update check, the check results may be invalid. In this case, perform the check again after the modification. If the check fails multiple times, submit a ticket.
- Assume that the CCM version v1.9.3.164-g2105d2e-aliyun or later is used and the externalTrafficPolicy parameter is set to Local. In this case, the Service object automatically specifies a weight for a node based on the number of pods that are assigned to the node. For more information about the weight calculation rules, see How does CCM calculate node weights in Local mode? Assume that your CCM version is earlier than v1.9.3.164-g2105d2e-aliyun. After you update the CCM, the weights of the nodes that serve as the backend services of the Server Load Balancer (SLB) instance are automatically changed. This ensures a more balanced traffic load among the pods. You can check the load distribution among the pods based on the traffic changes.
- If you want to find the instance that fails a check, you can click the Instance Information tab on the right of the Check Result tab. On the Instance Information tab, the instance ID is the ID of the SLB instance, and the instance name consists of the namespace and service.
Error messages and solutions for the CCM update check
Error message |
Cause |
Solution |
create a new load balancer |
An SLB instance is created when a Service object is created or synchronized from an existing Service object during the update. |
Use the console or run the following command to check whether the Service object is in the Pending state. If the Service object is in the Running state and a public IP address is used, perform the check again. If the Service object is in the Pending state, submit a ticket. kubectl get svc [$Svc_Name] -n [$Namespace]
|
modify the slb instance spec |
The specifications of the SLB instance are different from those specified for the Service object. |
In the annotations of the Service object, set the |
delete the load balancer |
The Service object does not exist, but the SLB instance with which the Service object is associated still exists. |
If you no longer need the SLB instance, delete the SLB instance in the SLB console. If you need the SLB instance, submit a ticket. |
modify the slb internet spec |
The bandwidth or billing method of the SLB instance is different from that specified for the Service object. |
|
remove backend servers |
The endpoint of the Service object is different from that specified for the backend server of the SLB instance. |
|
add backend servers |
||
stop listener |
The port of the Service object is different from that specified for the SLB listener. |
|
start listener |
||
delete listener |
The port of the Service object is different from that specified for the SLB listener. |
|
create listener |
The port of the Service object is different from that specified for the SLB listener. |
|
update listener |
The port of the Service object is different from that specified for the SLB listener. |
|
create VServerGroup |
The endpoint of the Service object is different from that specified for the vServer group of the SLB instance. |
|
delete VServerGroup |
The endpoint of the Service object is different from that specified for the vServer group of the SLB instance. |
|
add VServerGroup backends |
||
remove VServerGroup backends |
Applicable scope
- ACK