Minimizing downtime on Azure Red Hat OpenShift clusters that are deployed across multiple availability zones
If you installed IBM Software Hub on an Azure Red Hat OpenShift (ARO) cluster that is deployed across multiple availability zones, you can use the scheduling service node scoring configuration to minimize downtime when a zone failure occurs.
- Who needs to complete this task?
-
Cluster administrator A cluster administrator must complete this task.
- When do you need to complete this task?
-
This task applies only if you installed IBM Software Hub on an ARO cluster that is deployed across multiple availability zones.
Before you begin
To use node scoring, the scheduling service must be installed.
oc get scheduling -A- If the scheduling service is installed, the command returns information about the project where the scheduling service is installed and the version that is installed.
- If the scheduling service is not
installed, the command returns an empty response.
To install the scheduling service, see Installing shared cluster components for IBM Software Hub.
Ensure that you source the environment variables before you run the commands in this task.
About this task
To minimize downtime when a zone failure occurs, use the scheduling service to configure pod topology spread constraints. Pod topology spread constraints control how pods are scheduled across topology domains, such as nodes or zones.
Update the PodTopologySpread plug-in to control how pods are distributed across
nodes and zones:
- Distributing pods across nodes
- Use the
kubernetes.io/hostnamelabel key to minimize the difference in the number of pods across nodes based on their hostname.Set the
maxSkewparameter to 1 to indicate that the number of pods on any node should not differ by more than 1 from any other node.Set the
whenUnsatisfiableparameter to ScheduleAnyway to indicate that the scheduling service should still schedule the pod even if it cannot satisfy the spread constraint. However, the scheduling service will prioritize nodes that minimize the skew. - Distributing pods across zones
- Use the
topology.kubernetes.io/zonelabel key to minimize the difference in the number of pods across availability zones.Set the
maxSkewparameter to 1 to indicate that the number of pods in any availability zone should not differ by more than 1 from any other availability zone.Set the
whenUnsatisfiableparameter to ScheduleAnyway to indicate that the scheduling service should still schedule the pod even if it cannot satisfy the spread constraint. However, the scheduling service will prioritize nodes that minimize the skew.
The pods associated with an instance of IBM Software Hub will be scheduled when both of the preceding constraints or satisfied.
If one or both constraints cannot be satisfied, the scheduling service will prioritize nodes that minimize the skew across nodes and availability zones.