Addon: Ambassador

Ambassador is available in MicroK8s versions 1.19, 1.20, 1.21, 1.22 and 1.23. It has been removed in MicroK8s versions 1.24 and newer.

Ambassador API Gateway enables you to easily expose, secure, and manage traffic to your Kubernetes microservices of any type. Enable this add on with:

microk8s enable ambassador

You can now expose a Service by creating an Ingress . Note that Ambassador will only serve Ingress resources that include the annotation kubernetes.io/ingress.class: ambassador (otherwise they are just ignored).

For example:

cat<<EOF | microk8s.kubectl apply -f -
---
kind: Pod
apiVersion: v1
metadata:
  name: foo-app
  labels:
    app: foo
spec:
  containers:
  - name: foo-app
    image: hashicorp/http-echo:0.2.3
    args:
    - "-text=foo"
---
kind: Service
apiVersion: v1
metadata:
  name: foo-service
spec:
  selector:
    app: foo
  ports:
  # Default port used by the image
  - port: 5678
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: example-ingress
  annotations:
    kubernetes.io/ingress.class: ambassador
spec:
  rules:
  - http:
      paths:
      - path: /foo
        backend:
          serviceName: foo-service
          servicePort: 5678
EOF

Now verify that the ingress works:

# should output "foo"
curl localhost/foo

Last updated 5 months ago. Help improve this document in the forum.