Skip to content

Commit 55317bd

Browse files
committed
OSSM-4815: Document HA for a mesh
1 parent 89d63b0 commit 55317bd

4 files changed

+142
-0
lines changed

install/ossm-installing-openshift-service-mesh.adoc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,7 @@ include::modules/ossm-accessing-bookinfo-application-using-gateway-api.adoc[leve
4646
* link:https://docs.redhat.com/en/documentation/openshift_container_platform/latest/html/networking/configuring-ingress-cluster-traffic[Configuring ingress cluster traffic]
4747
4848
include::modules/ossm-customizing-istio-configuration.adoc[leveloffset=+1]
49+
50+
include::modules/ossm-about-istio-high-availability.adoc[leveloffset=+1]
51+
include::modules/ossm-configuring-istio-ha-autoscaling.adoc[leveloffset=+2]
52+
include::modules/ossm-configuring-istio-ha-replicacount.adoc[leveloffset=+2]
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// This module is used in the following assemblies:
2+
// * service-mesh-docs-main/install/ossm-installing-service-mesh.adoc
3+
4+
:_mod-docs-content-type: CONCEPT
5+
[id="ossm-about-istio-high-availability_{context}"]
6+
= About Istio High Availability
7+
8+
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.
9+
10+
There are two ways for a system administrator to configure HA: by defining replica count or by using autoscaling.
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
// This procedure is used in the following assembly:
2+
// * service-mesh-docs-main/install/ossm-installing-service-mesh.adoc
3+
4+
:_mod-docs-content-type: PROCEDURE
5+
[id="ossm-configuring-istio-ha-autoscaling_{context}"]
6+
= Configuring Istio HA by using autoscaling
7+
8+
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.
9+
10+
.Prerequisites
11+
12+
* You are logged in to the {ocp-product-title} web console as a user with the `cluster-admin` role.
13+
14+
* You installed the {SMProductName} Operator.
15+
16+
* You deployed the {istio} resource.
17+
18+
.Procedure
19+
20+
. Modify the {istio} custom resource by defining the autoscaleMin and autoscaleMax parameters.
21+
+
22+
.Example configuration
23+
[source,yaml,subs="attributes,verbatim"]
24+
----
25+
apiVersion: sailoperator.io/v1
26+
kind: Istio
27+
metadata:
28+
name: default
29+
spec:
30+
namespace: istio-system
31+
values:
32+
pilot:
33+
autoscaleMin: 2 # <1>
34+
autoscaleMax: 5 # <2>
35+
----
36+
<1> Defines the minimum number of {istio} control plane replicas that always run.
37+
<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.
38+
39+
. Apply the configuration changes by running the following command:
40+
+
41+
[source,terminal]
42+
----
43+
$ oc apply -f <filename>.yaml
44+
----
45+
46+
.Verification
47+
48+
Verify the status of the {Istio} control pods by running the following command:
49+
+
50+
[source,terminal]
51+
----
52+
$ oc get pods -n istio-system -l app=istiod
53+
----
54+
+
55+
.Example output
56+
+
57+
[source,terminal]
58+
----
59+
NAME READY STATUS RESTARTS AGE
60+
istiod-7c7b6564c9-nwhsg 1/1 Running 0 70s
61+
istiod-7c7b6564c9-xkmsl 1/1 Running 0 85s
62+
----
63+
+
64+
Two `istiod` pods are running, which indicates HA was successfully configured.
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
// This procedure is used in the following assembly:
2+
// * service-mesh-docs-main/install/ossm-installing-service-mesh.adoc
3+
4+
:_mod-docs-content-type: PROCEDURE
5+
[id="ossm-configuring-istio-ha-replicacount_{context}"]
6+
= Configuring Istio HA by using replica count
7+
8+
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.
9+
10+
.Prerequisites
11+
12+
* You are logged in to the {ocp-product-title} web console as a user with the `cluster-admin` role.
13+
14+
* You installed the {SMProductName} Operator.
15+
16+
* You deployed the {istio} resource.
17+
18+
.Procedure
19+
20+
. Modify the {istio} custom resource by defining the autoscaleMin and autoscaleMax parameters.
21+
+
22+
.Example configuration
23+
[source,yaml,subs="attributes,verbatim"]
24+
----
25+
apiVersion: sailoperator.io/v1
26+
kind: Istio
27+
metadata:
28+
name: default
29+
spec:
30+
namespace: istio-system
31+
values:
32+
pilot:
33+
autoscaleEnabled: false # <1>
34+
replicaCount: 2 # <2>
35+
----
36+
<1> Disables autoscaling and ensures that the number of replicas remains fixed.
37+
<2> Defines the number of {istio} control plane replicas. To support HA, there must be at least two replicas.
38+
39+
. Apply the configuration changes by running the following command:
40+
+
41+
[source,terminal]
42+
----
43+
$ oc apply -f <filename>.yaml
44+
----
45+
46+
.Verification
47+
48+
Verify the status of the {Istio} control pods by running the following command:
49+
+
50+
[source,terminal]
51+
----
52+
$ oc get pods -n istio-system -l app=istiod
53+
----
54+
+
55+
.Example output
56+
+
57+
[source,terminal]
58+
----
59+
NAME READY STATUS RESTARTS AGE
60+
istiod-7c7b6564c9-nwhsg 1/1 Running 0 70s
61+
istiod-7c7b6564c9-xkmsl 1/1 Running 0 85s
62+
----
63+
+
64+
Two `istiod` pods are running, which indicates HA was successfully configured.

0 commit comments

Comments
 (0)