Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article vous aide à déployer un cluster AKS basé sur une liaison privée. Si vous souhaitez créer un cluster AKS sans liaison privée ou tunnel requis, consultez Créer un cluster Azure Kubernetes Service avec API Server VNet Integration (préversion).
Vue d’ensemble
Dans un cluster privé, le plan de contrôle ou le serveur d’API a des adresses IP internes définies dans le document RFC1918 - Allocation d’adresses pour le document Internet privé . En utilisant un cluster privé, vous pouvez vous assurer que le trafic réseau entre votre serveur d’API et vos pools de nœuds reste uniquement sur le réseau privé.
Le plan de contrôle ou le serveur d’API se trouve dans un groupe de ressources Azure géré par AKS, et votre cluster ou groupe de nœuds se trouve dans votre groupe de ressources. Le serveur et le pool de nœuds peuvent communiquer entre eux via le service Azure Private Link dans le réseau virtuel du serveur d’API et un point de terminaison privé exposé sur le sous-réseau de votre cluster AKS.
Quand vous provisionnez un cluster AKS privé, AKS crée par défaut un FQDN privé avec une zone DNS privée et un FQDN public supplémentaire avec un enregistrement A
correspondant dans le DNS public Azure. Les nœuds d’agent continuent d’utiliser l’enregistrement A
dans la zone DNS privé afin de résoudre l’adresse IP privée du point de terminaison privé pour la communication avec le serveur d’API.
Disponibilité dans les régions
Les clusters privés sont disponibles dans les régions publiques, Azure Government et Microsoft Azure gérés par les régions 21Vianet où AKS est pris en charge.
Prérequis
- Azure CLI version 2.28.0 ou ultérieure. Exécutez
az --version
pour rechercher la version, puis exécutezaz upgrade
pour mettre à niveau la version. Si vous avez besoin d’installer ou de mettre à niveau, consultez Installer Azure CLI. - Si vous utilisez Azure Resource Manager (ARM) ou l’API REST Azure, la version de l’API AKS doit être 2021-05-01 ou ultérieure.
- Pour utiliser un serveur DNS personnalisé, ajoutez l’adresse IP publique Azure 168.63.129.16 comme serveur DNS en amont dans le serveur DNS personnalisé et veillez à ajouter cette adresse IP publique comme premier serveur DNS. Pour plus d’informations sur l’adresse IP Azure, voir Qu'est-ce que l'adresse IP 168.63.129.16 ?
- La zone DNS du cluster doit être celle que vous transférez vers 168.63.129.16. Vous trouverez plus d’informations sur les noms de zones dans la configuration de la zone DNS des services Azure.
- Les clusters AKS existants activés avec l’intégration au réseau virtuel du serveur d’API peuvent avoir le mode cluster privé activé. Pour plus d’informations, consultez Activer ou désactiver le mode cluster privé sur un cluster existant avec l’intégration au réseau virtuel du serveur d’API.
Remarque
Le pool de nœuds Linux Azure est désormais en disponibilité générale (GA). Pour en savoir plus sur les avantages et les étapes de déploiement, consultez la présentation de l’hôte de conteneur Linux Azure pour AKS.
Limites
- Les plages d’adresses IP autorisées ne peuvent pas être appliquées au point de terminaison du serveur d’API privé ; elles sont uniquement applicables au serveur d’API public.
- Les limitations du service Azure Private Link s’appliquent aux clusters privés.
- Les agents hébergés par Microsoft Azure DevOps avec des clusters privés ne sont pas pris en charge. Envisagez d’utiliser des agents auto-hébergés.
- Si vous devez autoriser Azure Container Registry à travailler avec un cluster AKS privé, configurez une liaison privée pour le registre de conteneurs dans le réseau virtuel du cluster ou configurez le peering entre le réseau virtuel du registre de conteneurs et le réseau virtuel du cluster privé.
- La suppression ou la modification du point de terminaison privé dans le sous-réseau du client entraîne l’arrêt du fonctionnement du cluster.
- Le service Azure Private Link est pris en charge seulement sur Azure Load Balancer Standard. Azure Load Balancer De base n’est pas pris en charge.
Créer un cluster AKS privé
Créez un groupe de ressources avec la commande
az group create
. Vous pouvez également utiliser un groupe de ressources existant pour votre cluster AKS.az group create \ --name <private-cluster-resource-group> \ --location <location>
Créez un cluster privé avec la mise en réseau de base par défaut à l’aide de la commande
az aks create
avec l’indicateur--enable-private-cluster
.az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --generate-ssh-keys
Établir une connexion au cluster privé
Pour gérer un cluster Kubernetes, utilisez le client de ligne de commande Kubernetes, kubectl. Si vous utilisez Azure Cloud Shell, kubectl
est déjà installé. Pour installer kubectl
localement, utilisez la commande az aks install-cli
.
Configurez
kubectl
afin de vous connecter à votre cluster Kubernetes avec la commandeaz aks get-credentials
. Cette commande télécharge les informations d’identification et configure l’interface CLI Kubernetes pour les utiliser.az aks get-credentials --resource-group <private-cluster-resource-group> --name <private-cluster-name>
Pour vérifier la connexion à votre cluster, exécutez la commande
kubectl get
. Cette commande renvoie la liste des nœuds de cluster.kubectl get nodes
Utiliser des domaines personnalisés
Si vous souhaitez configurer des domaines personnalisés qui ne peuvent être résolus qu’en interne, consultez Utiliser des domaines personnalisés.
Désactiver un FQDN public
Désactiver un nom de domaine complet public sur un nouveau cluster
Désactivez un nom de domaine complet public lors de la création d’un cluster AKS privé à l’aide de la commande
az aks create
avec l’indicateur--disable-public-fqdn
.az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resourceID> \ --private-dns-zone <private-dns-zone-mode> \ --disable-public-fqdn \ --generate-ssh-keys
Désactiver un FQDN public sur un cluster existant
Désactivez un FQDN public sur un cluster AKS existant à l’aide de la commande
az aks update
avec l’indicateur--disable-public-fqdn
.az aks update \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --disable-public-fqdn
Configurer une zone DNS privée
Vous pouvez configurer des zones DNS privées à l’aide des paramètres suivants :
system
: il s’agit de la valeur par défaut. Si l’argument--private-dns-zone
est omis, AKS crée une zone DNS privée dans le groupe de ressources du nœud.none
: la valeur par défaut est DNS public. AKS ne va pas créer une zone DNS privée.CUSTOM_PRIVATE_DNS_ZONE_RESOURCE_ID
: cela vous oblige à créer une zone DNS privée au format suivant pour le cloud global Azure :privatelink.<region>.azmk8s.io
ou<subzone>.privatelink.<region>.azmk8s.io
. Vous aurez besoin de l’ID de ressource de la zone DNS privée pour une utilisation ultérieure. Vous avez également besoin d’une identité ou d’un principal de service affecté par l’utilisateur avec les rôles Contributeur de zone DNS privé et Contributeur réseau . Lors du déploiement à l’aide de l’intégration au réseau virtuel du serveur d’API, une zone DNS privée prend en charge le format de dénominationprivate.<region>.azmk8s.io
ou<subzone>.private.<region>.azmk8s.io
. Vous ne pouvez pas modifier ou supprimer cette ressource après avoir créé le cluster, car elle peut entraîner des problèmes de performances et des échecs de mise à niveau de cluster.- Si la zone DNS privée se trouve dans un autre abonnement que le cluster AKS, vous devez inscrire le fournisseur Azure
Microsoft.ContainerServices
dans les deux abonnements. - Vous pouvez utiliser
fqdn-subdomain
avecCUSTOM_PRIVATE_DNS_ZONE_RESOURCE_ID
uniquement pour fournir des fonctionnalités de sous-domaine àprivatelink.<region>.azmk8s.io
. - Si votre cluster AKS est configuré avec un principal de service Active Directory, AKS ne prend pas en charge l’utilisation d’une identité managée affectée par le système avec une zone DNS privée personnalisée. Le cluster doit utiliser l’authentification par identité managée déléguée à l’utilisateur.
- Si vous spécifiez un
<subzone>
, il existe une limite de 32 caractères pour le nom<subzone>
.
- Si la zone DNS privée se trouve dans un autre abonnement que le cluster AKS, vous devez inscrire le fournisseur Azure
Remarque
Vous pouvez configurer CUSTOM_PRIVATE_DNS_ZONE_RESOURCE_ID
à l’aide d’un modèle ARM ou d’Azure CLI. privateDNSZone
accepte la zone DNZ privée resourceID
comme illustré dans l’exemple suivant :
properties.apiServerAccessProfile.privateDNSZone.
"apiServerAccessProfile": {
"enablePrivateCluster": true,
"privateDNSZone": "system|none|[resourceId(..., 'Microsoft.Network/privateDnsZones', 'privatelink.<region>.azmk8s.io']"
}
Créer un cluster AKS privé avec une zone DNS privée
Créez un cluster AKS privé avec une zone DNS privée à l’aide de la commande
az aks create
avec les indicateurs suivants :az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resourceID> \ --private-dns-zone [system|none] \ --generate-ssh-keys
Créer un cluster AKS privé avec une zone ou une sous-zone DNS privée personnalisée
Créez un cluster AKS privé avec une zone ou une sous-zone DNS privée personnalisée à l’aide de la commande
az aks create
avec les indicateurs suivants :# The custom private DNS zone name should be in the following format: "<subzone>.privatelink.<region>.azmk8s.io" az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resourceID> \ --private-dns-zone <custom private dns zone or custom private dns subzone resourceID> \ --generate-ssh-keys
Créer un cluster AKS privé avec une zone DNS privée personnalisée et un sous-domaine personnalisé
Créez un cluster AKS privé avec une zone DNS privée personnalisée et un sous-domaine personnalisé à l’aide de la commande
az aks create
avec les indicateurs suivants :# The custom private DNS zone name should be in one of the following formats: "privatelink.<region>.azmk8s.io" or "<subzone>.privatelink.<region>.azmk8s.io" az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resourceID> \ --private-dns-zone <custom private dns zone resourceID> \ --fqdn-subdomain <subdomain> \ --generate-ssh-keys
Mettre à jour un cluster privé à partir d’une zone DNS privée vers un cluster public
Vous pouvez mettre à jour uniquement à partir de byo
ou system
vers none
. Aucune autre combinaison de valeurs de mise à jour n’est prise en charge. Avant de mettre à jour, veillez à vous connecter au cluster privé.
Avertissement
Lorsque vous mettez à jour un cluster privé de byo
ou system
vers none
, les nœuds de l’agent changent pour utiliser un nom de domaine complet public. Dans un cluster AKS qui utilise Microsoft Azure Virtual Machine Scale Sets, une mise à niveau de l’image de nœud est effectuée pour mettre à jour vos nœuds avec le nom de domaine complet public.
Mettez à jour un cluster privé à partir de
byo
ousystem
versnone
à l’aide de laaz aks update
commande avec les indicateurs suivants :az aks update \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --private-dns-zone none
Options de connexion au cluster privé
Le point de terminaison du serveur d’API n’a pas d’adresse IP publique. Pour gérer le serveur d’API, vous devez utiliser une machine virtuelle qui a accès au réseau virtuel (VNet) Azure du cluster AKS. Vous pouvez établir une connectivité réseau au cluster privé de différentes manières :
- Créez une machine virtuelle dans le même réseau virtuel que le cluster AKS à l’aide de la commande
az vm create
avec l’indicateur--vnet-name
. - Utilisez une machine virtuelle dans un réseau distinct et mettez en place le peering de réseau virtuel.
- Utilisez une connexion Express Route ou VPN .
- Utilisez la fonctionnalité AKS
command invoke
. - Utilisez une connexion point de terminaison privé.
- Utilisez une instance Cloud Shell déployée dans un sous-réseau connecté au serveur d’API du cluster.
La création d’une machine virtuelle dans le même réseau virtuel que le cluster AKS est l’option la plus simple. ExpressRoute et les VPN présentent des coûts et une complexité de mise en réseau supplémentaires. L’appairage de réseaux virtuels implique la planification de vos plages CIDR réseau pour veiller à ce qu'aucune plage ne se chevauche.
Appairage de réseaux virtuels
Pour utiliser l’appairage de réseaux virtuels, vous devez configurer une liaison entre le réseau virtuel et la zone DNS privée.
- Dans le portail Azure, accédez à votre groupe de ressources de nœud et sélectionnez votre ressource de zone DNS privée.
- Dans le menu du service, sous Gestion DNS, sélectionnezLiens>de réseau virtuelAjouter.
- Dans la page Ajouter un lien de réseau virtuel , configurez les paramètres suivants :
- Nom du lien : entrez un nom pour le lien de réseau virtuel.
- Réseau virtuel : sélectionnez le réseau virtuel qui contient la machine virtuelle.
- Sélectionnez Créer pour créer le lien de réseau virtuel.
- Accédez au groupe de ressources qui contient le réseau virtuel de votre cluster et sélectionnez votre ressource de réseau virtuel.
- Dans le menu du service, sous Paramètres, sélectionnez Peerings>Add.
- Dans la page Ajouter un peering, configurez les paramètres suivants :
- Nom du lien de peering : entrez un nom pour le lien de peering.
- Réseau virtuel : sélectionnez le réseau virtuel de la machine virtuelle.
- Sélectionnez Ajouter pour créer le lien de peering.
Pour en savoir plus, consultez Peering de réseaux virtuels.
Hub-and-spoke avec DNS personnalisé
Les architectures hub-and-spoke sont couramment utilisées pour déployer des réseaux dans Azure. Dans la plupart de ces déploiements, les paramètres DNS des réseaux virtuels spoke sont configurés pour faire référence à un redirecteur DNS central afin d’autoriser la résolution DNS locale et basée sur Azure.
Lors du déploiement d’un cluster AKS dans un environnement de mise en réseau de ce type, certaines considérations particulières doivent être prises en compte :
Quand un cluster privé est approvisionné, un point de terminaison privé (1) et une zone DNS privée (2) sont créés par défaut dans le groupe de ressources managé par le cluster. Le cluster utilise un enregistrement
A
dans la zone privée pour résoudre l’adresse IP du point de terminaison privé pour la communication avec le serveur d’API.La zone DNS privée est liée uniquement au réseau virtuel auquel les nœuds de cluster sont attachés (3). Cela signifie que le point de terminaison privé peut uniquement être résolu par les hôtes de ce réseau virtuel lié. Dans les scénarios où aucun DNS personnalisé n’est configuré sur le réseau virtuel (valeur par défaut), cela fonctionne sans problème car les hôtes pointent vers 168.63.129.16 pour le DNS qui peut résoudre les enregistrements dans la zone DNS privée grâce au lien.
Si vous conservez le comportement de zone private-DNS par défaut, AKS tente de lier la zone directement au réseau virtuel spoke qui héberge le cluster même si la zone est déjà liée à un réseau virtuel hub.
Dans les réseaux virtuels spoke qui utilisent des serveurs DNS personnalisés, cette action peut échouer si l’identité managée du cluster ne dispose pas du contributeur réseau sur le réseau virtuel spoke.
Pour éviter l’échec, choisissez l’une des configurations prises en charge suivantes :Zone DNS privée personnalisée : fournissez une zone privée précréé et définissez
privateDNSZone
son ID de ressource. Liez cette zone au réseau virtuel approprié (par exemple, le réseau virtuel hub) et définissezpublicDNS
surfalse
.DNS public uniquement : désactivez la création de zone privée en définissant
privateDNSZone
surnone
et en laissantpublicDNS
sa valeur par défaut (true
).
Il n’est pas possible de configurer
privateDNSZone: none
etpublicDNS: false
en même temps, car cette fonctionnalité n’est pas prise en charge.
Remarque
Le transfert conditionnel ne prend pas en charge les sous-domaines.
Remarque
Si vous utilisez l’apport de votre propre table de routage avec kubenet et l’apport de votre propre DNS avec un cluster privé, la création du cluster échoue. Vous devez associer RouteTable
dans le groupe de ressources du nœud au sous-réseau après l’échec de la création du cluster afin que la création réussisse.
Utiliser une connexion de point de terminaison privé
Un point de terminaison privé peut être configuré de telle façon qu’un réseau virtuel n’a pas besoin d’être appairé pour communiquer avec le cluster privé. Créez un point d’extrémité privé dans le réseau virtuel contenant les ressources consommées, puis créez un lien entre votre réseau virtuel et une nouvelle zone DNS privée dans le même réseau.
Important
Si le réseau virtuel est configuré avec des serveurs DNS personnalisés, le DNS privé doit être convenablement configuré de manière pour l’environnement. Pour plus d’informations, consultez la documentation de résolution de noms des réseaux virtuels .
Créer une ressource Point de terminaison privé
Créez une ressource Point de terminaison privé dans votre réseau virtuel :
- Dans la page d’accueil du portail Azure, sélectionnez Créer une ressource.
- Recherchez un point de terminaison privé et sélectionnez Créer un>point de terminaison privé.
- Sélectionnez Créer.
- Sous l’onglet Informations de base , configurez les paramètres suivants :
- Détails du projet
- Abonnement : sélectionnez l’abonnement où se trouve votre cluster privé.
- Groupe de ressources : sélectionnez le groupe de ressources qui contient votre réseau virtuel.
- Détails de l’instance
- Nom : entrez un nom pour votre point de terminaison privé, tel que myPrivateEndpoint.
- Région : sélectionnez la même région que votre réseau virtuel.
- Détails du projet
- Sélectionnez Suivant : Ressource et configurez les paramètres suivants :
- Méthode de connexion : sélectionnez Se connecter à une ressource Azure dans mon répertoire.
- Abonnement : sélectionnez l’abonnement où se trouve votre cluster privé.
- Type de ressource : Sélectionnez Microsoft.ContainerService/managedClusters.
- Ressource : sélectionnez votre cluster privé.
- Sous-ressource cible : sélectionnez la gestion.
- Sélectionnez Suivant : Réseau virtuel et configurez les paramètres suivants :
- Réseautage
- Réseau virtuel : sélectionnez votre réseau virtuel.
- Sous-réseau : sélectionnez votre sous-réseau.
- Réseautage
- Sélectionnez Suivant : DNS>Suivant : Balises et (éventuellement) configurer les valeurs de clé en fonction des besoins.
- Sélectionnez Suivant : Vérifier + créer>.
Une fois la ressource créée, enregistrez l’adresse IP privée du point de terminaison privé pour une utilisation ultérieure.
Créer une zone DNS privée
Une fois vous créez le point de terminaison privé, créez une zone DNS privée portant le même nom que la zone DNS privée créée par le cluster privé : N’oubliez pas de créer cette zone DNS dans le réseau virtuel contenant les ressources consommatrices.
- Dans le portail Azure, accédez à votre groupe de ressources de nœud et sélectionnez votre ressource de zone DNS privée.
- Dans le menu du service, sous Gestion DNS, sélectionnez Recordsets et notez les éléments suivants :
- Le nom de la zone DNS privée, qui suit le modèle
*.privatelink.<region>.azmk8s.io
. - Le nom de l’enregistrement
A
(à l’exception du nom DNS privé). - La durée de vie (TTL).
- Le nom de la zone DNS privée, qui suit le modèle
- Dans la page d’accueil du portail Azure, sélectionnez Créer une ressource.
- Recherchez la zone DNS privée et sélectionnez Créer une>zone DNS privée.
- Sous l’onglet Informations de base , configurez les paramètres suivants :
- Détails du projet :
- Sélectionnez votre abonnement.
- Sélectionnez le groupe de ressources où vous avez créé le point de terminaison privé.
- Détails de l’instance
- Nom : entrez le nom de la zone DNS récupérée à partir des étapes précédentes.
- La région correspond par défaut à l’emplacement de votre groupe de ressources.
- Détails du projet :
- Sélectionnez Vérifier + créer>.
Créer un enregistrement A
Une fois la zone DNS privée créée, créez un enregistrement A
qui associe le point de terminaison privé au cluster privé :
- Accédez à la zone DNS privée créée dans les étapes précédentes.
- Dans le menu du service, sous Gestion DNS, sélectionnez Recordsets>Add.
- Dans la page Ajouter un jeu d’enregistrements , configurez les paramètres suivants :
- Nom : entrez le nom récupéré à partir de l’enregistrement
A
dans la zone DNS du cluster privé. - Type : sélectionnez A - Enregistrement d’adresse.
- Durée de vie : entrez le numéro de l’enregistrement
A
dans la zone DNS du cluster privé. - Unité de durée de vie : modifiez la valeur de la liste déroulante pour qu’elle corresponde à celle de l’enregistrement
A
de la zone DNS du cluster privé. - Adresse IP : entrez l’adresse IP du point de terminaison privé que vous avez créé.
- Nom : entrez le nom récupéré à partir de l’enregistrement
- Sélectionnez Ajouter pour créer l’enregistrement
A
.
Important
Lors de la création de l’enregistrement A
, n’utilisez pas le nom de domaine complet (FQDN), mais uniquement le nom.
Lier la zone DNS privée au réseau virtuel
Une fois l’enregistrement A
créé, liez la zone DNS privée au réseau virtuel qui va accéder au cluster privé :
- Accédez à la zone DNS privée créée dans les étapes précédentes.
- Dans le menu du service, sous Gestion DNS, sélectionnezLiens>de réseau virtuelAjouter.
- Dans la page Ajouter un lien de réseau virtuel , configurez les paramètres suivants :
- Nom du lien : entrez un nom pour votre lien de réseau virtuel.
- Abonnement : sélectionnez l’abonnement où se trouve votre cluster privé.
- Réseau virtuel : sélectionnez le réseau virtuel de votre cluster privé.
- Sélectionnez Créer pour créer le lien.
Attendez quelques minutes que l’opération se termine. Une fois la liaison de réseau virtuel créée, vous pouvez y accéder à partir de l’onglet Liens de réseau virtuel que vous avez utilisé à l’étape 2.
Avertissement
- Si le cluster privé est arrêté et redémarré, le service de liaison privée d’origine du cluster privé est supprimé et recréé, ce qui interrompt la connexion entre votre point de terminaison privé et le cluster privé. Pour résoudre ce problème, supprimez et recréez tous les points de terminaison privés créés par l’utilisateur et liés au cluster privé. Si les points de terminaison privés recréés ont de nouvelles adresses IP, vous devez également mettre à jour les enregistrements DNS.
- Si vous mettez à jour les enregistrements DNS dans la zone DNS privée, vérifiez que l’hôte à partir duquel vous essayez de vous connecter utilise les enregistrements DNS mis à jour. Vous pouvez le vérifier à l’aide de la commande
nslookup
. Si vous remarquez que les mises à jour ne sont pas reflétées dans la sortie, vous devrez peut-être vider le cache DNS sur votre ordinateur et réessayer.
Étapes suivantes
Pour connaître les meilleures pratiques associées, consultez les meilleures pratiques pour la connectivité réseau et la sécurité dans AKS.
Azure Kubernetes Service