Tous les produits
Search
Centre de documentation

Container Compute Service:Use unmanaged CoreDNS in an ACS cluster

Dernière mise à jour :Aug 12, 2026

Dans certains scénarios spécifiques, les exigences métier fortement personnalisées imposent une gestion et une maintenance manuelles de CoreDNS. Les clusters Alibaba Cloud Container Compute Service (ACS) prennent en charge CoreDNS non managé, ce qui permet d'appliquer des configurations CoreDNS personnalisées. Cette rubrique explique comment utiliser le plug-in CoreDNS non managé dans un cluster ACS.

Prérequis

  • Un cluster ACS est créé. Pour plus d'informations, consultez Créer un cluster ACS. Si le plug-in CoreDNS est déjà installé dans le cluster ACS, désinstallez le plug-in CoreDNS managé en suivant la procédure d'installation décrite dans cette rubrique.

  • Lors de la création d'un nouveau cluster, accédez à Component Configurations > Service Discovery et sélectionnez Disable.

Important
  • Le plug-in CoreDNS non managé est un plug-in standard open source. Vous assumez la responsabilité des coûts de ressources ainsi que des opérations et de la maintenance (O&M) du plug-in. Il vous incombe également de résoudre les problèmes susceptibles de survenir lors de l'utilisation du plug-in CoreDNS.

  • Par défaut, le modèle de plug-in fourni par ACS utilise un mécanisme d'anti-affinité pour répartir les pods entre les zones. Si vous avez configuré une seule zone pour votre cluster ACS, un seul réplica de CoreDNS peut s'exécuter correctement. Nous vous recommandons de configurer plusieurs zones afin de garantir la reprise après sinistre et la disponibilité du service.

Procédure d'installation

  1. Connectez-vous à la console ACS. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom du cluster cible. Dans le volet de navigation de gauche, cliquez sur Add-ons.

  3. (Facultatif) Sous l'onglet Networking, localisez CoreDNS (portant le libellé Managed) et cliquez sur Uninstall. Si CoreDNS (Managed) n'apparaît pas dans la liste des composants, ignorez cette étape.

    Avertissement

    La désinstallation de CoreDNS (Managed) rend indisponible la fonctionnalité de résolution DNS (Domain Name System) du cluster. Avant de procéder à cette désinstallation, assurez-vous qu'aucun trafic métier ne transite par le cluster.

  4. Toujours sous l'onglet Networking, recherchez CoreDNS (sans le libellé Managed) puis cliquez sur Install.

  5. Configurez les paramètres selon vos besoins. Une fois les paramètres validés, cliquez sur OK pour installer le composant.

    Important

    Si le paramètre CpuRequest n'est pas défini lors de l'installation, le pod correspondant dans le cluster ACS ne disposera que de 250m de ressources CPU. Afin d'éviter des dysfonctionnements du cluster dus à une charge excessive sur le pod, il est recommandé de définir une valeur appropriée pour CpuRequest.

    Le formulaire de configuration comprend les paramètres suivants : MemoryRequest (par défaut : 100Mi), CpuRequest (par défaut : 100m), MemoryLimit (par défaut : 2Gi) et CpuLimit (par défaut : vide). Pour NodeSelector, la clé par défaut est kubernetes.io/os et la valeur est linux. Le champ Tolerations est vide par défaut et peut être configuré selon vos besoins.

  6. Connectez-vous au cluster via kubectl et exécutez la commande suivante pour interroger les pods :

    kubectl get po -n kube-system|grep coredns

    Sortie attendue :

    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

    Le démarrage du pod CoreDNS confirme que le plug-in CoreDNS non managé est bien installé.

  7. Exécutez la commande suivante depuis un pod du cluster ACS afin de vérifier le bon fonctionnement de la résolution DNS :

    nslookup kubernetes

    Sortie attendue :

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

    Cette sortie indique que la résolution de noms de domaine fonctionne correctement et que CoreDNS s'exécute comme prévu.

Configurations CoreDNS personnalisées

Il est possible de personnaliser CoreDNS en modifiant la configuration Corefile, stockée sous forme de ConfigMap dans le cluster ACS. Modifiez directement ce fichier Corefile pour ajuster le comportement de CoreDNS. Exemple :

  1. Exécutez la commande suivante pour modifier la configuration Corefile de CoreDNS :

    kubectl -n kube-system edit cm coredns
  2. Modifiez la configuration Corefile de CoreDNS en vous basant sur le contenu suivant :

    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 {
          # Change the forward DNS server from the default in resolv.conf to 192.168.1.10.
          forward . 192.168.1.10 {
            prefer_udp
          }
          cache 30
          log
          loop
          reload
          loadbalance
      }

    Suite à cette modification, CoreDNS transfère automatiquement les requêtes pour les noms de domaine externes au cluster vers le serveur DNS dont l'adresse IP est 192.168.1.10. Adaptez cette adresse IP à celle de votre serveur DNS selon vos besoins métier.

Références