Expose your k8s ingress rules via local DNS. A rewrite of Minikube's ingress-dns addon, but in rust, and for any cluster (K3s, Microk8s, etc).
- Install in your cluster -
kubectl apply -f https://raw.githubusercontent.com/talss89/kube-ingress-dns/main/manifest/ingress-dns.yaml
- Set up your local machine to use the resolver (guide coming soon)
- Docker images for
linux/amd64
andlinux/arm64
-
Ingress
support - Gateway API support
- Management utility to configure local machine DNS
This is a very early work-in-progress, but I am using this locally on my machine currently. Contributions are very welcome, and encouraged!
When running k8s locally, you often need to access services exposed via ingresses. You could manually maintain your /etc/hosts
file with all the domain names, and respective IP addresses, but this is error-prone and cumbersome. A much better approach is to use DNS.
This pod exposes a DNS server on your k8s node's host network, which will resolve any ingress domains and point them at the correct ingress external IP.
All you need to do is make sure your local machine is configured to use the resolver.
Aside from being fairly minikube opinionated, there are now a few issues with the ingress-dns
minikube addon:
- It's not actively maintained, and fails to work on current k8s versions.
- It's fairly inefficient; relying on NodeJS
This kube-ingress-dns
project is:
- Non-opinionated - will work with any k8s cluster
- Lightweight - Built in rust with minimal dependencies
- K8s compliant - Uses
kube-rs
to interact with the cluster