Docsright arrowEmissary-ingressright arrow1.14right arrowEmissary-ingress Tutorial

4 min • read

Emissary-ingress Tutorial

In this article, you will explore some of the key features of Emissary-ingress by walking through an example workflow and exploring the Edge Policy Console.

Prerequisites

You must have Emissary-ingress installed in your Kubernetes cluster.

Routing Traffic from the Edge

Like any other Kubernetes object, Custom Resource Definitions (CRDs) are used to declaratively define Emissary-ingress’s desired state. The workflow you are going to build uses a sample deployment and the Mapping CRD, which is the core resource that you will use with Emissary-ingress to manage your edge. It enables you to route requests by host and URL path from the edge of your cluster to Kubernetes services.

  1. Copy the configuration below and save it to a file named quote.yaml so that you can deploy these resources to your cluster. This basic configuration creates the quote deployment and a service to expose that deployment on port 80.

  2. Apply the configuration to the cluster with the command kubectl apply -f quote.yaml.

  3. Copy the configuration below and save it to a file called quote-backend.yaml so that you can create a Mapping on your cluster. This Mapping tells Emissary-ingress to route all traffic inbound to the /backend/ path to the quote service.

  4. Apply the configuration to the cluster with the command kubectl apply -f quote-backend.yaml

  5. Store the Emissary-ingress LoadBalancer address to a local environment variable. You will use this variable to test accessing your pod.

  6. Test the configuration by accessing the service through the Emissary-ingress load balancer.

Success, you have created your first Emissary-ingress Mapping, routing a request from your cluster's edge to a service!

2. Emissary-ingress's diagnostics

Emissary-ingress provides live diagnostics viewable with a web browser. While this would normally not be exposed to the public network, the Docker demo publishes the diagnostics service at the following URL:

http://localhost:8080/ambassador/v0/diag/

You'll have to authenticate to view this page: use the username admin, password admin (obviously this would be a poor choice in the real world!). We'll talk more about authentication shortly.

To access the Diagnostics page with authentication, use curl http://localhost:8080/ambassador/v0/diag/ -u admin:admin

Some of the most important information - your Emissary-ingress version, how recently Emissary-ingress's configuration was updated, and how recently Envoy last reported status to Emissary-ingress - is right at the top. The diagnostics overview can show you what it sees in your configuration map, and which Envoy objects were created based on your configuration.

Next Steps

Further explore some of the concepts you learned about in this article:

  • Mapping resource: routes traffic from the edge of your cluster to a Kubernetes service
  • Host resource: sets the hostname by which Emissary-ingress will be accessed and secured with TLS certificates
  • Edge Policy Console: a web-based interface used to configure and monitor Emissary-ingress
  • Developer Portal: publishes an API catalog and OpenAPI documentation

Emissary-ingress has a comprehensive range of features to support the requirements of any edge microservice.

Learn more about how developers use Emissary-ingress to manage edge policies.

Learn more about how site reliability engineers and operators run Emissary-ingress in production environments.

To learn how Emissary-ingress works, use cases, best practices, and more, check out the Quick Start page or read the Emissary-ingress Story.

For a custom configuration, you can install Emissary-ingress manually.