AWS re:Postを使用することにより、以下に同意したことになります AWS re:Post 利用規約

Amazon EKS クラスターで CoreDNS を使用して条件付きフォワーダーを設定する方法を教えてください。

所要時間2分
0

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

簡単な説明

CoreDNS を使用して、カスタマイズされた DNS サーバーが解決するドメインへ送信される、DNS クエリの条件付きフォワーダーを設定します。詳細については、Kubernetes ウェブサイトの「Customizing DNS service」を参照してください。

重要: 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 アドオンに変更を加えるには、次の手順を実行します。

  1. Amazon EKS コンソールを開きます。

  2. ナビゲーションペインで、[クラスター] を選択します。

  3. クラスターの名前を選択します。

  4. [アドオン] タブを選択します。

  5. CoreDNS アドオンを選択し、[編集] を選択します。

  6. 編集ページで、[オプションの設定] セクションを選択します。[設定値] セクションで、カスタム 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 を自身のドメイン名に置き換えてください。

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