You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/azure-arc/kubernetes/tutorial-arc-enabled-open-service-mesh.md
+73-80Lines changed: 73 additions & 80 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,6 +27,7 @@ OSM runs an Envoy-based control plane on Kubernetes, can be configured with [SMI
27
27
- Rancher Kubernetes Engine
28
28
- OpenShift Kubernetes Distribution
29
29
- Amazon Elastic Kubernetes Service
30
+
- VMware Tanzu Kubernetes Grid
30
31
- Azure Monitor integration with Azure Arc-enabled Open Service Mesh is available with [limited support](https://github.com/microsoft/Docker-Provider/blob/ci_dev/Documentation/OSMPrivatePreview/ReadMe.md).
31
32
32
33
[!INCLUDE [preview features note](./includes/preview/preview-callout.md)]
@@ -38,11 +39,9 @@ OSM runs an Envoy-based control plane on Kubernetes, can be configured with [SMI
38
39
39
40
## Install Azure Arc-enabled Open Service Mesh (OSM) on an Azure Arc-enabled Kubernetes cluster
40
41
42
+
## Basic Installation of Open Service Mesh (OSM) on an Azure Arc-enabled Kubernetes Cluster
41
43
The following steps assume that you already have a cluster with supported Kubernetes distribution connected to Azure Arc.
42
-
43
-
### Install a specific version of OSM
44
-
45
-
Ensure that your KUBECONFIG environment variable points to the kubeconfig of the Kubernetes cluster where you want the OSM extension installed.
44
+
Ensure that your KUBECONFIG environment variable points to the kubeconfig of the Arc-enabled Kubernetes cluster.
While Azure Arc-enabled Open Service Mesh is in preview, the `az k8s-extension create` command only accepts `pilot` for the `--release-train` flag. `--auto-upgrade-minor-version` is always set to `false` and a version must be provided. If you have an OpenShift cluster, use the steps in the [section](#install-a-specific-version-of-osm-on-openshift-cluster).
54
+
While Azure Arc-enabled Open Service Mesh is in preview, the `az k8s-extension create` command only accepts `pilot` for the `--release-train` flag. `--auto-upgrade-minor-version` is always set to `false` and a version must be provided. If you are using an OpenShift cluster, use the steps in the [section](#install-a-specific-version-of-osm-on-openshift-cluster).
56
55
57
56
```azurecli-interactive
58
57
az k8s-extension create --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --release-train pilot --name osm --version $VERSION
@@ -91,7 +90,26 @@ You should see output similar to the output shown below. It may take 3-5 minutes
91
90
}
92
91
```
93
92
94
-
### Install a specific version of OSM on OpenShift cluster
93
+
## Installation with Custom Configurations
94
+
The following sections describe how to further configure OSM during installation.
95
+
96
+
To set custom configurations of OSM, custom values must be passed in during installation.
97
+
This requires creating a JSON file containing custom settings and then passing them into `k8s-extension create` CLI command.
98
+
99
+
See sections below to determine the contents of the JSON file you require.
100
+
101
+
Then, set the file path as an environment variable:
102
+
```azurecli-interactive
103
+
export SETTINGS_FILE=<json-file-path>
104
+
```
105
+
106
+
Finally, run the `az k8s-extension create` command to
107
+
create the OSM extension, passing in the settings file using the `--configuration-settings` flag:
108
+
```azurecli-interactive
109
+
az k8s-extension create --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --release-train pilot --name osm --version $VERSION --configuration-settings-file $SETTINGS_FILE
110
+
```
111
+
112
+
### Install OSM on an OpenShift cluster
95
113
96
114
1. Copy and save the following contents into a JSON file. If you have already created a configuration settings file, please add the following line to the existing file to preserve your previous changes.
97
115
```json
@@ -100,15 +118,8 @@ You should see output similar to the output shown below. It may take 3-5 minutes
100
118
}
101
119
```
102
120
103
-
Set the file path as an environment variable:
104
-
```azurecli-interactive
105
-
export SETTINGS_FILE=<json-file-path>
106
-
```
107
121
108
-
2. Run the `az k8s-extension create` command used to create the OSM extension, and pass in the settings file using configuration settings:
109
-
```azurecli-interactive
110
-
az k8s-extension create --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --release-train pilot --name osm --version $VERSION --configuration-settings-file $SETTINGS_FILE
111
-
```
122
+
2. Install OSM with custom values.
112
123
113
124
3. Add the privileged [security context constraint](https://docs.openshift.com/container-platform/4.7/authentication/managing-security-context-constraints.html) to each service account for the applications in the mesh.
114
125
```azurecli-interactive
@@ -119,6 +130,50 @@ It may take 3-5 minutes for the actual OSM helm chart to get deployed to the clu
119
130
120
131
To ensure that the privileged init container setting is not reverted to the default, pass in the "osm.OpenServiceMesh.enablePrivilegedInitContainer" : "true" configuration setting to all subsequent az k8s-extension create commands.
121
132
133
+
### Install OSM with cert-manager for Certificate Management
134
+
[cert-manager](https://cert-manager.io/) is a provider that can be used for issuing signed certificates to OSM without
135
+
the need for storing private keys in Kubernetes. Refer to OSM's [cert-manager documentation](https://release-v0-11.docs.openservicemesh.io/docs/guides/certificates/)
136
+
and [demo](https://docs.openservicemesh.io/docs/demos/cert-manager_integration/) to learn more. Values to configure cert-manager must be passed in during OSM installation using the Azure CLI.
137
+
138
+
> [!NOTE]
139
+
> Use the commands provided in the OSM GitHub documentation with caution. Ensure that you use the correct namespace name `arc-osm-system`.
140
+
141
+
To set cert-manager as the certificate provider, create a JSON file with the following `certificateProvider.kind` value.
142
+
Include and update the subsequent `certmanager.issuer` lines if you would like to change from default values specified in OSM documentation.
Now, run OSM installation with custom configuration.
154
+
155
+
### Install OSM with Contour for Ingress
156
+
OSM provides multiple options to expose mesh services externally using ingress. OSM has been tested with [Contour](https://projectcontour.io/), which
157
+
works with the ingress controller installed outside the mesh and provisioned with a certificate to participate in the mesh.
158
+
Refer to [OSM's ingress documentation](https://docs.openservicemesh.io/docs/guides/traffic_management/ingress/#1-using-contour-ingress-controller-and-gateway)
159
+
and [demo](https://docs.openservicemesh.io/docs/demos/ingress_contour/) to learn more. Values to configure
160
+
Contour must be passed in during OSM installation using the Azure CLI.
161
+
162
+
> [!NOTE]
163
+
> Use the commands provided in the OSM GitHub documentation with caution. Ensure that you use the correct namespace name `arc-osm-system`.
164
+
165
+
To set required values for configuring Contour, create the following JSON file.
Now, run OSM installation with custom configuration.
176
+
122
177
### Install Azure Arc-enabled OSM using ARM template
123
178
124
179
After connecting your cluster to Azure Arc, create a json file with the following format, making sure to update the \<cluster-name\> and \<osm-arc-version\> values:
@@ -181,20 +236,18 @@ After connecting your cluster to Azure Arc, create a json file with the followin
181
236
}
182
237
```
183
238
184
-
Now set the environment variables:
185
-
239
+
Set the environment variables:
186
240
```azurecli-interactive
187
241
export TEMPLATE_FILE_NAME=<template-file-path>
188
242
export DEPLOYMENT_NAME=<desired-deployment-name>
189
243
```
190
244
191
-
Finally, run this command to install the OSM extension through az CLI:
192
-
245
+
Run the command below to install the OSM extension using the az CLI:
193
246
```azurecli-interactive
194
247
az deployment group create --name $DEPLOYMENT_NAME --resource-group $RESOURCE_GROUP --template-file $TEMPLATE_FILE_NAME
195
248
```
196
249
197
-
Now, you should be able to view the OSM resources and use the OSM extension in your cluster.
250
+
You should now be able to view the OSM resources and use the OSM extension in your cluster.
198
251
199
252
## Validate the Azure Arc-enabled Open Service Mesh installation
200
253
@@ -347,67 +400,7 @@ To make changes to the OSM ConfigMap for version v0.8.4, use the following guida
347
400
348
401
> [!NOTE]
349
402
> To ensure that the ConfigMap changes are not reverted to the default, pass in the same configuration settings to all subsequent az k8s-extension create commands.
350
-
351
-
## Certificate Management
352
-
[cert-manager](https://cert-manager.io/) is a provider that can be used for issuing signed certificates to OSM without
353
-
the need for storing private keys in Kubernetes. Refer to OSM's [cert-manager documentation](https://release-v0-11.docs.openservicemesh.io/docs/guides/certificates/)
354
-
and [demo](https://docs.openservicemesh.io/docs/demos/cert-manager_integration/) to learn more. Values to configure cert-manager must be passed in during OSM installation using the Azure CLI.
355
-
356
-
> [!NOTE]
357
-
> Use the commands provided in the OSM GitHub documentation with caution. Ensure that you use the correct namespace name `arc-osm-system`.
358
-
359
-
To set cert-manager as the certificate provider, create a JSON file with the following `certificateProvider.kind` value.
360
-
Include and update the subsequent `certmanager.issuer` lines if you would like to change from default values specified in OSM documentation.
Run the `az k8s-extension create` command used to create the OSM extension, and pass in the settings file using configuration settings:
377
-
```azurecli-interactive
378
-
az k8s-extension create --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --release-train pilot --name osm --version $VERSION --configuration-settings-file $SETTINGS_FILE
379
-
```
380
-
381
-
## Ingress
382
-
OSM provides multiple options to expose mesh services externally using ingress. OSM has been tested with [Contour](https://projectcontour.io/), which
383
-
works with the ingress controller installed outside the mesh and provisioned with a certificate to participate in the mesh.
384
-
Refer to [OSM's ingress documentation](https://docs.openservicemesh.io/docs/guides/traffic_management/ingress/#1-using-contour-ingress-controller-and-gateway)
385
-
and [demo](https://docs.openservicemesh.io/docs/demos/ingress_contour/) to learn more. Values to configure
386
-
Contour must be passed in during OSM installation using the Azure CLI.
387
-
388
-
> [!NOTE]
389
-
> Use the commands provided in the OSM GitHub documentation with caution. Ensure that you use the correct namespace name `arc-osm-system`.
390
-
391
-
To set required values for configuring Contour, create the following JSON file.
Run the `az k8s-extension create` command used to create the OSM extension, and pass in the settings file using configuration settings:
407
-
```azurecli-interactive
408
-
az k8s-extension create --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --release-train pilot --name osm --version $VERSION --configuration-settings-file $SETTINGS_FILE
409
-
```
410
-
403
+
411
404
## Using the Azure Arc-enabled Open Service Mesh
412
405
413
406
To start using OSM capabilities, you need to first onboard the application namespaces to the service mesh. Download the OSM CLI from [OSM GitHub releases page](https://github.com/openservicemesh/osm/releases/). Once the namespaces are added to the mesh, you can configure the SMI policies to achieve the desired OSM capability.
0 commit comments