Technitium dns-server
Technitium dns-server is a self hostable open source dns server.
Apply the manifest.
cat technitium-localstorage.yaml | envsubst | kubectl apply -f -
technitium-localstorage.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: technitium
spec:
selector:
matchLabels:
app: technitium
replicas: 1
template:
metadata:
labels:
app: technitium
spec:
containers:
- name: technitium
image: technitium/dns-server:11.1.1
volumeMounts:
- name: technitium-volume
mountPath: /etc/dns
volumes:
- name: technitium-volume
persistentVolumeClaim:
claimName: technitium-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: technitium-pvc
namespace: default
spec:
accessModes:
- ReadWriteOnce
storageClassName: local-path
resources:
requests:
storage: 2Gi
---
kind: Service
apiVersion: v1
metadata:
name: technitium-loadbalancer
spec:
ports:
- name: technitium-udp
port: 53
targetPort: 53
protocol: UDP
- name: technitium-tcp
port: 53
targetPort: 53
protocol: TCP
- name: technitium-http
port: 5380
targetPort: 5380
protocol: TCP
selector:
app: technitium
type: LoadBalancer
This example uses a loadbalancer instead of an ingress, so you can simply access the web interface on http://<server-ip>:5380
and the dns server on port 53. If you want to add a https certificate or basic auth to the web interface you need to use an ingress instead.