Skip to content

Commit ff96ebc

Browse files
authored
Merge pull request #57959 from rh-tokeefe/OSSM-3195A
OSSM-3195: Document deploying service mesh to infrastructure node
2 parents 2e54b4a + 14693c1 commit ff96ebc

7 files changed

+209
-2
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * service_mesh/v2x/ossm-deployment-models.adoc
4+
5+
:_content-type: PROCEDURE
6+
[id="ossm-config-control-plane-infrastructure-node_{context}"]
7+
= Configuring all {SMProductShortName} control plane components to run on infrastructure nodes
8+
9+
This task should only be performed if all of the components deployed by the {SMProductShortName} control plane (including Istiod, Ingress Gateway, and Egress Gateway) along with optional elements (such as Prometheus, Grafana, and Distributed Tracing) are running on infrastructure nodes.
10+
11+
If the control plane runs on a worker node, skip this task.
12+
13+
.Procedure
14+
15+
. Open the `ServiceMeshControlPlane` resource as a YAML file:
16+
+
17+
[source,terminal]
18+
----
19+
$ oc -n istio-system edit smcp <name> <1>
20+
----
21+
<1> `<name>` represents the name of the `ServiceMeshControlPlane` resource.
22+
23+
. To run all of the {SMProductShortName} components deployed by the `ServiceMeshControlPlane` on infrastructure nodes, add the `nodeSelector` and `tolerations` fields to the `spec.runtime.defaults.pod` spec in the `ServiceMeshControlPlane` resource:
24+
+
25+
[source,yaml]
26+
----
27+
spec:
28+
runtime:
29+
defaults:
30+
pod:
31+
nodeSelector: <1>
32+
node-role.kubernetes.io/infra: ""
33+
tolerations: <2>
34+
- effect: NoSchedule
35+
key: node-role.kubernetes.io/infra
36+
value: reserved
37+
- effect: NoExecute
38+
key: node-role.kubernetes.io/infra
39+
value: reserved
40+
----
41+
<1> Ensures that the SMCP pods are only scheduled on an infrastructure node.
42+
<2> Ensures that the pods are accepted by the infrastructure node.
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * service_mesh/v2x/ossm-deployment-models.adoc
4+
5+
:_content-type: PROCEDURE
6+
[id="ossm-config-individual-control-plane-infrastructure-node_{context}"]
7+
= Configuring individual {SMProductShortName} control plane components to run on infrastructure nodes
8+
9+
This task should only be performed if individual {SMProductShortName} control plane components (such as Istiod, the Ingress Gateway, and the Egress Gateway) will run on infrastructure nodes.
10+
11+
If the control plane will run on a worker node, skip this task.
12+
13+
.Procedure
14+
15+
. Open the `ServiceMeshControlPlane` resource as a YAML file.
16+
+
17+
[source,terminal]
18+
----
19+
$ oc -n istio-system edit smcp <name> <1>
20+
----
21+
<1> `<name>` represents the name of the `ServiceMeshControlPlane` resource.
22+
23+
. To run the Istiod component on an infrastructure node, add the `nodeSelector` and the `tolerations` fields to the `spec.runtime.components.pilot.pod` spec in the `ServiceMeshControlPlane` resource.
24+
+
25+
[source,yaml]
26+
----
27+
spec:
28+
runtime:
29+
components:
30+
pilot:
31+
pod:
32+
nodeSelector: <1>
33+
node-role.kubernetes.io/infra: ""
34+
tolerations: <2>
35+
- effect: NoSchedule
36+
key: node-role.kubernetes.io/infra
37+
value: reserved
38+
- effect: NoExecute
39+
key: node-role.kubernetes.io/infra
40+
value: reserved
41+
----
42+
<1> Ensures that the Istiod pod is only scheduled on an infrastructure node.
43+
<2> Ensures that the pod is accepted by the infrastructure node.
44+
45+
. To run Ingress and Egress Gateways on infrastructure nodes, add the `nodeSelector` and the `tolerations` fields to the `spec.gateways.ingress.runtime.pod` spec and the `spec.gateways.egress.runtime.pod` spec in the `ServiceMeshControlPlane` resource.
46+
+
47+
[source,yaml]
48+
----
49+
spec:
50+
gateways:
51+
ingress:
52+
runtime:
53+
pod:
54+
nodeSelector: <1>
55+
node-role.kubernetes.io/infra: ""
56+
tolerations: <2>
57+
- effect: NoSchedule
58+
key: node-role.kubernetes.io/infra
59+
value: reserved
60+
- effect: NoExecute
61+
key: node-role.kubernetes.io/infra
62+
value: reserved
63+
egress:
64+
runtime:
65+
pod:
66+
nodeSelector: <1>
67+
node-role.kubernetes.io/infra: ""
68+
tolerations: <2>
69+
- effect: NoSchedule
70+
key: node-role.kubernetes.io/infra
71+
value: reserved
72+
- effect: NoExecute
73+
key: node-role.kubernetes.io/infra
74+
value: reserved
75+
----
76+
<1> Ensures that the gateway pod is only scheduled on an infrastructure node
77+
<2> Ensures that the pod is accepted by the infrastructure node.
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * service_mesh/v2x/ossm-deployment-models.adoc
4+
5+
:_content-type: PROCEDURE
6+
[id="ossm-config-operator-infrastructure-node_{context}"]
7+
= Configuring the {SMProductShortName} Operator to run on infrastructure nodes
8+
9+
This task should only be performed if the {SMProductShortName} Operator runs on an infrastructure node.
10+
11+
If the operator will run on a worker node, skip this task.
12+
13+
.Prerequisites
14+
15+
* The {SMProductShortName} Operator must be installed.
16+
17+
* One of the nodes comprising the deployment must be an infrastructure node. For more information, see "Creating infrastructure machine sets."
18+
19+
.Procedure
20+
21+
. Edit the {SMProductShortName} Operator `Subscription` resource to specify where the operator should run:
22+
+
23+
[source,terminal]
24+
----
25+
$ oc -n openshift-operators edit subscription <name> <1>
26+
----
27+
<1> `<name>` represents the name of the `Subscription` resource.
28+
29+
. Add the `nodeSelector` and `tolerations` to `spec.config` in the `Subscription` resource:
30+
+
31+
[source,yaml]
32+
----
33+
spec:
34+
config:
35+
nodeSelector: <1>
36+
node-role.kubernetes.io/infra: ""
37+
tolerations: <2>
38+
- effect: NoSchedule
39+
key: node-role.kubernetes.io/infra
40+
value: reserved
41+
- effect: NoExecute
42+
key: node-role.kubernetes.io/infra
43+
value: reserved
44+
----
45+
<1> Ensures that the operator pod is only scheduled on an infrastructure node.
46+
<2> Ensures that the pod is accepted by the infrastructure node.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * service_mesh/v2x/installing-ossm.adoc
4+
5+
:_content-type: PROCEDURE
6+
[id="ossm-confirm-operator-infrastructure-node_{context}"]
7+
= Verifying the {SMProductShortName} Operator is running on infrastructure node
8+
9+
.Procedure
10+
11+
* Verify that the node associated with the Operator pod is an infrastructure node:
12+
+
13+
[source,terminal]
14+
----
15+
$ oc -n openshift-operators get po -l name=istio-operator -owide
16+
----
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Module included in the following assemblies:
2+
//
3+
// * service_mesh/v2x/installing-ossm.adoc
4+
5+
:_content-type: PROCEDURE
6+
[id="ossm-confirm-smcp-infrastructure-node_{context}"]
7+
= Verifying the {SMProductShortName} control plane is running on infrastructure nodes
8+
9+
.Procedure
10+
11+
* Confirm that the nodes associated with Istiod, Ingress Gateway, and Egress Gateway pods are infrastructure nodes:
12+
+
13+
[source,terminal]
14+
----
15+
$ oc -n istio-system get pods -owide
16+
----

