# ============================================================================= # K3s CoreDNS 自訂配置 (GitOps 版本控制) # ============================================================================= # 負責人: CIO # 版本: v1.0 # 日期: 2026-03-26 (台北時區) # # 原則: # - 使用 K3s 原生 HelmChartConfig (不與 K3s Helm Controller 衝突) # - 禁止使用宿主機 systemd-resolved (127.0.0.53) # - 上游 DNS: Google (8.8.8.8) + Cloudflare (1.1.1.1) # # 部署方式: # CD Pipeline 會將此檔案 SCP 到 K3s Master: # /var/lib/rancher/k3s/server/manifests/coredns-custom.yaml # K3s 會自動偵測並 Apply # # 變更紀錄: # - v1.0 (2026-03-26): 初始版本,修復 DNS 解析問題 (ADR-011 Appendix B) # ============================================================================= apiVersion: helm.cattle.io/v1 kind: HelmChartConfig metadata: name: coredns namespace: kube-system spec: valuesContent: |- # CoreDNS 伺服器配置 servers: - zones: - zone: . port: 53 plugins: # 錯誤日誌 - name: errors # 健康檢查端點 (/health) - name: health configBlock: |- lameduck 5s # 就緒檢查端點 (/ready) - name: ready # Kubernetes 內部 DNS 解析 - name: kubernetes parameters: cluster.local in-addr.arpa ip6.arpa configBlock: |- pods insecure fallthrough in-addr.arpa ip6.arpa ttl 30 # 上游 DNS 伺服器 (禁止使用 /etc/resolv.conf) # 🔴 重要: 不使用宿主機 systemd-resolved (127.0.0.53) - name: forward parameters: . 8.8.8.8 1.1.1.1 # DNS 快取 (30 秒) - name: cache parameters: 30 # 偵測 DNS 迴圈 - name: loop # 熱重載配置 - name: reload # 負載平衡 (多個 Pod 回應) - name: loadbalance # 資源限制 resources: limits: cpu: 100m memory: 128Mi requests: cpu: 50m memory: 64Mi # 自動水平擴展 autoscaler: enabled: true min: 1 max: 3