Files
wild-cloud/infrastructure_setup/coredns
Paul Payne 5cbfb9c645 Add Immich application deployment files and configuration
- Create README.md for Immich app description
- Add example.env for configuration settings
- Implement deployment.yaml for Immich server and microservices
- Set up ingress.yaml for public access with DNS annotations
- Introduce db-init-job.yaml for database initialization
- Configure kustomization.yaml for resource management
- Define manifest.yaml for Immich app installation details
- Create namespace.yaml for isolating Immich resources
- Establish PVCs in pvc.yaml for storage management
- Set up services in service.yaml for server and machine learning components
- Update CoreDNS custom config to handle AAAA records
2025-05-27 17:19:41 -07:00
..

CoreDNS

CoreDNS has the kubernetes plugin, so it returns all k8s service endpoints in well-known format.

All services and pods are registered in CoreDNS.

  • ..svc.cluster.local

  • .

  • (if in the same namespace)

  • ..pod.cluster.local

  • ...svc.cluster.local

Any query for a resource in the internal.$DOMAIN domain will be given the IP of the Traefik proxy. We expose the CoreDNS server in the LAN via MetalLB just for this capability.

Default CoreDNS Configuration

Found at: https://github.com/k3s-io/k3s/blob/master/manifests/coredns.yaml

This is k3s default CoreDNS configuration, for reference:

.:53 {
    errors
    health
    ready
    kubernetes %{CLUSTER_DOMAIN}% in-addr.arpa ip6.arpa {
      pods insecure
      fallthrough in-addr.arpa ip6.arpa
    }
    hosts /etc/coredns/NodeHosts {
      ttl 60
      reload 15s
      fallthrough
    }
    prometheus :9153
    forward . /etc/resolv.conf
    cache 30
    loop
    reload
    loadbalance
    import /etc/coredns/custom/*.override
}
import /etc/coredns/custom/*.server