Emissary-ingress
Emissary-Ingress is an open-source Kubernetes-native API Gateway + Layer 7 load balancer + Kubernetes Ingress built on Envoy Proxy. Emissary-ingress is a CNCF incubation project (and was formerly known as Ambassador API Gateway).
Emissary-ingress enables its users to:
- Manage ingress traffic with load balancing, support for multiple protocols (gRPC and HTTP/2, TCP, and web sockets), and Kubernetes integration
- Manage changes to routing with an easy to use declarative policy engine and self-service configuration, via Kubernetes CRDs or annotations
- Secure microservices with authentication, rate limiting, and TLS
- Ensure high availability with sticky sessions, rate limiting, and circuit breaking
- Leverage observability with integrations with Grafana, Prometheus, and Datadog, and comprehensive metrics support
- Enable progressive delivery with canary releases
- Connect service meshes including Consul, Linkerd, and Istio
- Knative serverless integration
See the full list of features here.
Branches
(If you are looking at this list on a branch other than master
, it
may be out of date.)
master
- branch for Emissary-ingress 3.7.z work (βοΈ upcoming release)release/v3.6
- branch for Emissary-ingress 3.6.z workrelease/v2.5
- branch for Emissary-ingress 2.5.z work (βοΈ upcoming release)release/v1.14
- branch for Emissary-ingress 1.14.z work (βοΈ maintenance, supported through September 2022)
Architecture
Emissary is configured via Kubernetes CRDs, or via annotations on Kubernetes Service
s. Internally,
it uses the [Envoy Proxy] to actually handle routing data; externally, it relies on Kubernetes for
scaling and resiliency. For more on Emissary's architecture and motivation, read this blog post.
Getting Started
You can get Emissary up and running in just three steps. Follow the instructions here: https://www.getambassador.io/docs/emissary/latest/tutorials/getting-started/
If you are looking for a Kubernetes ingress controller, Emissary provides a superset of the functionality of a typical ingress controller. (It does the traditional routing, and layers on a raft of configuration options.) This blog post covers Kubernetes ingress.
For other common questions, view this FAQ page.
You can also use Helm to install Emissary. For more information, see the instructions in the Helm installation documentation
Check out full the Emissary documentation at www.getambassador.io.
Community
Emissary-ingress is a CNCF Incubating project and welcomes any and all contributors.
Check out the Community/
directory for information on
the way the community is run, including:
- the
CODE_OF_CONDUCT.md
- the
GOVERNANCE.md
structure - the list of
MAINTAINERS.md
- the
MEETING_SCHEDULE.md
of regular trouble-shooting meetings and contributor meetings - how to get
SUPPORT.md
.
The best way to join the community is to join our Slack channel.
Check out the DevDocumentation/
directory for
information on the technicals of Emissary, most notably the
DEVELOPING.md
contributor's guide.
If you're interested in contributing, here are some ways:
- Write a blog post for our blog
- Investigate an open issue
- Add more tests
The Ambassador Edge Stack is a superset of Emissary-ingress that provides additional functionality including OAuth/OpenID Connect, advanced rate limiting, Swagger/OpenAPI support, integrated ACME support for automatic TLS certificate management, and a cloud-based UI. For more information, visit https://www.getambassador.io/editions/.