すべてのプロダクト
Search
ドキュメントセンター

Container Compute Service:ACS クラスターでのアンマネージド CoreDNS の使用

最終更新日:Jun 21, 2026

ビジネス要件の高度なカスタマイズに対応するため、特定のシナリオでは CoreDNS を手動で管理・保守する必要があります。Container Compute Service (ACS) クラスターは、アンマネージド CoreDNS をサポートしています。これにより、カスタムの CoreDNS 設定を構成できます。このトピックでは、ACS クラスターでアンマネージド CoreDNS プラグインを使用する方法について説明します。

前提条件

  • ACS クラスターが作成されていること。詳細については、「ACS クラスターの作成」をご参照ください。ACS クラスターに CoreDNS プラグインがインストールされている場合は、このトピックで説明するインストール手順に従って、マネージド CoreDNS プラグインをアンインストールしてください。

  • 新しいクラスターを作成する際、コンポーネント設定 > サービスディスカバリー に移動し、無効化 を選択してください。

重要
  • アンマネージド CoreDNS プラグインは、オープンソースの標準プラグインです。このプラグインのリソースコストと運用保守 (O&M) は、お客様の負担となります。CoreDNS プラグインの使用中に発生する可能性のある問題は、お客様にて解決する必要があります。

  • デフォルトでは、ACS が提供するプラグインテンプレートは、アンチアフィニティメカニズムを使用して、複数のゾーンに Pod を分散させます。ACS に単一のゾーンを設定した場合、CoreDNS のレプリカは 1 つしか正常に実行できません。災害復旧と可用性を確保するために、複数のゾーンを設定することを推奨します。

インストール手順

  1. ACS コンソール にログインします。左側のナビゲーションペインで、クラスター をクリックします。

  2. クラスター ページで、管理するクラスターを見つけ、その ID をクリックします。クラスター詳細ページの左側のナビゲーションペインで、操作 > アドオン を選択します。

  3. (オプション) ネットワーク タブで CoreDNS (Managed ラベル付き) を見つけ、[Uninstall] をクリックします。コンポーネントリストに CoreDNS (Managed) が表示されない場合は、この手順をスキップしてください。

    警告

    CoreDNS (Managed) をアンインストールすると、クラスターのドメインネームシステム (DNS) 名前解決機能が利用できなくなります。CoreDNS (Managed) をアンインストールする前に、クラスター内にビジネストラフィックが存在しないことを確認してください。

  4. ネットワーク タブで、CoreDNS (Managed ラベルなし) を見つけ、インストール をクリックします。

  5. 要件に基づいてパラメーターを設定します。設定を確認したら、[OK] をクリックしてコンポーネントをインストールします。

    重要

    インストール時に CpuRequest パラメーターを設定しない場合、ACS クラスター内の対応する Pod で使用可能な CPU リソースは 250 m のみになります。Pod への過剰な負荷によるクラスターの異常を避けるため、CpuRequest に適切な値を設定することを推奨します。

    設定フォームには、MemoryRequest (デフォルト: 100Mi)、CpuRequest (デフォルト: 100m)、MemoryLimit (デフォルト: 2Gi)、CpuLimit (デフォルト: 空) などのパラメーターが含まれます。NodeSelector の場合、デフォルトのキーは kubernetes.io/os で、値は linux です。Tolerations はデフォルトで空であり、必要に応じて設定できます。

  6. kubectl を使用してクラスターに接続し、次のコマンドを実行して Pod を照会します:

    kubectl get po -n kube-system|grep coredns

    予想される出力:

    NAMESPACE     NAME                       READY   STATUS    RESTARTS   AGE
    kube-system   coredns-85dc775876-sh558   1/1     Running   0          3m35s
    kube-system   coredns-85dc775876-xzcpp   1/1     Running   0          3m35s

    CoreDNS Pod が起動しています。これは、アンマネージド CoreDNS プラグインがインストールされたことを示します。

  7. ACS クラスター内の Pod で次のコマンドを実行し、クラスターの DNS 名前解決機能が正常に動作するかどうかを確認します:

    nslookup kubernetes

    予想される出力:

    Server:         10.0.0.10
    Address:        10.0.0.10#53
    Name:   kubernetes.default.svc.cluster.local
    Address: 10.0.0.1

    この出力は、ドメイン名解決が成功し、CoreDNS が正常に実行されていることを示します。

CoreDNS のカスタム設定

Corefile の設定を変更することで、CoreDNS のカスタム設定を構成できます。Corefile の設定は、ConfigMap として ACS クラスターに保存されます。Corefile の設定を直接変更することで、CoreDNS の設定を変更できます。例:

  1. 次のコマンドを実行して、CoreDNS の Corefile 設定を変更します:

    kubectl -n kube-system edit cm coredns
  2. 次の内容に基づいて CoreDNS の Corefile 設定を変更します:

    Corefile: |
      .:53 {
          errors
          health {
             lameduck 15s
          }
          ready
          kubeapi
          k8s_event {
            level info error warning
          }
          kubernetes cluster.local in-addr.arpa ip6.arpa {
            pods verified
            ttl 30
            fallthrough in-addr.arpa ip6.arpa
          }
          prometheus :9153
          # forward . /etc/resolv.conf {
          # forward DNS サーバーを resolv.conf のデフォルトから 192.168.1.10 に変更します。
          forward . 192.168.1.10 {
            prefer_udp
          }
          cache 30
          log
          loop
          reload
          loadbalance
      }

    変更後、CoreDNS はクラスター外のドメイン名を、IP アドレスが 192.168.1.10 の DNS サーバーに自動的にフォワードします。ビジネス要件に基づいて、DNS サーバーの IP アドレスを変更できます。

関連ドキュメント