Utiliser Cloud DNS pour GKE

Ce document explique comment configurer et utiliser Cloud DNS en tant que fournisseur DNS pour vos clusters Google Kubernetes Engine (GKE).

Cloud DNS gère automatiquement les enregistrements DNS de vos services Kubernetes. Par défaut, ces enregistrements ne sont accessibles qu'à partir de votre cluster (portée du cluster).

Si vous devez résoudre des services sans adresse IP de cluster depuis l'extérieur de votre cluster, par exemple à partir de VM Compute Engine, vous devez activer le champ d'application VPC ou le champ d'application VPC additif.

Ce document s'adresse aux utilisateurs de GKE, y compris les développeurs, les administrateurs et les architectes. Pour en savoir plus sur les rôles courants et les exemples de tâches dans Google Cloud, consultez Rôles utilisateur et tâches courantes de l'utilisateur dans GKE Enterprise.

Pour tirer pleinement parti de ce document, vous devez maîtriser les points suivants :

Pour rendre les services ClusterIP ou NodePort accessibles depuis l'extérieur du cluster, vous devez exposer le service à l'aide d'un LoadBalancer ou d'une autre méthode, et enregistrer son adresse IP externe dans Cloud DNS.

Pour en savoir plus sur l'utilisation de kube-dns en tant que fournisseur DNS, consultez Découverte des services et DNS.

Pour apprendre à utiliser une version personnalisée de kube-dns ou un fournisseur DNS personnalisé, consultez la page Configurer un déploiement kube-dns personnalisé.

Tarifs

Lorsque Cloud DNS est le fournisseur DNS pour les clusters GKE Standard, les requêtes DNS des pods du cluster GKE sont facturées selon la tarification Cloud DNS.

Les requêtes adressées à une zone DNS à l'échelle d'un VPC gérée par GKE sont facturées selon la tarification Cloud DNS standard.

Restrictions et limitations

Les limites suivantes s'appliquent :

  • Le champ d'application à l'échelle du VPC n'est pas compatible avec les clusters Autopilot. Seul le champ d'application à l'échelle du cluster est compatible. Si vous devez résoudre les noms de services sans adresse IP de cluster exécutés dans des clusters GKE Autopilot, vous devez utiliser le champ d'application additif à l'échelle du VPC.
  • Vous ne pouvez activer le champ d'application VPC additif pour les clusters GKE Autopilot qu'au moment de la création du cluster. L'activation ou la désactivation du champ d'application VPC additif dans les clusters GKE Autopilot existants n'est pas prise en charge.
  • Il n'est pas possible de créer des clusters avec un champ d'application VPC additif dans les projets de service des réseaux VPC partagés.
  • Cloud DNS pour GKE n'est pas disponible pour Assured Workloads avec un régime de conformité IL4. kube-dns est forcé dans ces environnements réglementés.
  • Les modifications manuelles des zones DNS privées gérées ne sont pas acceptées et sont écrasées par le contrôleur Cloud DNS. Les modifications apportées aux enregistrements DNS dans ces zones ne persistent pas lorsque le contrôleur redémarre.
  • Une fois que vous avez activé Cloud DNS pour GKE dans un cluster, kube-dns continue de s'exécuter dans le cluster. Vous pouvez désactiver kube-dns en redimensionnant le déploiement et l'autoscaler kube-dns à zéro.
  • Vous ne pouvez pas modifier le champ d'application DNS dans un cluster après l'avoir défini avec l'option --cluster-dns-scope. Si vous devez modifier le champ d'application DNS, vous devez recréer le cluster avec un champ d'application DNS différent.
  • Les limites des ressources Cloud DNS s'appliquent. En particulier, au maximum une zone de stratégie de réponse peut être associée à un réseau VPC à la fois. Pour les scopes VPC et VPC additif, la création du cluster échoue s'il existe déjà une zone de règles de réponse qui ne respecte pas la convention d'attribution de noms liée au réseau VPC du cluster.
  • Les domaines de simulation personnalisés et les configurations de serveur DNS en amont s'appliquent aux configurations DNS des pods et des nœuds. Les pods qui utilisent la mise en réseau hôte ou les processus qui s'exécutent directement sur l'hôte utilisent également le domaine de simulation et les configurations de serveur de noms en amont. Ce comportement n'est disponible que dans l'édition Standard.
  • Les domaines de simulation personnalisés et les serveurs de noms en amont configurés via ConfigMap kube-dns sont automatiquement appliqués à Cloud DNS pour le DNS à l'échelle du cluster. Le DNS à l'échelle du VPC ignore le fichier ConfigMap kube-dns et vous devez appliquer ces configurations directement sur Cloud DNS. Ce comportement n'est disponible que dans l'édition Standard.
  • La migration de kube-dns vers le champ d'application d'un VPC est une opération perturbatrice. Recréez le cluster lorsque vous passez de kube-dns à un champ d'application VPC, ou inversement.
  • Pour le champ d'application à l'échelle du VPC, la plage d'adresses IP secondaire utilisée par les services ne doit pas être partagée avec d'autres clusters de ce sous-réseau.
  • Pour le champ d'application à l'échelle du VPC, la stratégie de réponse associée à un enregistrement PTR est associée au réseau VPC. Si d'autres stratégies de réponse sont liées au réseau du cluster, la résolution des enregistrements PTR pour les adresses IP du service Kubernetes échoue.
  • Si vous essayez de créer un service sans adresse IP de cluster avec un nombre de pods dépassant le quota autorisé, Cloud DNS ne crée pas de jeux d'enregistrements ni d'enregistrements pour le service.
  • Les noms de service et de port sont limités à 62 caractères, même si les libellés DNS sont limités à 63 caractères. Ce comportement est dû au fait que GKE ajoute un préfixe de soulignement aux enregistrements DNS.

