Skip to content

Elastic IPs

An Elastic IP is a stable address for applications on a Ready cluster. It is not the Kubernetes API address (that is API server exposure). Door allocates the address. You point a Service at it.

Who can do this: a member can see the addresses. Adding and releasing them requires super_admin.

Adding an address in the console

Networking tab: Application public IPs, demo organization

Networking tab in the demo organization (cluster cp-canary-in, one address default-gateway, Ready). Your cluster shows your own addresses.

  1. Open a cluster whose status is Ready.
  2. Open the Networking tab.
  3. The card Application public IPs lists each address: name, status, the address, and actions. Before you add one it reads: No public IPs yet. Add one to expose a stable address for ingress.
  4. Click Add public IP. Door picks the address. You do not type an IP. The row moves through pending, then provisioning, then ready.
  5. Copy the address when the row is ready. Use the name in the Service annotation below.
  6. To release an address, use the row's delete control. It is available while the row is ready or failed.

This table is not the Kubernetes API. The API address is on Access & kubeconfig.

Whether the address is private or on the Internet follows the choice you made at create, Where can your applications be reached?

At create Addresses you can add
Private (VPN) Private addresses, reachable from your VPN or Direct Connect
Internet Internet-routed addresses

That choice cannot be changed later. If the zone has no addresses left, adding one is refused. Contact your Door account team for capacity.

Opening ports toward the address is a firewall rule. The Networking tab does not edit firewall rules.

Listing addresses with Maya

Maya can list the addresses on a cluster (name, status, address). Maya cannot add or release them. Use Add public IP on the Networking tab.

Using the address from Kubernetes

Create a Service of type LoadBalancer and set the annotation to the Elastic IP name:

apiVersion: v1
kind: Service
metadata:
  name: payments-web
  annotations:
    dks.door.africa/elastic-ip: web
spec:
  type: LoadBalancer
  selector:
    app: payments-web
  ports:
    - port: 443
      targetPort: 8443

To let Door allocate an address when the Service is created, use dks.door.africa/elastic-ip: auto instead of a name you already added.

A Service without the annotation is not attached to a Door Elastic IP. Open the application ports with a firewall rule (for example TCP 443 from your office network).

Deleting the cluster releases its Elastic IPs. You do not have to release each address first.

Next

The allocate and release calls for scripts are in the API reference.