|
1 | 1 | ---
|
2 |
| -title: Open Service Mesh |
3 |
| -description: Open Service Mesh (OSM) in Azure Kubernetes Service (AKS) |
| 2 | +title: Open Service Mesh in Azure Kubernetes Service (AKS) |
| 3 | +description: Learn about the Open Service Mesh (OSM) add-on in Azure Kubernetes Service (AKS). |
4 | 4 | ms.topic: article
|
5 |
| -ms.date: 12/20/2021 |
| 5 | +ms.date: 04/06/2023 |
6 | 6 | ms.author: pgibson
|
7 | 7 | ---
|
8 | 8 |
|
9 |
| -# Open Service Mesh AKS add-on |
| 9 | +# Open Service Mesh (OSM) add-on in Azure Kubernetes Service (OSM) |
10 | 10 |
|
11 |
| -[Open Service Mesh (OSM)](https://docs.openservicemesh.io/) is a lightweight, extensible, cloud native service mesh that allows users to uniformly manage, secure, and get out-of-the-box observability features for highly dynamic microservice environments. |
| 11 | +[Open Service Mesh (OSM)](https://docs.openservicemesh.io/) is a lightweight, extensible, cloud native service mesh that allows you to uniformly manage, secure, and get out-of-the-box observability features for highly dynamic microservice environments. |
12 | 12 |
|
13 |
| -OSM runs an Envoy-based control plane on Kubernetes and can be configured with [SMI](https://smi-spec.io/) APIs. OSM works by injecting an Envoy proxy as a sidecar container with each instance of your application. The Envoy proxy contains and executes rules around access control policies, implements routing configuration, and captures metrics. The control plane continually configures the Envoy proxies to ensure policies and routing rules are up to date and ensures proxies are healthy. |
| 13 | +OSM runs an Envoy-based control plane on Kubernetes and can be configured with [SMI](https://smi-spec.io/) APIs. OSM works by injecting an Envoy proxy as a sidecar container with each instance of your application. The Envoy proxy contains and executes rules around access control policies, implements routing configuration, and captures metrics. The control plane continually configures the Envoy proxies to ensure policies and routing rules are up to date and proxies are healthy. |
14 | 14 |
|
15 |
| -The OSM project was originated by Microsoft and has since been donated and is governed by the [Cloud Native Computing Foundation (CNCF)](https://www.cncf.io/). |
| 15 | +Microsoft started the OSM project, but it's now governed by the [Cloud Native Computing Foundation (CNCF)](https://www.cncf.io/). |
16 | 16 |
|
17 |
| -## Installation and version |
| 17 | +## Enable the OSM add-on |
18 | 18 |
|
19 |
| -OSM can be added to your Azure Kubernetes Service (AKS) cluster by enabling the OSM add-on using the [Azure CLI][osm-azure-cli] or a [Bicep template][osm-bicep]. The OSM add-on provides a fully supported installation of OSM that is integrated with AKS. |
| 19 | +OSM can be added to your Azure Kubernetes Service (AKS) cluster by enabling the OSM add-on using the [Azure CLI][osm-azure-cli] or a [Bicep template][osm-bicep]. The OSM add-on provides a fully supported installation of OSM that's integrated with AKS. |
20 | 20 |
|
21 | 21 | > [!IMPORTANT]
|
22 |
| -> Based on the version of Kubernetes your cluster is running, the OSM add-on installs a different version of OSM: |
23 |
| -> - If your cluster is running Kubernetes version 1.24.0 or greater, the OSM add-on installs version *1.2.3* of OSM. |
24 |
| -> - If your cluster is running a version of Kubernetes between 1.23.5 and 1.24.0, the OSM add-on installs version *1.1.3* of OSM. |
25 |
| -> - If your cluster is running a version of Kubernetes below 1.23.5, the OSM add-on installs version *1.0.0* of OSM. |
| 22 | +> Based on the version of Kubernetes your cluster is running, the OSM add-on installs a different version of OSM. |
| 23 | +> |
| 24 | +> |Kubernetes version | OSM version installed | |
| 25 | +> |---------------------------|-----------------------| |
| 26 | +> | 1.24.0 or greater | 1.2.3 | |
| 27 | +> | Between 1.23.5 and 1.24.0 | 1.1.3 | |
| 28 | +> | Below 1.23.5 | 1.0.0 | |
26 | 29 |
|
27 | 30 | ## Capabilities and features
|
28 | 31 |
|
29 | 32 | OSM provides the following capabilities and features:
|
30 | 33 |
|
31 |
| -- Secure service to service communication by enabling mutual TLS (mTLS). |
| 34 | +- Secure service-to-service communication by enabling mutual TLS (mTLS). |
32 | 35 | - Onboard applications onto the OSM mesh using automatic sidecar injection of Envoy proxy.
|
33 | 36 | - Transparently configure traffic shifting on deployments.
|
34 |
| -- Define and execute fine grained access control policies for services. |
| 37 | +- Define and execute fine-grained access control policies for services. |
35 | 38 | - Monitor and debug services using observability and insights into application metrics.
|
36 |
| -- Integrate with external certificate management. |
37 |
| -- Integrates with existing ingress solutions such as [NGINX][nginx], [Contour][contour], and [Web Application Routing][web-app-routing]. For more details on how ingress works with OSM, see [Using Ingress to manage external access to services within the cluster][osm-ingress]. For an example on integrating OSM with Contour for ingress, see [Ingress with Contour][osm-contour]. For an example on integrating OSM with ingress controllers that use the `networking.k8s.io/v1` API, such as NGINX, see [Ingress with Kubernetes Nginx Ingress Controller][osm-nginx]. For more details on using Web Application Routing, which automatically integrates with OSM, see [Web Application Routing][web-app-routing]. |
38 |
| - |
39 |
| -## Example scenarios |
40 |
| - |
41 |
| -OSM can be used to help your AKS deployments in many different ways. For example: |
42 |
| - |
43 | 39 | - Encrypt communications between service endpoints deployed in the cluster.
|
44 | 40 | - Enable traffic authorization of both HTTP/HTTPS and TCP traffic.
|
45 | 41 | - Configure weighted traffic controls between two or more services for A/B testing or canary deployments.
|
46 | 42 | - Collect and view KPIs from application traffic.
|
| 43 | +- Integrate with external certificate management. |
| 44 | +- Integrate with existing ingress solutions such as [NGINX][nginx], [Contour][contour], and [Web Application Routing][web-app-routing]. |
| 45 | + |
| 46 | +For more information on ingress and OSM, see [Using ingress to manage external access to services within the cluster][osm-ingress] and [Integrate OSM with Contour for ingress][osm-contour]. For an example of how to integrate OSM with ingress controllers using the `networking.k8s.io/v1` API, see [Ingress with Kubernetes Nginx ingress controller][osm-nginx]. For more information on using Web Application Routing, which automatically integrates with OSM, see [Web Application Routing][web-app-routing]. |
47 | 47 |
|
48 |
| -## Add-on limitations |
| 48 | +## Limitations |
49 | 49 |
|
50 | 50 | The OSM AKS add-on has the following limitations:
|
51 | 51 |
|
52 |
| -* [Iptables redirection][ip-tables-redirection] for port IP address and port range exclusion must be enabled using `kubectl patch` after installation. For more details, see [iptables redirection][ip-tables-redirection]. |
53 |
| -* Pods that are onboarded to the mesh that need access to IMDS, Azure DNS, or the Kubernetes API server must have their IP addresses to the global list of excluded outbound IP ranges using [Global outbound IP range exclusions][global-exclusion]. |
54 |
| -* At this time, OSM does not support Windows Server containers. |
| 52 | +- After installation, you must enable Iptables redirection for port IP address and port range exclusion using `kubectl patch`. For more information, see [iptables redirection][ip-tables-redirection]. |
| 53 | +- Any pods that need access to IMDS, Azure DNS, or the Kubernetes API server must have their IP addresses added to the global list of excluded outbound IP ranges using [Global outbound IP range exclusions][global-exclusion]. |
| 54 | +- OSM doesn't support Windows Server containers. |
55 | 55 |
|
56 | 56 | ## Next steps
|
57 | 57 |
|
58 | 58 | After enabling the OSM add-on using the [Azure CLI][osm-azure-cli] or a [Bicep template][osm-bicep], you can:
|
59 |
| -* [Deploy a sample application][osm-deploy-sample-app] |
60 |
| -* [Onboard an existing application][osm-onboard-app] |
| 59 | + |
| 60 | +- [Deploy a sample application][osm-deploy-sample-app] |
| 61 | +- [Onboard an existing application][osm-onboard-app] |
61 | 62 |
|
62 | 63 | [ip-tables-redirection]: https://release-v1-2.docs.openservicemesh.io/docs/guides/traffic_management/iptables_redirection/
|
63 | 64 | [global-exclusion]: https://release-v1-2.docs.openservicemesh.io/docs/guides/traffic_management/iptables_redirection/#global-outbound-ip-range-exclusions
|
64 | 65 | [osm-azure-cli]: open-service-mesh-deploy-addon-az-cli.md
|
65 | 66 | [osm-bicep]: open-service-mesh-deploy-addon-bicep.md
|
66 | 67 | [osm-deploy-sample-app]: https://release-v1-2.docs.openservicemesh.io/docs/getting_started/install_apps/
|
67 | 68 | [osm-onboard-app]: https://release-v1-2.docs.openservicemesh.io/docs/guides/app_onboarding/
|
68 |
| -[ip-tables-redirection]: https://docs.openservicemesh.io/docs/guides/traffic_management/iptables_redirection/ |
69 |
| -[global-exclusion]: https://docs.openservicemesh.io/docs/guides/traffic_management/iptables_redirection/#global-outbound-ip-range-exclusions |
70 | 69 | [nginx]: https://github.com/kubernetes/ingress-nginx
|
71 | 70 | [contour]: https://projectcontour.io/
|
72 | 71 | [osm-ingress]: https://release-v1-2.docs.openservicemesh.io/docs/guides/traffic_management/ingress/
|
|
0 commit comments