Avant de commencer

Avant de commencer, effectuez les tâches suivantes :

  • Activez l'API Google Kubernetes Engine.
  • Activer l'API Google Kubernetes Engine
  • Si vous souhaitez utiliser Google Cloud CLI pour cette tâche, installez puis initialisez la gcloud CLI. Si vous avez déjà installé la gcloud CLI, obtenez la dernière version en exécutant la commande gcloud components update. Il est possible que les versions antérieures de la gcloud CLI ne permettent pas d'exécuter les commandes de ce document.
  • Activez l'API Cloud DNS dans votre projet.

    Activer l'API Cloud DNS

  • Pour utiliser Cloud DNS dans le champ d'application du cluster, vous devez disposer de l'une des versions suivantes :

    • Pour l'environnement standard : GKE version 1.24.7-gke.800 ou 1.25.3-gke.700, ou ultérieure.
    • Pour Autopilot : GKE version 1.25.9-gke.400 ou 1.26.4-gke.500, ou version ultérieure.
    • Google Cloud CLI version 411.0.0 ou ultérieure.
  • Pour utiliser Cloud DNS dans un champ d'application additif à l'échelle du VPC, vous devez disposer de l'une des versions suivantes :

    • GKE version 1.28.3-gke.1430000 ou ultérieure.
    • Google Cloud CLI version 503.0.0 ou ultérieure.

Activer le DNS à l'échelle du cluster

Dans le DNS à l'échelle d'un cluster, seuls les nœuds exécutés dans le cluster GKE peuvent résoudre les noms de service, et ces noms ne créent pas de conflit entre les clusters. Ce comportement est identique à celui de kube-dns dans les clusters GKE, ce qui signifie que vous pouvez migrer des clusters kube-dns vers un champ d'application de cluster Cloud DNS sans temps d'arrêt ni modifications de vos applications.

