Component high availability is defined as the deployment of a component's workload Pod instances (such as CBS, CoreDNS, and so on) across nodes in two or more AZs. This ensures the continuous availability of the component's service even if a single AZ fails.
Features
Tencent Cloud TKE Component Management provides the capability to configure component high availability. It supports enabling or disabling high availability with one click for components that meet the requirements.
Enabling high availability: When high availability is enabled for the cluster, you can click to enable high availability for components that are not in a high-availability state. This adjusts the component's workload to a cross-AZ high-availability deployment mode.
Disabling high availability: When high availability is disabled for the cluster, you can click to disable high availability for components that are in a high-availability state. This removes the high-availability deployment constraints on the component's workload.
Component High Availability Status
The system determines the current high-availability status of a component by querying the AZ distribution of the component's workload Pods across nodes:
|
High availability | Running Pods of all Deployment and Statefulset workloads of the component are distributed across ≥2 AZs. |
Non-high availability | There is at least one Deployment or Statefulset workload whose all Running Pods are distributed within the same AZ. |
List of Components Supporting High Availability
|
cbs | Version 1.1.14 or later |
eniipamd | Version 3.10.1 or later |
coredns | No version restriction |
kubernetes-proxy | No version restriction |
Prerequisites
Cluster high-availability attribute: Before component high availability is enabled, ensure that high availability is enabled for the cluster. Before component high availability is disabled, ensure that high availability is disabled for the cluster.
Multi-AZ nodes: The cluster must contain nodes in a Ready state from two or more AZs. Otherwise, you cannot enable component high availability.
Component status: The component must be in a normal running state. It cannot be in an updating or deleting state.
Version limitation: The component must meet the minimum version requirement. If the requirement is not met, you must upgrade the component version first.
Console Operation Guide
Enabling Component High Availability
Prerequisites: High availability must be enabled for the cluster, and the cluster nodes must be distributed across two or more AZs.
Operation steps:
2. Select a cluster, go to the cluster's basic information page, and confirm that high availability is enabled for the cluster. You can view and make changes to this setting on the basic information page.
3. In the left sidebar, choose Ops Center > Add-on Management.
4. In the add-on management page, check whether the target component is in a non-high-availability state.
5. In the Operation column of the target component, click Enable High Availability.
6. Wait for the component update to complete, and check if the component status has switched to High Availability.
Disabling Component High Availability
Prerequisites: High availability must be disabled for the cluster.
Directions:
2. Go to the target cluster's basic information page, and confirm that high availability is disabled for the cluster. You can view and make changes to this setting on the basic information page.
3. In the left sidebar, choose Ops Center > Add-on Management.
4. In the Actions column of the target component, click Disable High Availability.
5. Wait for the component update to complete.
Note:
After you disable high availability for a component, its updates are no longer forced to be deployed across AZs. The final deployment state of the component depends on the scheduling policy of the Kubernetes scheduler, and it may remain in either a high-availability or non-high-availability state.
Must-Knows
The high-availability state of components in a cluster tends to align with the cluster's high-availability state. When the cluster is highly available, components are automatically attempted to be deployed in high-availability mode after an update. When the cluster is not highly available, high-availability deployment is no longer enforced for components during updates.
For components whose version does not meet the requirement, you must first upgrade the component to a version that supports high availability, and then enable high availability.
Enabling high availability modifies the TopologySpreadConstraints topology distribution constraint configuration for the component workload, scheduling Pods across different AZs.
FAQs
Why Does the Component Status Still Show Non-High Availability After I Click to Enable High Availability?
This is usually because the cluster's Kubernetes version is too low, and the scheduler does not support the component high-availability scheduling feature. We recommend that you upgrade the cluster's Kubernetes version to the following minimum version, and then re-enable high availability:
|
v1.28 or later | All versions are supported. |
v1.26 | v1.26.1-tke.25 |
v1.24 | v1.24.4-tke.36 |
v1.22 | v1.22.5-tke.46 |
v1.20 | v1.20.6-tke.64 |
v1.18 | v1.18.4-tke.60 |
What to Do If Component Update Fails After High Availability Is Clicked to Enable