如何在我的 Amazon EKS 叢集中使用 CoreDNS 設定條件式轉送?

1 分的閱讀內容
0

我想要在我的 Amazon Elastic Kubernetes Service (Amazon EKS) 叢集中使用 CoreDNS 設定條件式轉送。

簡短說明

您可以使用 CoreDNS 設定條件式轉送,讓自訂 DNS 伺服器解決傳送至網域的 DNS 查詢。如需詳細資訊,請參閱 Kubernetes 網站的自訂 DNS 服務

**重要事項:**請只將下列解決方法中的修改套用到自我管理的 CoreDNS。如要對 CoreDNS Amazon EKS 附加元件的組態進行變更,請檢查 Amazon EKS 附加元件組態以確定 Amazon EKS 管理的設定。請先檢查附加元件組態,再進行任何變更,因為修改由 Amazon EKS 管理的欄位會造成 Amazon EKS 無法管理附加元件。這會導致附加元件更新時覆寫您的變更。

解決方法

1.    修改 CoreDNS ConfigMap 並新增條件式轉送組態:

$ 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 地址。

2.    確認網域名稱解決方法可正常運作:

$ kubectl run busybox --restart=Never --image=busybox:1.28 -- sleep 3600
$ kubectl exec busybox -- nslookup domain-name

**注意:**將 domain-name 替換為您的網域名稱。


AWS 官方
AWS 官方已更新 2 年前