Le schéma suivant montre comment Cloud DNS crée une zone DNS privée pour un cluster GKE. Seuls les processus et les pods exécutés sur les nœuds du cluster peuvent résoudre les enregistrements DNS du cluster, car seuls les nœuds sont dans le champ d'application DNS.

Pods sur différents nœuds résolvant des services dans le cluster GKE.
Schéma : DNS à l'échelle du cluster

Activer le champ d'application du cluster dans un nouveau cluster

Les nouveaux clusters Autopilot dans les versions 1.25.9-gke.400, 1.26.4-gke.500 ou ultérieures utilisent par défaut le champ d'application de cluster Cloud DNS. La section suivante explique comment activer le champ d'application du cluster dans un nouveau cluster Standard.

Créer un cluster standard avec le champ d'application du cluster activé

Vous pouvez créer un cluster GKE Standard avec le champ d'application de cluster Cloud DNS activé à l'aide de gcloud CLI ou de la console Google Cloud  :

gcloud

Créez un cluster à l'aide de l'option --cluster-dns :

gcloud container clusters create CLUSTER_NAME \
    --cluster-dns=clouddns \
    --cluster-dns-scope=cluster \
    --location=COMPUTE_LOCATION

Remplacez les éléments suivants :

L'option --cluster-dns-scope=cluster est facultative dans la commande, car cluster est la valeur par défaut.

Console

  1. Dans la console Google Cloud , accédez à la page Créer un cluster Kubernetes.

    Accéder à la page "Créer un cluster Kubernetes"

  2. Dans le volet de navigation, cliquez sur Réseau sous Cluster.

  3. Dans la section Fournisseur DNS, cliquez sur Cloud DNS.

  4. Sélectionnez Champ d'application du cluster.

  5. Configurez le cluster selon vos besoins.

  6. Cliquez sur Créer.

Activer le champ d'application du cluster dans un cluster existant

La migration d'un cluster Autopilot existant de kube-dns vers le champ d'application de cluster Cloud DNS n'est pas possible. Pour activer le champ d'application à l'échelle du cluster Cloud DNS, recréez les clusters Autopilot dans les versions 1.25.9-gke.400, 1.26.4-gke.500 ou ultérieures de GKE.

Vous pouvez migrer un cluster Standard existant de kube-dns vers le champ d'application de cluster Cloud DNS à l'aide de gcloud CLI ou de la consoleGoogle Cloud .

Lorsque vous migrez un cluster existant de kube-dns vers Cloud DNS, vous devez recréer les nœuds pour que la modification prenne effet. Migrez les clusters qui exécutent des applications sans interrompre la communication des clusters en activant Cloud DNS en tant que fournisseur DNS dans chaque pool de nœuds séparément. Un sous-ensemble de nœuds est opérationnel en permanence, car certains pools de nœuds utilisent kube-dns et d'autres utilisent Cloud DNS.

gcloud

  1. Mettez à jour le cluster existant :

    gcloud container clusters update CLUSTER_NAME \
        --cluster-dns=clouddns \
        --cluster-dns-scope=cluster \
        --location=COMPUTE_LOCATION
    

    Remplacez l'élément suivant :

    L'option --cluster-dns-scope=cluster est facultative dans la commande, car cluster est la valeur par défaut.

    La réponse est semblable à ce qui suit :

    All the node-pools in the cluster need to be re-created by the user to start using Cloud DNS for DNS lookups. It is highly recommended to complete this step
    shortly after enabling Cloud DNS.
    Do you want to continue (Y/n)?
    

    Une fois la confirmation effectuée, le contrôleur Cloud DNS s'exécute sur le plan de contrôle GKE. Toutefois, vos pods n'utilisent pas Cloud DNS pour la résolution DNS tant que vous n'avez pas mis à niveau votre pool de nœuds ou ajouté de nouveaux pools de nœuds au cluster.

  2. Mettez à niveau les pools de nœuds du cluster pour qu'ils utilisent Cloud DNS :

    gcloud container clusters upgrade CLUSTER_NAME \
        --node-pool=POOL_NAME \
        --location=COMPUTE_LOCATION
    

    Remplacez les éléments suivants :

    • CLUSTER_NAME : nom du cluster.
    • POOL_NAME : nom du pool de nœuds à mettre à niveau.

    Si le pool de nœuds et le plan de contrôle exécutent la même version, mettez d'abord le plan de contrôle à jour, comme décrit dans la section Mettre à jour manuellement le plan de contrôle. Effectuez ensuite la mise à niveau du pool de nœuds.

    Confirmez la réponse et répétez cette commande pour chaque pool de nœuds du cluster. Si votre cluster ne comporte qu'un seul pool de nœuds, omettez l'option --node-pool.