service_mesh/v2x/installing-ossm.adoc

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ Do not install Community versions of the Operators. Community Operators are not
2828

2929
include::modules/ossm-install-ossm-operator.adoc[leveloffset=+1]
3030

31+
include::modules/ossm-config-operator-infrastructure-node.adoc[leveloffset=+1]
32+
33+
include::modules/ossm-confirm-operator-infrastructure-node.adoc[leveloffset=+1]
34+
3135
== Next steps
3236

33-
The {SMProductName} Operator does not create the various {SMProductShortName} custom resource definitions (CRDs) until you deploy a {SMProductShortName} control plane. You use the `ServiceMeshControlPlane` resource to install and configure the {SMProductShortName} components. For more information, see xref:../../service_mesh/v2x/ossm-create-smcp.adoc#ossm-create-smcp[Creating the ServiceMeshControlPlane].
37+
* The {SMProductName} Operator does not create the {SMProductShortName} custom resource definitions (CRDs) until you deploy a {SMProductShortName} control plane. You can use the `ServiceMeshControlPlane` resource to install and configure the {SMProductShortName} components. For more information, see xref:../../service_mesh/v2x/ossm-create-smcp.adoc#ossm-create-smcp[Creating the ServiceMeshControlPlane].

service_mesh/v2x/ossm-create-smcp.adoc

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,12 @@ include::modules/ossm-control-plane-cli.adoc[leveloffset=+1]
2929

3030
include::modules/ossm-validate-smcp-cli.adoc[leveloffset=+1]
3131

32+
include::modules/ossm-config-control-plane-infrastructure-node.adoc[leveloffset=+1]
33+
34+
include::modules/ossm-config-individual-control-plane-infrastructure-node.adoc[leveloffset=+1]
35+
36+
include::modules/ossm-confirm-smcp-infrastructure-node.adoc[leveloffset=+1]
37+
3238
include::modules/ossm-validate-smcp-kiali.adoc[leveloffset=+1]
3339

3440
include::modules/ossm-install-rosa.adoc[leveloffset=+1]
@@ -40,4 +46,4 @@ include::modules/ossm-install-rosa.adoc[leveloffset=+1]
4046

4147
== Next steps
4248

43-
Create a `ServiceMeshMemberRoll` resource to specify the namespaces associated with the {SMProductShortName}. For more information, see xref:../../service_mesh/v2x/ossm-create-mesh.adoc#ossm-create-mesh[Adding services to a service mesh].
49+
* Create a `ServiceMeshMemberRoll` resource to specify the namespaces associated with the {SMProductShortName}. For more information, see xref:../../service_mesh/v2x/ossm-create-mesh.adoc#ossm-create-mesh[Adding services to a service mesh].

0 commit comments

Comments
 (0)