Skip to main content
In this guide, you will learn how to install and configure ExternalDNS on a Kubernetes cluster to automatically manage DNS records in GoDaddy based on Ingress resources. This approach ensures that your services are always reachable via the correct domain names without manual DNS updates.

Cluster Overview

Before we begin, verify the current state of your cluster and the Traefik ingress controller.
Check Traefik in the traefik namespace:

1. Install ExternalDNS via Helm

  1. Add and update the ExternalDNS Helm repository:
  2. Create a values.yaml file with your GoDaddy credentials:

Values Reference

Never commit your GoDaddy API key/secret to version control. Use a secure secret management system or Kubernetes Secret.
  1. Install ExternalDNS in the default namespace:
  2. Confirm the ExternalDNS pod is running:
  3. View logs to verify it authenticates and syncs:
    Expected log excerpt:

2. Create and Apply the Ingress

Define an Ingress that exposes the whoami service and instructs ExternalDNS to manage the DNS record whoami.kubernetkk.xyz pointing to your node IP (192.168.121.243 in this example).
Apply the Ingress:
Watch ExternalDNS logs as it detects the new Ingress:
Look for a log entry like:
This confirms that ExternalDNS is creating the DNS record.
If you use a cloud provider’s LoadBalancer service type, omit the external-dns.alpha.kubernetes.io/target annotation. ExternalDNS will automatically use the LoadBalancer’s IP.

References

Watch Video