Console

  1. Accédez à la page Google Kubernetes Engine dans la console Google Cloud .

    Accéder à Google Kubernetes Engine

  2. Cliquez sur le nom du cluster que vous souhaitez modifier.

  3. Sous Mise en réseau, dans le champ Fournisseur DNS, cliquez sur Modifier le fournisseur DNS.

  4. Cliquez sur Cloud DNS.

  5. Cliquez sur Champ d'application du cluster.

  6. Cliquez sur Enregistrer les modifications.

Activer le champ d'application VPC additif

Cette section décrit la procédure à suivre pour activer ou désactiver le champ d'application additif à l'échelle du VPC en tant que module complémentaire au champ d'application de cluster Cloud DNS.

Activer le champ d'application additif à l'échelle du VPC dans un nouveau cluster

Vous pouvez activer le DNS à l'échelle du VPC additif dans un nouveau cluster GKE à l'aide de la gcloud CLI ou de la console Google Cloud .

Créer un cluster Autopilot avec un champ d'application VPC additif

gcloud container clusters create-auto CLUSTER_NAME \
    --additive-vpc-scope-dns-domain=UNIQUE_CLUSTER_DOMAIN

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom du cluster.
  • UNIQUE_CLUSTER_DOMAIN : nom d'un domaine. Vous devez vous assurer que ce nom est unique au sein du VPC, car GKE ne confirme pas cette valeur. Vous ne pourrez pas modifier cette valeur une fois qu'elle aura été définie. Vous ne devez pas utiliser un domaine se terminant par .local sous peine de rencontrer des échecs de résolution DNS.

Créer un cluster Standard avec un champ d'application VPC additif

gcloud container clusters create CLUSTER_NAME \
    --cluster-dns=clouddns \
    --cluster-dns-scope=cluster \
    --additive-vpc-scope-dns-domain=UNIQUE_CLUSTER_DOMAIN

L'option --cluster-dns-scope=cluster est facultative, car cluster est la valeur par défaut.

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom du cluster.
  • UNIQUE_CLUSTER_DOMAIN : nom d'un domaine. Vous devez vous assurer que ce nom est unique au sein du VPC, car GKE ne confirme pas cette valeur. Vous ne pourrez pas modifier cette valeur une fois qu'elle aura été définie. Vous ne devez pas utiliser un domaine se terminant par .local sous peine de rencontrer des échecs de résolution DNS.
Dans la console

Activer le champ d'application VPC additif dans un cluster Standard existant

L'activation du champ d'application additif à l'échelle du VPC dans un cluster Autopilot existant n'est pas prise en charge.

Pour activer le champ d'application VPC additif dans un cluster Standard existant, exécutez la commande suivante :

gcloud container clusters update CLUSTER_NAME \
    --additive-vpc-scope-dns-domain=UNIQUE_CLUSTER_DOMAIN \
    --location=COMPUTE_LOCATION

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom du cluster.
  • UNIQUE_CLUSTER_DOMAIN : nom d'un domaine. Vous devez vous assurer que ce nom est unique au sein du VPC, car GKE ne confirme pas cette valeur. Vous ne pouvez pas modifier cette valeur après l'avoir définie. Vous ne devez pas utiliser un domaine se terminant par .local sous peine de rencontrer des échecs de résolution DNS.
  • COMPUTE_LOCATION : emplacement Compute Engine du cluster.

