Ce document explique comment configurer les options de fournisseur DNS (Domain Name System) pour GKE sur Bare Metal. La configuration DNS d'un cluster est conservée dans une ressource personnalisée ClusterDNS nommée default
. Cette ressource s'applique à l'ensemble du cluster et n'est donc pas associée à un espace de noms. La ressource personnalisée ClusterDNS s'applique à tous les types de clusters.
Créer la ressource ClusterDNS
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
- 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 KUBECONFIG apply -f my-dns.yaml
Remplacez KUBECONFIG
par le chemin d'accès au fichier kubeconfig du cluster.
Afficher la ressource ClusterDNS
Pour afficher la ressource ClusterDNS, procédez comme suit :
kubectl --kubeconfig KUBECONFIG get clusterdns default --output yaml
Remplacez KUBECONFIG
par le chemin d'accès au fichier kubeconfig du cluster.
La spécification ClusterDNS
Les sections suivantes décrivent les parties de la définition de ressource personnalisée ClusterDNS permettant de configurer le DNS pour vos clusters. Vous pouvez mettre à jour la ressource ClusterDNS pour un cluster à tout moment.
spec.upstreamNameservers
Spécifiez vos serveurs de noms en amont par défaut avec un tableau d'objets, chacun disposant d'une adresse IP de serveur et éventuellement d'un port de serveur. La valeur par défaut du port du serveur est 53. Les requêtes pour les domaines hors cluster sont transférées par défaut vers ce tableau d'adresses de serveur.
Voici un exemple de configuration upstreamNameservers
:
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. Utilisez cette section pour configurer différents serveurs de noms en amont pour des domaines particuliers. Ces paramètres de serveur de noms spécifiques au domaine remplacent la configuration dans upstreamNameservers
.
Vous pouvez également activer la journalisation des requêtes pour un domaine. Vous pouvez activer la journalisation des requêtes 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
Énumération (private
, restricted
ou default
). Spécifie comment traiter les domaines Google. Les valeurs googleAccess
spécifient le comportement suivant :
default
: aucun traitement spécial pour les domaines Google. Supprimer le champgoogleAccess
a le même effet.private
: renvoie les domaines Google vers des adresses IP d'accès privé uniquement.restricted
: renvoie les domaines Google vers des adresses IP avec accès restreint uniquement.
L'exemple de paramètre suivant renvoie les domaines Google vers des adresses IP à accès privé uniquement :
spec:
googleAccess: private
Pour plus d'informations, consultez la section Configurer l'accès privé à Google pour les hôtes sur site.