This addon adds an NGINX Ingress Controller for MicroK8s. It is enabled by running the command:
microk8s enable ingress
With the Ingress addon enabled, a HTTP/HTTPS ingress rule can be created with an Ingress resource. For example:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: http-ingress
spec:
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: some-service
port:
number: 80
Additionally, the ingress addon can be configured to expose TCP and UDP services by editing the nginx-ingress-tcp-microk8s-conf
and nginx-ingress-udp-microk8s-conf
ConfigMaps respectively, and then exposing the port in the Ingress controller.
For example, here a Redis service is exposed via TCP:
---
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-ingress-tcp-microk8s-conf
namespace: ingress
data:
6379: "default/redis:6379"
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: nginx-ingress-microk8s-controller
namespace: ingress
spec:
template:
spec:
containers:
- name: nginx-ingress-microk8s
ports:
- containerPort: 80
- containerPort: 443
- name: proxied-tcp-6379
containerPort: 6379
hostPort: 6379
protocol: TCP