v1.0
Managed Kubernetes

How to deploy Ambassador Edge Stack on your Kubernetes Cluster

This tutorial will walk you through the steps to get the Ambassador Edge Stack up and running on a Kubernetes cluster.

Introduction

Ambassador Edge Stack is an open-source tool designed to function as a swiss army knife of sorts for traffic between your Kubernetes clusters and the rest of the world. Ambassador offers Envoy-based ingress control, an API gateway, load-balancing and more through a single tool, allowing teams to reduce the number of individual components they need to install and support, in order to manage application traffic.

Ambassador also offers the advantage of being truly Kubernetes-native: It is configured using Kubernetes annotations and declarative configurations. It supports advanced API-management features like rate-limiting a circuit-breaking, as well.

Prerequisites

  • A valid Kubernetes cluster. You can create one quickly for free using Platform9 Managed Kubernetes. Signup for a Free PMK Account Here and create your Kubernetes cluster using PMK. You can also use this guide on any other Kubernetes cluster you may have.
  • A Kubectl installation with your Kubernetes cluster from the step above configured as the primary cluster.
  • The helm 3 package manager client installed on your local machine. Follow instructions here to install the helm client on your local machine.

Step 1 - Deploy Ambassador

Now, you’re ready to deploy Ambassador to your Platform9 Kubernetes cluster. There are two methods for doing this:

  1. Using the edgectl CLI tool, which automates most of the process.
  2. Manually downloading and applying the relevant YAML files.

Whichever method you choose, remember that you’ll need to work within the same terminal where you ran the export kubeconfig command from the previous section (or, you can run the export command again if you open a new terminal). Also remember that the kubeconfig credentials you downloaded from the Platform9 Web console expire after twenty-four hours, so you’ll need to download a new kubeconfig and export it to your environment if you exceed that window.

Install Ambassador with edgectl

Edgectl is a CLI tool that you can download from the website of Datawire, the main developer of Ambassador.

On Linux and macOS, you can download and run the installer with a curl command:

Shell
Copy

If you’re on Windows, download the installer from here.

Once edgectl is downloaded, run the installer with this command:

Shell
Copy

After installation completes, you can verify that the Ambassador pods are running under the Pods, Deployments, Services tab in Platform9:

As we can see, Ambassador has been deployed successfully on our Platform9 cluster.

Install Ambassador Manually

Deploying Ambassador manually is only slightly more complicated than using the Edgectl method as described above.

In the terminal where the kubeconfig environment for your Platform9 cluster is active, run this command:

Shell
Copy

This will download and apply the YAML files to set up the Ambassador service.

You can then access the Ambassador Web console at your cluster’s IP address. If you don’t know that address, find it with the following command:

Shell
Copy

Now, there is one more step to perform: To log into the Ambassador Web console, you’ll first need to download and configure edgectl for your Ambassador instance. The Web console will display specific instructions to follow for this purpose. Complete those as directed, and you’ll be up and running.

Step 2 - Create an Ambassador Service

Ambassador uses Kubernetes Custom Resource Definitions to define how requests are mapped to services. The Resource Definitions are YAML files that are applied with kubectl.

Here’s a basic definition for a service that tells Ambassador to map requests for /httpbin/ to the service httpbin.org:

YAML
Copy

To deploy this service, save the definition in a YAML file (we’ll use httpdbin.yaml for this example), then apply it with kubectl:

Shell
Copy

Additional Resources

For further guidance on how to configure Ambassador Edge Stack, examples of more complex service deployments and tips on best practices to follow, check out the official documentation. Ambassador also has an active Slack channel where you can get support.

  Last updated