Open Service Mesh (OSM) 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.
- Overview
- OSM Design
- Getting Started
- Demo and Examples
- Community
- Development Guide
- Code of Conduct
- License
OSM runs an Envoy based control plane on Kubernetes, can be configured with SMI APIs, and works by injecting an Envoy proxy as a sidecar container next to each instance of your application. The proxy contains and executes rules around access control policies, implements routing configuration, and captures metrics. The control plane continually configures proxies to ensure policies and routing rules are up to date and ensures proxies are healthy.
- Simple to understand and contribute to
- Effortless to install, maintain, and operate
- Painless to troubleshoot
- Easy to configure via Service Mesh Interface (SMI)
- Easily and transparently configure traffic shifting for deployments
- Secure service to service communication by enabling mTLS
- Define and execute fine grained access control policies for services
- Observability and insights into application metrics for debugging and monitoring services
- Integrate with external certificate management services/solutions with a pluggable interface
- Onboard applications onto the mesh by enabling automatic sidecar injection of Envoy proxy
Specification Component | Supported Release | Comments |
---|---|---|
Traffic Access Control | v1alpha2 | |
Traffic Specs | v1alpha3 | |
Traffic Split | v1alpha2 | |
Traffic Metrics | v1alpha1 | 🚧 In Progress #379 🚧 |
Read more about OSM's high level goals, design, and architecture.
Below are quick getting started instructions. For a more detailed example usage guide and demo walkthrough, see the OSM Example Usage Guide.
- Kubernetes cluster running Kubernetes v1.15.0 or greater
- kubectl current context is configured for the target cluster install
kubectl config current-context
The simplest way of installing Open Service Mesh on a Kubernetes cluster is by using the osm
CLI.
Download the osm
binary from the Releases page. Unpack the osm
binary and add it to $PATH
to get started.
sudo mv ./osm /usr/local/bin/osm
$ osm check --pre-install
ok: initialize Kubernetes client
ok: query Kubernetes API
ok: Kubernetes version
ok: can create namespaces
ok: can create customresourcedefinitions
ok: can create clusterroles
ok: can create clusterrolebindings
ok: can create mutatingwebhookconfigurations
ok: can create serviceaccounts
ok: can create services
ok: can create deployments
ok: can create configmaps
ok: can read secrets
ok: can modify iptables
All checks successful!
$ osm install
See the installation guide for more detailed options.
After installing OSM, onboard a microservice application to the service mesh.
The automated demo is a set of scripts anyone can run and shows how OSM can manage, secure and provide observability for microservice environments.
To explore the same demo step by step, see the example usage guide.
Connect with the Open Service Mesh community:
- GitHub issues and pull requests in this repo
- OSM Slack (coming soon)
- Public Community Call (coming soon)
- Mailing list
If you would like to contribute to OSM, check out the development guide.
This project has adopted the Microsoft Open Source Code of Conduct. See CODE_OF_CONDUCT.md for further details.
This software is covered under the MIT license. You can read the license here.