Ce document explique comment configurer un DNS pour un cluster d'administrateur ou un cluster d'utilisateur.
La configuration DNS d'un cluster est conservée dans une ressource personnalisée ClusterDNS nommée default
. Il s'agit d'une ressource à l'échelle du cluster. C'est-à-dire qu'elle n'est pas associée à un espace de noms.
Afficher la ressource ClusterDNS
Pour afficher la ressource ClusterDNS, procédez comme suit :
kubectl --kubeconfig CLUSTER_KUBECONFIG get clusterdns default --output yaml
Remplacez CLUSTER_KUBECONFIG par le chemin d'accès au fichier kubeconfig du cluster.
La configuration DNS se trouve dans la section spec
. Si la section spec
est vide ou manquante, le cluster utilise une configuration Kubernetes CoreDNS par défaut.
Modifier la configuration DNS
Créez un fichier manifeste pour une ressource ClusterDNS nommée default
. Renseignez le champ spec
selon vos besoins. Exemple :
apiVersion: networking.gke.io/v1alpha1 kind: ClusterDNS metadata: name: default spec: upstreamNameservers: - serverIP: 8.8.8.8 - serverIP: 8.8.4.4 domains: - name: altostrat.com nameservers: - serverIP: 198.51.100.0.1 - name: my-own-personal-domain.com nameservers: - serverIP: 203.0.113.1 - serverIP: 203.0.113.2 serverPort: 54 googleAccess: private
Enregistrez le fichier manifeste dans un fichier nommé my-dns.yaml
et appliquez la ressource au cluster :
kubectl --kubeconfig CLUSTER_KUBECONFIG apply -f my-dns.yaml
La spécification ClusterDNS
spec.upstreamNameservers
Tableau d'objets, chacun contenant une adresse IP de serveur et éventuellement un port de serveur. La valeur par défaut du port serveur est 53.
Serveurs de noms en amont par défaut. Les requêtes de domaines hors cluster sont transférées par défaut vers cet ensemble de serveurs. Exemple :
spec: upstreamNameservers: - serverIP: 8.8.8.8 - serverIP: 1.2.3.4 serverPort: 54
Si vous ne spécifiez aucune valeur pour upstreamNameservers
, le fournisseur DNS utilise le fichier /etc/resolve.conf
sur le nœud pour rechercher la liste des serveurs de noms en amont.
spec.domains
Configuration pour des domaines spécifiques. Cela permet de remplacer la configuration dans upstreamNameservers
.
Vous pouvez utiliser cette section pour configurer différents serveurs de noms en amont pour des domaines spécifiques, séparément des serveurs de noms en amont par défaut.
Vous pouvez également activer la journalisation des requêtes pour un domaine. Vous pouvez le faire pour n'importe quel domaine spécifié ou pour le domaine du cluster, cluster.local.
Exemple :
spec: domains: - name: altostrat.com nameservers: - serverIP: 203.0.113.1 - name: my-own-personal-domain.com nameservers: - serverIP: 198.51.100.1 - serverIP: 198.51.100.2 serverPort: 50000 - name: cluster.local queryLogging: true
spec.googleAccess
Chaîne. Si vous souhaitez que les domaines Google soient associés à des adresses IP d'accès privé, définissez ce paramètre sur "private"
. Si vous souhaitez que les domaines Google soient associés à des adresses IP à accès restreint, définissez ce paramètre sur restricted
. Si vous ne souhaitez pas bénéficier de traitement spécial pour les domaines Google, définissez ce paramètre sur default
ou supprimez-le. Pour plus d'informations, consultez la section Configurer l'accès privé à Google pour les hôtes sur site.
Exemple :
spec: googleAccess: private
spec.orderPolicy
Chaîne. Si vous souhaitez spécifier la règle de tri selon laquelle les serveurs en amont sont sélectionnés. La valeur par défaut est "random"
. Les types acceptés sont "random"
, "round_robin"
et "sequential"
. Notez que cette règle de tri s'applique également aux domaines définis. Consultez la documentation coredns pour en savoir plus sur policy
et sur le rôle de chaque configuration.
Exemple :
spec: orderPolicy: sequential