問題: DNS 配置沒有版本控制,手動修改易遺失 架構: - k8s/k3s-system/coredns-custom.yaml: HelmChartConfig - CD workflow: k3s-system 路徑偵測 + 自動 apply - ADR-026: CoreDNS GitOps 管控架構 DNS 上游: - 使用 8.8.8.8 + 1.1.1.1 - 禁止 /etc/resolv.conf (systemd-resolved) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
86 lines
2.2 KiB
YAML
86 lines
2.2 KiB
YAML
# =============================================================================
|
|
# 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
|