Activer le DNS à l'échelle du VPC

Dans le DNS à l'échelle d'un VPC, les noms DNS d'un cluster peuvent être résolus sur l'ensemble du VPC. Tout client du VPC peut résoudre les enregistrements DNS de cluster.

Le DNS à l'échelle du VPC s'applique aux cas d'utilisation suivants :

  • Découverte des services sans adresse IP de cluster pour les clients non-GKE au sein du même VPC.
  • Résolution de service GKE à partir de clients cloud tiers ou sur site Pour en savoir plus, consultez la page Règle de serveur entrant.
  • Résolution de service dans laquelle un client peut choisir le cluster avec lequel il souhaite communiquer à l'aide du domaine DNS de cluster personnalisé

Dans le schéma suivant, deux clusters GKE utilisent le DNS à l'échelle d'un VPC dans le même VPC. Les deux clusters disposent d'un domaine DNS personnalisé, .cluster1 et .cluster2, au lieu du domaine .cluster.local par défaut. Une VM communique avec le service de backend sans adresse IP de cluster en résolvant backend.default.svc.cluster1. Cloud DNS résout le service sans adresse IP de pod aux adresses IP individuelles du service, et la VM communique directement avec les adresses IP des pods.

Clients résolvant des services sans adresse IP en dehors du cluster GKE.
Schéma : DNS à l'échelle d'un VPC

Vous pouvez également effectuer ce type de résolution à partir d'autres réseaux lorsqu'ils sont connectés au VPC via Cloud Interconnect ou Cloud VPN. Les règles de serveur DNS permettent aux clients des réseaux connectés au VPC de résoudre les noms dans Cloud DNS, y compris les services GKE si le cluster utilise le DNS à l'échelle d'un VPC.

Activer le champ d'application à l'échelle du VPC dans un cluster existant

La migration vers le champ d'application VPC n'est possible que dans Standard, et non dans Autopilot.

Vous pouvez migrer un cluster Standard existant de kube-dns vers le champ d'application de VPC Cloud DNS à l'aide de gcloud CLI ou de la console Google Cloud .

Lorsque vous migrez vers le champ d'application VPC, vous devez recréer les nœuds pour que la modification prenne effet.

gcloud

  1. Mettez à jour le cluster existant :

    gcloud container clusters update CLUSTER_NAME \
        --cluster-dns=clouddns \
        --cluster-dns-scope=vpc \
        --cluster-dns-domain=CUSTOM_DOMAIN \
        --location=COMPUTE_LOCATION
    

    Remplacez l'élément suivant :

    • CLUSTER_NAME : nom du cluster.
    • COMPUTE_LOCATION : emplacement Compute Engine du cluster.
    • CUSTOM_DOMAIN : nom d'un domaine. Vous devez vous assurer que ce nom est unique au sein du VPC, car GKE ne confirme pas cette valeur. Vous ne pouvez pas modifier cette valeur après l'avoir définie. Vous ne devez pas utiliser un domaine se terminant par .local sous peine de rencontrer des échecs de résolution DNS.

    La réponse est semblable à ce qui suit :

    All the node-pools in the cluster need to be re-created by the user to start using Cloud DNS for DNS lookups. It is highly recommended to complete this step
    shortly after enabling Cloud DNS.
    Do you want to continue (Y/n)?
    

    Une fois la confirmation effectuée, le contrôleur Cloud DNS s'exécute sur le plan de contrôle GKE. Vos pods n'utilisent pas Cloud DNS pour la résolution DNS tant que vous n'avez pas mis à niveau votre pool de nœuds ou ajouté de nouveaux pools de nœuds au cluster.

  2. Mettez à niveau les pools de nœuds du cluster pour qu'ils utilisent Cloud DNS :

    gcloud container clusters upgrade CLUSTER_NAME \
        --node-pool=POOL_NAME
    

    Remplacez l'élément suivant :

    • CLUSTER_NAME : nom du cluster.
    • POOL_NAME : nom du pool de nœuds à mettre à niveau.

    Si le pool de nœuds et le plan de contrôle exécutent la même version, mettez d'abord le plan de contrôle à jour, comme décrit dans la section Mettre à jour manuellement le plan de contrôle. Effectuez ensuite la mise à niveau du pool de nœuds.

    Confirmez la réponse et répétez cette commande pour chaque pool de nœuds du cluster. Si votre cluster ne comporte qu'un seul pool de nœuds, omettez l'option --node-pool.

