我想要在我的 Amazon Elastic Kubernetes Service (Amazon EKS) 叢集中使用 CoreDNS 設定條件式轉送。
簡短描述
使用 CoreDNS,針對傳送至自訂 DNS 伺服器解析的網域的 DNS 查詢設定條件式轉寄站。如需詳細資訊,請參閱 Kubernetes 網站的自訂 DNS 服務。
**重要:**在對 CoreDNS Amazon EKS 附加元件進行組態變更之前,您必須確定 Amazon EKS 管理的設定。您可以在 Amazon EKS 附加元件組態中找到此資訊。在您修改 Amazon EKS 管理的欄位時,Amazon EKS 無法管理附加元件。更新附加元件時,Amazon EKS 可能會覆寫您的變更。
解決方法
下列解決方法適用於 CoreDNS 自我管理和 Amazon EKS 附加元件組態。
設定自我管理的附加元件
執行下列命令以修改 CoreDNS ConfigMap,並新增自訂 DNS 條件式轉寄站組態:
$ kubectl -n kube-system edit configmap coredns
輸出類似於下列內容:
apiVersion: v1
kind: ConfigMap
metadata:
annotations:
labels:
eks.amazonaws.com/component: coredns
k8s-app: kube-dns
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 . /etc/resolv.conf
cache 30
loop
reload
loadbalance
}
domain-name:53 {
errors
cache 30
forward . custom-dns-server
reload
}
**注意:**將 domain-name 取代為您的網域名稱,將 custom-dns-server 取代為您的自訂 DNS 伺服器 IP 位址。
設定 Amazon EKS 附加元件
若要對 Amazon EKS 受管 CoreDNS 附加元件進行變更,請完成下列步驟:
-
開啟 Amazon EKS 主控台。
-
在導覽窗格中,選擇叢集。
-
選擇您的叢集名稱。
-
選擇附加元件標籤。
-
選取 CoreDNS 附加元件,然後選擇編輯。
-
在編輯頁面上,選擇選用組態設定區段。在組態值區段中,新增自訂 DNS 條件式轉寄站組態:
corefile: |
.:53 {
errors
health
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
}
prometheus :9153
forward . /etc/resolv.conf
cache 30
loop
reload
loadbalance
}
domain-name:53 {
errors
cache 30
forward . custom-dns-server
reload
}
**注意:**將 domain-name 取代為您的網域名稱,將 custom-dns-server 取代為您的自訂 DNS 伺服器 IP 位址。
驗證網域名稱解析
若要驗證網域名稱解析是否有效,請執行下列命令:
$ kubectl run busybox --restart=Never --image=busybox:1.28 -- sleep 3600
$ kubectl exec busybox -- nslookup domain-name
**注意:**將 domain-name 替換為您的網域名稱。