pomerium/docs/guide/kubernetes.md
Bobby DeSimone bcecee5ee3
docs: add kubernetes (#33)
- Update PR template to use Go language conventions.
- Moved healthcheck middleware to hijack a request before logging.
- Rewrote the quickstart guides to follow a similar pattern.
- Added an overview blurb on pomerium and its goals.
- Add an "example config" section to docs.
2019-01-27 22:22:14 -08:00

3.3 KiB

Kubernetes

This quickstart will show you how to deploy Pomerium with Kubernetes. For the purpose of this guide, we will be using Google's Kubernetes Engine. However, there are countless ways to work with Kubernetes:

Most of the following steps should be very similar using any other provider.

:::tip

Google Cloud Platform has a free trial with $300 credits.

:::

Prerequisites

Download

Retrieve the latest copy of pomerium's source-code by cloning the repository.

git clone https://github.com/pomerium/pomerium.git $HOME/pomerium

Configure

Edit the the example kubernetes files to match your identity provider settings:

  • ./docs/docs/examples/authenticate.deploy.yml
  • ./docs/docs/examples/authenticate.service.yml
  • ./docs/docs/examples/proxy.deploy.yml
  • ./docs/docs/examples/proxy.service.yml
  • ./docs/docs/examples/ingress.yml

Place your domain's wild-card TLS certificate (privkey.pem and cert.pem) in the root of the repository. If you don't have one handy, the included script generates one from LetsEncrypt.

Edit ./scripts/kubernetes_gke.sh making sure to change the identity provider secret value to match your identity provider settings.

Run

Run ./scripts/kubernetes_gke.sh which will:

  1. Provision a new cluster
  2. Create authenticate and proxy deployments.
  3. Provision and apply authenticate and proxy services.
  4. Configure an ingress to do serve TLS between client and load balancer
sh ./scripts/kubernetes_gke.sh

You should see roughly the following in your terminal. Note, provisioning does take a few minutes.

asciicast

And if you check out Google's Kubernetes Engine dashboard you'll see something like:

Google's Kubernetes Engine dashboard

Navigate

Open a browser and navigate to httpbin.your.domain.com.

You should see something like the following in your browser.

Getting started