Console

  1. Accédez à la page Google Kubernetes Engine dans la console Google Cloud .

    Accéder à Google Kubernetes Engine

  2. Cliquez sur le nom du cluster que vous souhaitez modifier.

  3. Sous Mise en réseau, dans le champ Fournisseur DNS, cliquez sur Modifier le fournisseur DNS.

  4. Cliquez sur Cloud DNS.

  5. Cliquez sur À l'échelle d'un VPC.

  6. Cliquez sur Enregistrer les modifications.

Vérifier le Cloud DNS

Vérifiez que Cloud DNS pour GKE fonctionne correctement pour votre cluster :

  1. Vérifiez que les nœuds utilisent Cloud DNS en vous connectant à un pod sur un nœud et en exécutant la commande cat /etc/resolv.conf :

    kubectl exec -it POD_NAME -- cat /etc/resolv.conf | grep nameserver
    

    Remplacez POD_NAME par le nom du pod.

    En fonction du mode du cluster, le résultat ressemble à ce qui suit :

    Cluster GKE Autopilot

    nameserver 169.254.20.10
    

    Étant donné que NodeLocal DNSCache est activé par défaut dans GKE Autopilot, le pod utilise NodeLocal DNSCache.

    Si le cache local ne contient aucune entrée pour le nom recherché, NodeLocal DNSCache transfère la requête à Cloud DNS.

    Cluster GKE standard

    nameserver 169.254.169.254
    

    Ce pod exemple utilise 169.254.169.254 comme nameserver, qui est l'adresse IP du serveur de métadonnées sur lequel le plan de données Cloud DNS écoute les requêtes sur le port 53. Les nœuds n'utilisent plus l'adresse du service kube-dns pour la résolution DNS, et toutes les résolutions DNS se produisent sur le nœud local.

    Si le résultat est une adresse IP semblable à 10.x.y.10, le pod utilise kube-dns. Pour comprendre pourquoi votre pod utilise toujours kube-dns, consultez la section Dépannage .

    Si le résultat est 169.254.20.10, vous avez activé NodeLocal DNSCache dans votre cluster, et le pod utilise NodeLocal DNSCache.

  2. Déployez un exemple d'application sur votre cluster :

    kubectl run dns-test --image us-docker.pkg.dev/google-samples/containers/gke/hello-app:2.0
    
  3. Exposez l'exemple d'application avec un service :

    kubectl expose pod dns-test --name dns-test-svc --port 8080
    
  4. Vérifiez que le service a bien été déployé :

    kubectl get svc dns-test-svc
    

    Le résultat ressemble à ce qui suit :

    NAME           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
    dns-test-svc   ClusterIP   10.47.255.11    <none>        8080/TCP   6m10s
    

    La valeur de la colonne CLUSTER-IP correspond à l'adresse IP virtuelle de votre cluster. Dans cet exemple, l'adresse IP virtuelle est 10.47.255.11.

  5. Vérifiez que votre nom de service a été créé en tant qu'enregistrement dans la zone DNS privée de votre cluster :

    gcloud dns record-sets list \
        --zone=PRIVATE_DNS_ZONE \
        --name=dns-test-svc.default.svc.DOMAIN_NAME.
    

    Remplacez les éléments suivants :

    • PRIVATE_DNS_ZONE : nom de la zone DNS gérée créée par GKE. Vous trouverez les noms de zones sur la page Zones Cloud DNS de la console Google Cloud ou en consultant la convention d'attribution de noms.
    • DOMAIN_NAME : cluster.local si vous utilisez la portée du cluster sans la portée VPC additive, ou le domaine personnalisé que vous avez configuré lorsque vous avez activé la portée VPC ou la portée VPC additive.

    Le résultat ressemble à ce qui suit :

    NAME: dns-test-svc.default.svc.cluster.local.
    TYPE: A
    TTL: 30
    DATA: 10.47.255.11
    

