Back to skills
SKILL.md
Coredns
CSecurity'"Coredns in Cloud-Native Engineering - CoreDNS is a DNS server that
- 4 stars
- 0 votes
- 0 copies
- 1 view
- Added September 4, 2026
Works with
Security analysis
71/100- Pipes output to a shell interpreter
- Uses curl or wget to download content
- Downloads and executes remote scripts — classic supply chain attack
npx -y skills add paulpas/agent-skill-router --skill coredns --agent claude-codeAre you the author of Coredns?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/paulpas-coredns)---
name: coredns
compatibility: opencode
completeness: 95
content-types:
- guidance
- examples
- do-dont
- config
description: '"Coredns in Cloud-Native Engineering - CoreDNS is a DNS server that
chains" plugins'
license: MIT
maturity: stable
metadata:
domain: cncf
output-format: manifests
role: reference
scope: infrastructure
triggers: cloud-native, coredns, engineering, server
archetypes:
- educational
- strategic
anti_triggers:
- brainstorming
- vague ideation
- non-containerized architecture
response_profile:
verbosity: medium
directive_strength: low
abstraction_level: strategic
version: "1.0.0"
---
related-skills: cncf-aws-route53, cncf-azure-cdn, cncf-azure-traffic-manager, cncf-azure-virtual-networks
# Coredns in Cloud-Native Engineering
**Category:** cncf
**Status:** Active
**Stars:** 14,001
**Last Updated:** 2026-04-21
**Primary Language:** Go
**Documentation:** [https://coredns.io/manual/](https://coredns.io/manual/)
---
## Purpose and Use Cases
Coredns is a core component of the cloud-native ecosystem, serving as a DNS server and service discovery system that provides flexible, plugin-based architecture for Kubernetes DNS needs.
### What Problem Does It Solve?
Service discovery requirements in Kubernetes, including DNS-based service lookup, custom DNS zones, and integration with Kubernetes services and endpoints.
### When to Use This Project
Use CoreDNS when deploying Kubernetes clusters and need DNS-based service discovery. It's the default DNS server for most Kubernetes distributions.
### Key Use Cases
- Kubernetes DNS service discovery
- Custom DNS zones and records
- DNS-based service discovery
- Integration with Kubernetes endpoints and services
- Reverse DNS lookups
---
## Architecture Design Patterns
### Core Components
- **Server**: DNS server instance
- **Plugin Chain**: Ordered list of plugins that handle queries
- **Zones**: DNS zones served by the server
- **Caching**: Response caching for improved performance
- **Service Discovery**: Kubernetes plugin for DNS-based discovery
- **DNSSEC**: DNS security extensions support
### Component Interactions
1. **Client → CoreDNS**: DNS query
2. **CoreDNS → Plugin Chain**: Processes query through plugins
3. **Kubernetes Plugin → API Server**: Reads service/endpoint data
4. **Cache Plugin**: Caches responses
5. **Forward Plugin → Upstream DNS**: For external queries
6. **CoreDNS → Client**: Returns DNS response
### Data Flow Patterns
1. **DNS Query**: Query received → Plugin chain → Response returned
2. **Kubernetes Plugin**: Service query → API Server → Service/Endpoint data → DNS response
3. **Cache**: Query → Cache check → Backend lookup → Cache update → Response
### Design Principles
- **Plugin Architecture**: Flexible, composable functionality
- **DNS Standard Compliance**: Follows RFC specifications
- **Kubernetes Integration**: First-class Kubernetes support
- **Performance**: Optimized for speed and efficiency
- **Configuration as Code**: YAML-based configuration
---
## Integration Approaches
### Integration with Other CNCF Projects
- **Kubernetes**: Default DNS server integration
- **etcd**: Backend storage plugin
- **Prometheus**: Metrics export
- **CNI**: Network configuration
### API Patterns
- **DNS Protocol**: Standard DNS queries
- **GRPC Admin API**: Management interface
- **Health Check API**: Plugin health monitoring
### Configuration Patterns
- **Corefile**: Main configuration file
- **Plugin Directives**: Configuration per plugin
- **Kubernetes Config**: Cluster config
### Extension Mechanisms
- **Plugins**: Extend functionality
- **Custom Plugins**: Go plugin development
- **Configuration Blocks**: Per-zone config
---
## Common Pitfalls and How to Avoid Them
### Misconfigurations
- **Kubernetes Plugin**: Incorrect cluster domain
- **Plugin Order**: Incorrect plugin chain order
- **Cache Configuration**: Incorrect cache size
- **Forward Configuration**: Incorrect upstream DNS
### Performance Issues
- **Cache Misses**: Low cache hit rate
- **Query Latency**: Slow upstream DNS
- **Memory Usage**: Large cache size
- **Kubernetes API Calls**: Frequent API queries
### Operational Challenges
- **Service Discovery**: Kubernetes API rate limits
- **Cache Management**: Cache invalidation strategies
- **High Availability**: Multiple instances
- **Monitoring**: DNS metrics collection
### Security Pitfalls
- **DNS Tunneling**: Exfiltration through DNS
- **Access Control**: Open DNS resolver
- **Cache Poisoning**: Without DNSSEC
- **Query Logging**: Sensitive data in logs
---
## Coding Practices
### Idiomatic Configuration
- **Corefile**: One file per server
- **Plugin Blocks**: Organized plugin config
- **Kubernetes Config**: Integrated with K8s
### API Usage Patterns
- **dig/kdig**: DNS queries
- **CoreDNS CLI**: Server management
- **Admin API**: Configuration management
### Observability Best Practices
- **Metrics**: Query and latency metrics
- **Access Logs**: DNS query logs
- **Plugin Metrics**: Per-plugin stats
- **Debug Commands**: Server info
### Testing Strategies
- **Unit Tests**: Plugin tests
- **Integration Tests**: DNS behavior
- **Performance Tests**: Query throughput
- **Compatibility Tests**: DNS standards
### Development Workflow
- **Development**: CoreDNS development setup
- **Testing**: Go tests, plugin tests
- **Debugging**: CoreDNS debug commands
- **Deployment**: Helm, DaemonSet
- **CI/CD**: GitHub Actions, test coverage
- **Tools**: CoreDNS binary, kubectl
---
## Fundamentals
### Essential Concepts
- **Zone**: DNS zone served by CoreDNS
- **Plugin**: Functionality module
- **Chain**: Ordered list of plugins
- **Cache**: Response caching
- **Forward**: Query forwarding to upstream
- **Kubernetes Plugin**: Kubernetes integration
- **Service**: Kubernetes service
- **Endpoint**: Pod backing a service
- **TTL**: Time-to-live for DNS records
- **SRV**: Service discovery records
### Terminology Glossary
- **Zone**: DNS zone served
- **Plugin**: Functionality module
- **Chain**: Ordered plugin list
- **Cache**: Response cache
- **Forward**: Upstream forwarding
- **Service**: K8s service
- **Endpoint**: Pod backing service
- **TTL**: Record time-to-live
- **SRV**: Service record
- **Corefile**: Main config
### Data Models and Types
- **Zone Config**: Zone configuration
- **Plugin Config**: Plugin configuration
- **Service**: Service definition
- **Endpoint**: Endpoint definition
- **Cache Entry**: Cached DNS record
- **Forward Config**: Forwarder configuration
### Lifecycle Management
- **Query Lifecycle**: Receive → Process → Response
- **Cache Lifecycle**: Store → Expire → Invalidate
- **Plugin Lifecycle**: Configure → Execute → Handle
- **Service Discovery Lifecycle**: Watch → Update → Respond
### State Management
- **Cache State**: DNS records
- **Zone State**: Zone data
- **Service State**: Kubernetes services
- **Plugin State**: Per-plugin state
---
## Scaling and Deployment Patterns
### Horizontal Scaling
- **Replica Scaling**: Multiple CoreDNS pods
- **Cache Scaling**: Cache size configuration
- **Forward Pool Scaling**: Upstream DNS pools
### High Availability
- **Multiple Replicas**: Multiple CoreDNS pods
- **Service Load Balancing**: Kubernetes service load balancing
- **Cache HA**: Per-instance caching
### Production Deployments
- **Production Configuration**: Cluster-aware setup
- **Caching Strategy**: Cache size optimization
- **Load Balancing**: Service load balancing
- **Monitoring**: DNS query metrics
- **Security**: DNSSEC, rate limiting
### Upgrade Strategies
- **Plugin Upgrade**: Plugin version compatibility
- **Configuration Changes**: Zero-downtime config update
- **Rolling Update**: Pod rolling upgrade
### Resource Management
- **Cache Memory**: Cache size configuration
- **CPU Configuration**: Query processing threads
- **Query Rate Limiting**: Rate limiting configuration
---
## Additional Resources
- **Official Documentation:** [https://coredns.io/manual/](https://coredns.io/manual/)
- **GitHub Repository:** [github.com/coredns/coredns](https://github.com/coredns/coredns)
- **CNCF Project Page:** [cncf.io/projects/coredns/](https://www.cncf.io/projects/coredns/)
- **Community:** Check the GitHub repository for community channels
- **Versioning:** Refer to project's release notes for version-specific features
---
## Examples
### Basic Kubernetes Service Discovery
```yaml
# Corefile for Kubernetes service discovery
.:53 {
errors
health {
lameduck 5s
}
ready
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
ttl 30
}
prometheus :9153
forward . /etc/resolv.conf {
max_concurrent 1000
}
cache 30
loop
reload
loadbalance
}
```
### Custom DNS Records
```yaml
# Add custom A records
.:53 {
errors
health
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
}
forward . /etc/resolv.conf
cache 30
loop
reload
loadbalance
# Custom records
rewrite continue {
name regex (.*)\.internal\.example\.com {1}.svc.cluster.local
}
file /etc/coredns/zones/example.com.cluster.local {
reload 5s
}
}
```
### Conditional Forwarding
```yaml
# Forward specific domains to upstream DNS
.:53 {
errors
health
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
}
# Conditional forwarders
forward . /etc/resolv.conf
forward . 8.8.8.8 8.8.4.4 {
protocol prefer_udp
}
forward example.com 10.0.0.1
cache 30
loop
reload
loadbalance
}
```
## Tutorial
This tutorial will guide you through installing, configuring, and using CoreDNS for Kubernetes service discovery.
### Prerequisites
Before beginning, ensure you have:
- A running Kubernetes cluster (minikube, kind, EKS, GKE, AKS)
- `kubectl` configured with cluster-admin permissions
- Basic understanding of DNS and Kubernetes networking
Verify your setup:
```bash
# Check cluster connectivity
kubectl cluster-info
# Verify kubectl configuration
kubectl get nodes
# Check CoreDNS status (Kubernetes DNS)
kubectl -n kube-system get pods -l k8s-app=kube-dns
```
---
### 1. Installation
CoreDNS is typically installed as the default DNS server in Kubernetes clusters. This section covers installing CoreDNS as a standalone DNS server or modifying the existing Kubernetes DNS.
#### Method 1: Verify Kubernetes CoreDNS Installation
```bash
# Check if CoreDNS is running in kube-system
kubectl -n kube-system get pods -l k8s-app=kube-dns
# Check CoreDNS deployment
kubectl -n kube-system get deployment coredns
# Verify DNS service
kubectl -n kube-system get svc kube-dns
```
#### Method 2: Installing CoreDNS Standalone (Non-Kubernetes)
```bash
# Download CoreDNS binary
curl -L https://github.com/coredns/coredns/releases/download/v1.11.1/coredns_1.11.1_linux_amd64.tgz | tar xz
# Move to PATH
sudo mv coredns /usr/local/bin/
# Verify installation
coredns -version
```
#### Method 3: Install via Helm
```bash
# Add CoreDNS Helm repository
helm repo add coredns https://coredns.github.io/helm
# Update repositories
helm repo update
# Install CoreDNS
helm install coredns coredns/coredns \
--namespace kube-system \
--create-namespace \
--wait
# Verify installation
helm list -n kube-system
kubectl -n kube-system get pods -l app=coredns
```
#### Method 4: Deploy to Kubernetes
```bash
# Generate CoreDNS manifest for Kubernetes
kubectl apply -f https://raw.githubusercontent.com/coredns/deployment/master/kubernetes/coredns.yaml.sed
# Or use the deployment script
curl -sSL https://coredns.io/deploy.sh | bash -s - 1.11.1
# Verify deployment
kubectl -n kube-system get pods -l k8s-app=kube-dns
```
---
### 2. Basic Configuration
#### Corefile Configuration
```yaml
# Default Corefile configuration for Kubernetes
apiVersion: v1
kind: ConfigMap
metadata:
name: coredns
namespace: kube-system
data:
Corefile: |
.:53 {
errors
health {
lameduck 5s
}
ready
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
ttl 30
}
prometheus :9153
forward . /etc/resolv.conf
cache 30
loop
reload
loadbalance
}
```
#### Custom DNS Zones
```bash
# Create custom CoreDNS configuration
cat > Corefile <<EOF
cluster.local:53 {
errors
health {
lameduck 5s
}
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
}
prometheus :9153
forward . /etc/resolv.conf
cache 30
}
example.com:53 {
file /etc/coredns/zones/example.com.db
}
.:53 {
forward . 8.8.8.8:53
cache 30
}
EOF
# Apply configuration
kubectl create configmap coredns-custom --from-file=Corefile -n kube-system
```
#### Plugin Configuration
```yaml
# CoreDNS with custom plugins
apiVersion: v1
kind: ConfigMap
metadata:
name: coredns
namespace: kube-system
data:
Corefile: |
.:53 {
errors
health
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
}
prometheus :9153
forward . 8.8.8.8:53 8.8.4.4:53
cache 30
reload
loadbalance
}
# External plugin: rewrite
rewrite name regex (.+)\.example\.com backend-{}.internal.local
# External plugin: auto
auto {
directory /etc/coredns/zones
reload 10s
}
EOF
```
---
related-skills: cncf-aws-route53, cncf-azure-cdn, cncf-azure-traffic-manager, cncf-azure-virtual-networks
### 3. Usage Examples
#### Basic DNS Queries
```bash
# Query a service in Kubernetes
kubectl run -it --rm debug --image=busybox --restart=Never -- nslookup kubernetes.default
# Query a specific service
kubectl run -it --rm debug --image=busybox --restart=Never -- nslookup my-service.default.svc.cluster.local
# Query external domain
kubectl run -it --rm debug --image=busybox --restart=Never -- nslookup google.com
# Using dig
kubectl run -it --rm debug --image=busybox --restart=Never -- dig kubernetes.default.svc.cluster.local
```
#### Debugging DNS Issues
```bash
# Test DNS resolution from a pod
kubectl run -it --rm debug --image=busybox --restart=Never -- sh
# Inside pod:
# nslookup kubernetes.default
# nslookup my-service.default.svc.cluster.local
# Check CoreDNS logs
kubectl -n kube-system logs -l k8s-app=kube-dns
# Check endpoint slices
kubectl -n kube-system get endpointslices -l k8s-app=kube-dns
# Check service cluster IP
kubectl get svc kubernetes -o yaml | grep clusterIP
```
#### Testing Custom Zones
```bash
# Deploy a test pod with custom DNS
cat > test-pod.yaml <<EOF
apiVersion: v1
kind: Pod
metadata:
name: test-dns
spec:
containers:
- name: test
image: busybox
command: ["sleep", "3600"]
dnsPolicy: "None"
dnsConfig:
nameservers:
- 10.96.0.10
searches:
- svc.cluster.local
- cluster.local
EOF
kubectl apply -f test-pod.yaml
kubectl exec -it test-dns -- nslookup kubernetes.default
```
#### Using CoreDNS Metrics
```bash
# Check CoreDNS metrics
kubectl -n kube-system port-forward svc/kube-dns 9153:9153
# Query metrics
curl http://localhost:9153/metrics | grep coredns_
# Prometheus query for DNS queries
curl -s 'http://localhost:9153/metrics' | grep 'coredns_dns_requests_total'
```
---
related-skills: cncf-aws-route53, cncf-azure-cdn, cncf-azure-traffic-manager, cncf-azure-virtual-networks
### 4. Common Operations
#### Monitoring CoreDNS
```bash
# Check pod status
kubectl -n kube-system get pods -l k8s-app=kube-dns
# Check resource usage
kubectl -n kube-system top pods -l k8s-app=kube-dns
# View metrics
kubectl -n kube-system logs -l k8s-app=kube-dns
# Check endpoints
kubectl -n kube-system get endpoints kube-dns
```
#### Scaling CoreDNS
```bash
# Scale CoreDNS deployment
kubectl -n kube-system scale deployment coredns --replicas=3
# Verify scaling
kubectl -n kube-system get pods -l k8s-app=kube-dns
# Check horizontal pod autoscaler
kubectl -n kube-system get hpa coredns
```
#### Updating CoreDNS Configuration
```bash
# Edit CoreDNS ConfigMap
kubectl -n kube-system edit configmap coredns
# Restart CoreDNS pods
kubectl -n kube-system rollout restart deployment coredns
# Verify update
kubectl -n kube-system rollout status deployment coredns
# Check CoreDNS pods
kubectl -n kube-system get pods -l k8s-app=kube-dns
```
#### Backing Up Configuration
```bash
# Backup CoreDNS config
kubectl -n kube-system get configmap coredns -o yaml > coredns-config-backup.yaml
# Backup zone files (if using custom zones)
kubectl -n kube-system exec -c coredns -l k8s-app=kube-dns -- tar czf /tmp/zones.tar.gz /etc/coredns/zones
# Download backup
kubectl -n kube-system cp kube-system/coredns-xxxxx:/tmp/zones.tar.gz ./zones-backup.tar.gz
```
---
### 5. Best Practices
#### Configuration Best Practices
1. **Use Default Kubernetes DNS**: Trust Kubernetes' managed CoreDNS for cluster DNS
2. **Configure Appropriate TTLs**: Set cache TTLs based on your update frequency
3. **Resource Limits**: Set CPU and memory limits for CoreDNS pods
4. **Zone Configuration**: Use explicit zone definitions for custom domains
5. **Forward Configuration**: Configure multiple upstream DNS servers for redundancy
6. **Logging Levels**: Configure appropriate log levels for debugging
7. **Separate Concerns**: Use separate instances for different purposes
8. **Version Management**: Keep CoreDNS updated with security patches
#### Performance Best Practices
1. **Caching**: Enable caching to reduce upstream queries
2. **Load Balancing**: Use loadbalance plugin for multiple upstreams
3. **Connection Pooling**: Configure upstream connection pool size
4. **Response Rate Limiting**: Use rate plugin to prevent abuse
5. **Worker Threads**: Configure worker threads based on CPU
6. **Memory Management**: Monitor and optimize memory usage
7. **DNS Response Size**: Configure maximum response size
8. **Negative Caching**: Configure appropriate negative cache TTL
#### Security Best Practices
1. **Enable DNSSEC**: Validate DNS responses with DNSSEC
2. **Network Policies**: Restrict DNS access with network policies
3. **Access Control**: Configure access control for admin API
4. **Log Sanitization**: Avoid logging sensitive query data
5. **Rate Limiting**: Implement rate limiting to prevent abuse
6. **Firewall Rules**: Restrict DNS traffic to expected ports
7. **Certificate Management**: Use secure certificates for TLS
8. **Audit Logging**: Enable audit logging for compliance
#### Troubleshooting Best Practices
1. **Check Pod Status**: Always verify CoreDNS pod health first
2. **Review Logs**: Check CoreDNS logs for errors
3. **Test Resolution**: Use test pods to verify DNS
4. **Endpoint Verification**: Check service endpoints
5. **Resource Monitoring**: Monitor CPU and memory usage
6. **Config Validation**: Validate Corefile syntax
7. **Network Policies**: Verify network policies aren't blocking
8. **Service Verification**: Ensure kube-dns service is running
**Cause:** CoreDNS not properly configured or pods not ready
**Solution:**
```bash
# Check CoreDNS pods status
kubectl -n kube-system get pods -l k8s-app=kube-dns
# Check endpoints
kubectl -n kube-system get endpoints kube-dns
# Restart CoreDNS
kubectl -n kube-system rollout restart deployment coredns
# Check DNS pod logs
kubectl -n kube-system logs -l k8s-app=kube-dns
```
### High DNS query latency
**Cause:** Cache misconfiguration or upstream DNS issues
**Solution:**
```bash
# Increase cache size
# In Corefile, increase cache TTL
cache 3600
# Check upstream DNS
# Test direct query
nslookup kubernetes.default.svc.cluster.local 10.96.0.10
# Monitor cache hit ratio
kubectl -n kube-system exec <coredns-pod> -- curl localhost:9153/metrics | grep dns_cache_hits_total
```
### DNS loop detected
**Cause:** Incorrect CoreDNS configuration causing infinite loops
**Solution:**
```bash
# Remove loop detection (if false positive)
# Add 'loop off' to Corefile
.:53 {
errors
health
kubernetes cluster.local in-addr.arpa ip6.arpa
forward . /etc/resolv.conf
loop off # Disable loop detection
cache 30
reload
}
# Or fix configuration to prevent actual loops
```
### External DNS resolution failing
**Cause:** Upstream DNS server issues or network policies
**Solution:**
```bash
# Check upstream DNS
kubectl -n kube-system exec -it <pod> -- nslookup google.com 8.8.8.8
# Configure specific upstream servers
forward . 8.8.8.8 1.1.1.1
# Check network policies
kubectl get networkpolicies --all-namespaces
# Test DNS from cluster
kubectl run -it --rm --image=busybox debug -- nslookup google.com
```
### CoreDNS crashes with OOM
**Cause:** Insufficient memory allocation
**Solution:**
```bash
# Increase memory limit in deployment
kubectl -n kube-system set resources deployment coredns --limits=memory=256Mi --requests=memory=128Mi
# Reduce cache size
cache 1800
# Limit concurrent queries
forward . /etc/resolv.conf {
max_concurrent 500
}
```
*Content generated automatically. Verify against official documentation before production use.*
## Troubleshooting
### DNS queries returning NXDOMAIN for valid services
**Cause:** Kubernetes service not found, CoreDNS not watching correct namespace, or service endpoint missing
**Solution:** Verify service exists with `kubectl get svc`, check CoreDNS logs, and ensure endpoints exist for the service.
### DNS resolution timing out
**Cause:** Upstream DNS servers unreachable, CoreDNS not responding, or network issues between pods and CoreDNS
**Solution:** Test CoreDNS connectivity from pod, verify upstream DNS servers are reachable, and check network policies allowing DNS traffic.
### Incorrect DNS responses or stale data
**Cause:** Cache misconfiguration, CoreDNS not reloading configuration, or upstream DNS returning wrong data
**Solution:** Adjust cache TTL settings, force CoreDNS reload, and verify upstream DNS server responses.
### CoreDNS pods crashing or restarting
**Cause:** Configuration errors, resource constraints, or file descriptor limits
**Solution:** Validate Corefile syntax, check pod logs for errors, increase resource limits, and raise file descriptor limits.
### Service discovery not working for external domains
**Cause:** Forward plugin not configured, upstream DNS blocking requests, or firewall rules blocking DNS
**Solution:** Configure forward plugin for external domains, verify upstream DNS configuration, and ensure network allows DNS queries.
---
## When to Use
Use this skill when:
- **Integrating a CNCF project into Kubernetes infrastructure** — You need to configure, deploy, or troubleshoot a cloud-native tool within a cluster
- **Designing cloud-native architecture** — You are selecting and integrating CNCF tools to solve specific infrastructure challenges
- **Resolving operational issues** — A CNCF component is misbehaving, underperforming, or needs configuration changes
---
## Core Workflow
1. **Assess Requirements** — Understand the use case, scale, integration needs, and existing infrastructure. **Checkpoint:** Document requirements, constraints, and success criteria.
2. **Design Architecture** — Plan component interactions, data flow, and deployment strategy using cloud-native best practices. **Checkpoint:** Verify the architecture addresses all requirements and follows CNCF conventions.
3. **Implement & Configure** — Create manifests, configurations, and deployment scripts. Include resource limits, health checks, and observability hooks. **Checkpoint:** Validate all YAML against schema and test in a staging environment.
4. **Deploy & Monitor** — Apply manifests to the cluster, verify component health, and confirm observability is working. **Checkpoint:** Confirm all pods/services are running, probes passing, and metrics/alerts configured.
---
## Constraints
### MUST DO
- Include at least one complete working YAML manifest example
- Note when content is auto-generated vs. manually verified
- Reference relevant CNCF project documentation
### MUST NOT DO
- Deploy manifests without testing in a staging environment first
- Use deprecated API versions (e.g., apps/v1beta1)
- Omit resource limits and requests in Kubernetes manifests
---
## Live References
> **These links are resolved at load time** — content is fetched and inlined to provide the latest documentation.
- [CoreDNS Documentation](https://coredns.io/manual/)
- [CoreDNS Plugins](https://coredns.io/plugins/)
- [CoreDNS Corefile Reference](https://coredns.io/manual/toc/#configuration)
- [CoreDNS Kubernetes Plugin](https://coredns.io/plugins/kubernetes/)
- [CoreDNS Cache Plugin](https://coredns.io/plugins/cache/)
- [CoreDNS Forward Plugin](https://coredns.io/plugins/forward/)
Attribution
Comments
Loading comments…