Skip to content

OSSM-4815: Document HA for a mesh #96010

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: service-mesh-docs-main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions install/ossm-installing-openshift-service-mesh.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,7 @@ include::modules/ossm-accessing-bookinfo-application-using-gateway-api.adoc[leve
* link:https://docs.redhat.com/en/documentation/openshift_container_platform/latest/html/networking/configuring-ingress-cluster-traffic[Configuring ingress cluster traffic]

include::modules/ossm-customizing-istio-configuration.adoc[leveloffset=+1]

include::modules/ossm-about-istio-high-availability.adoc[leveloffset=+1]
include::modules/ossm-configuring-istio-ha-autoscaling.adoc[leveloffset=+2]
include::modules/ossm-configuring-istio-ha-replicacount.adoc[leveloffset=+2]
10 changes: 10 additions & 0 deletions modules/ossm-about-istio-high-availability.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
// This module is used in the following assemblies:
// * service-mesh-docs-main/install/ossm-installing-service-mesh.adoc

:_mod-docs-content-type: CONCEPT
[id="ossm-about-istio-high-availability_{context}"]
= About Istio High Availability

Running the {istio} control plane in High Availability (HA) mode prevents single points of failure, and ensures continuous mesh operation even if an `istiod` pod fails. By using HA, if one `istiod` pod becomes unavailable, another one continues to manage and configure the {istio} control plane, preventing service outages or disruptions. HA provides scalability by distributing the control plane workload, enables graceful upgrades, supports disaster recovery operations, and protects against zone-wide mesh outages.

There are two ways for a system administrator to configure HA: by defining replica count or by using autoscaling.
68 changes: 68 additions & 0 deletions modules/ossm-configuring-istio-ha-autoscaling.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
// This procedure is used in the following assembly:
// * service-mesh-docs-main/install/ossm-installing-service-mesh.adoc

:_mod-docs-content-type: PROCEDURE
[id="ossm-configuring-istio-ha-autoscaling_{context}"]
= Configuring Istio HA by using autoscaling

Configure the {istio} control plane in High Availability (HA) mode to prevent a single point of failure, and ensure continuous mesh operation even if one of the `istiod` pods fails. Autoscaling defines the minimum and maximum number of {istio} control plane pods that can operate. {ocp-product-title} uses these values to scale the number of control planes in operation in response to the varying number of workloads in the mesh.

.Prerequisites

* You are logged in to the {ocp-product-title} web console as a user with the `cluster-admin` role.

* You installed the {SMProductName} Operator.

* You deployed the {istio} resource.

.Procedure

. Obtain the name of the {istio} resource by running the following command:
+
[source,terminal]
----
$ oc get istio -n istio-system
----
+
.Example output
[source,terminal]
----
NAME REVISIONS READY IN USE ACTIVE REVISION STATUS VERSION AGE
default 1 1 0 default Healthy v1.24.6 24m
----
+
The name of the {istio} resource is `default`.

. Update the {istio} custom resource by adding the `autoscaleMin` and `autoscaleMax` parameters by running the following command:
+
[source,terminal]
----
$ oc patch istio default -n istio-system --type merge -p '
spec:
values:
pilot:
autoscaleMin: 2 <1>
autoscaleMax: 5 <2>
'
----
<1> Defines the minimum number of {istio} control plane replicas that always run.
<2> Defines the maximum number of {istio} control plane replicas, allowing for scaling based on load. To support HA, there must be at least two replicas.

.Verification

. Verify the status of the {Istio} control pods by running the following command:
+
[source,terminal]
----
$ oc get pods -n istio-system -l app=istiod
----
+
.Example output
[source,terminal]
----
NAME READY STATUS RESTARTS AGE
istiod-7c7b6564c9-nwhsg 1/1 Running 0 70s
istiod-7c7b6564c9-xkmsl 1/1 Running 0 85s
----
+
Two `istiod` pods are running, which indicates HA was successfully configured.
68 changes: 68 additions & 0 deletions modules/ossm-configuring-istio-ha-replicacount.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
// This procedure is used in the following assembly:
// * service-mesh-docs-main/install/ossm-installing-service-mesh.adoc

:_mod-docs-content-type: PROCEDURE
[id="ossm-configuring-istio-ha-replicacount_{context}"]
= Configuring Istio HA by using replica count

Configure the {istio} control plane in High Availability (HA) mode to prevent a single point of failure, and ensure continuous mesh operation even if one of the `istiod` pods fails. The replica count defines a fixed number of {istio} control plane pods that can operate. Use replica count for mesh environments in which the number of workloads does not scale.

.Prerequisites

* You are logged in to the {ocp-product-title} web console as a user with the `cluster-admin` role.

* You installed the {SMProductName} Operator.

* You deployed the {istio} resource.

.Procedure

. Obtain the name of the {istio} resource by running the following command:
+
[source,terminal]
----
$ oc get istio -n istio-sytem
----
+
.Example output
[source,terminal]
----
NAME REVISIONS READY IN USE ACTIVE REVISION STATUS VERSION AGE
default 1 1 0 default Healthy v1.24.6 24m
----
+
The name of the {istio} resource is `default`.

. Update the {istio} custom resource by adding the `autoscaleEnabled` and `replicaCount` parameters by running the following command:
+
[source,terminal]
----
$ oc patch istio default -n istio-system --type merge -p '
spec:
values:
pilot:
autoscaleEnabled: false <1>
replicaCount: 2 <2>
'
----
<1> Disables autoscaling and ensures that the number of replicas remains fixed.
<2> Defines the number of {istio} control plane replicas. To support HA, there must be at least two replicas.

.Verification

. Verify the status of the {Istio} control pods by running the following command:
+
[source,terminal]
----
$ oc get pods -n istio-system -l app=istiod
----
+
.Example output
[source,terminal]
----
NAME READY STATUS RESTARTS AGE
istiod-7c7b6564c9-nwhsg 1/1 Running 0 70s
istiod-7c7b6564c9-xkmsl 1/1 Running 0 85s
----
+
Two `istiod` pods are running, which indicates HA was successfully configured.