Désactiver Cloud DNS dans les clusters Standard

La désactivation de Cloud DNS n'est pas possible dans les clusters Autopilot créés avec Cloud DNS activé par défaut.

Il n'est pas possible de désactiver le champ d'application VPC dans Standard. Vous devez recréer le cluster avec kube-dns comme fournisseur DNS.

Vous pouvez désactiver la portée du cluster et revenir à kube-dns dans un cluster Standard à l'aide de gcloud CLI ou de la consoleGoogle Cloud .

gcloud

Mettez à jour le cluster pour utiliser kube-dns :

gcloud container clusters update CLUSTER_NAME \
    --cluster-dns=kube-dns \
    --location=COMPUTE_LOCATION

Remplacez les éléments suivants :

Console

  1. Accédez à la page Google Kubernetes Engine dans la console Google Cloud .

    Accéder à Google Kubernetes Engine

  2. Cliquez sur le nom du cluster que vous souhaitez modifier.

  3. Sous Mise en réseau, dans le champ Fournisseur DNS, cliquez sur Modifier le fournisseur DNS.

  4. Cliquez sur Kube-dns.

  5. Cliquez sur Enregistrer les modifications.

Après avoir désactivé Cloud DNS, vous devez recréer vos pools de nœuds pour que les nœuds puissent utiliser kube-dns pour la résolution. Si vous avez précédemment mis à l'échelle kube-dns à zéro nœud, vous devez mettre à l'échelle kube-dns avant que les nœuds puissent l'utiliser pour la résolution DNS. Si vous ne recréez pas vos pools de nœuds, les pods sur les nœuds existants continueront d'utiliser Cloud DNS pour la résolution DNS, car leur fichier /etc/resolv.conf n'est pas mis à jour tant que le nœud n'est pas recréé.

Désactiver le champ d'application VPC additif

Lorsque vous désactivez le champ d'application additif à l'échelle du VPC pour votre cluster, seuls les enregistrements DNS des zones privées associées au réseau VPC sont supprimés. Les enregistrements des zones DNS privées du cluster GKE resteront gérés par Cloud DNS pour GKE jusqu'à ce que le service sans adresse IP de cluster soit supprimé du cluster.

Pour désactiver le champ d'application additif à l'échelle du VPC, exécutez la commande suivante :

gcloud container clusters update CLUSTER_NAME \
    --disable-additive-vpc-scope

Remplacez CLUSTER_NAME par le nom du cluster.

Ce paramètre permet de conserver le champ d'application de cluster Cloud DNS activé dans votre cluster, ce qui fournit une résolution DNS à partir du cluster.

Effectuer un nettoyage

Après avoir terminé les exercices de ce document, procédez comme suit pour supprimer les ressources et éviter que des frais inutiles ne vous soient facturés sur votre compte :

  1. Supprimez le service :

    kubectl delete service dns-test-svc
    
  2. Supprimez le pod :

    kubectl delete Pod dns-test
    
  3. Vous pouvez également supprimer le cluster.

Dépannage

Pour savoir comment résoudre les problèmes liés à Cloud DNS, consultez les pages suivantes :

Étapes suivantes