Ingress & Domains
Expose your Kubernetes services to the internet using ingress controllers and custom domains.
Whitelist Your Domain in the cluster
Before using a custom domain, ensure it is whitelisted in your DKS cluster settings.
- Navigate to your DKS cluster in the DCP dashboard
- Go to the "Overview" tab
- Find the "Custom Domains" section
- Add your domain (e.g.,
*.yourdomain.com) to the whitelist
Ingress Controllers
DKS comes with NGINX Ingress Controller pre-installed and ready to use. No installation required.
Setting Up Ingress
Create Ingress Resource
Create an Ingress resource for your application:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-app-ingress
spec:
rules:
- host: myapp.yourdomain.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-app-service
port:
number: 80
Apply the Ingress resource:
kubectl apply -f ingress.yaml
DNS Configuration
To expose your service, you need to create a DNS CNAME record in your DNS provider:
CNAME Record
Create a wildcard CNAME record pointing to your cluster:
*.yourdomain.com -> edge.dcptunnel.net
Example:
*.example.com -> edge.dcptunnel.net
edge.dcptunnel.net is the global endpoint for DKS clusters.
Steps
- Log in to your DNS provider (e.g., Cloudflare, Route53, Namecheap)
- Navigate to DNS management for your domain
- Create a new CNAME record:
- Name:
*(wildcard) - Value:
edge.dcptunnel.net - TTL: 300 (or your preferred TTL)
- Name:
- Wait for DNS propagation (usually a few minutes)
Once the DNS record is propagated, your service will be accessible at myapp.yourdomain.com (or any subdomain matching your wildcard).
SSL/TLS
DKS automatically provisions SSL certificates using Let's Encrypt for your domains. Certificates are automatically generated and renewed.
Troubleshooting
- Service not accessible: Verify DNS propagation using
digornslookup - Certificate issues: Check that your DNS record is correctly configured
- Ingress not working: Verify your Ingress resource configuration and service name/port
- Check ingress controller logs:
kubectl logs -n ingress-nginx <ingress-controller-pod>