CoreDNS を使用して Amazon EKS クラスターにある条件付きフォワーダーを設定するにはどうすればよいですか?

最終更新日: 2021 年 9 月 13 日

Amazon Elastic Kubernetes Service (Amazon EKS) クラスターで、条件付きフォワーダーを CoreDNS を使用して設定したいと考えています。

簡単な説明

CoreDNS を使用すると、カスタマイズされた DNS サーバーによって解決されるドメインに送信される DNS クエリのために条件付き転送を設定できます。詳細については、Kubernetes ウェブサイトで Customizing DNS Service を参照してください。

重要: 次の解決方法の変更は、セルフマネージド 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 はご自身のドメイン名に置き換えます。


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?