Remarque
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.
Vous pouvez déployer un cluster Kubernetes sur Azure Stack Hub à partir d’une machine virtuelle cliente exécutant le moteur AKS. Cet article explique comment écrire une spécification de cluster, déployer un cluster avec le fichier apimodel.json et vérifier votre cluster en déployant MySQL avec Helm.
Définir une spécification de cluster
Vous pouvez préciser une spécification de cluster dans un fichier de document au format JSON appelé modèle d’API. Le moteur AKS utilise une spécification de cluster dans le modèle d’API pour créer votre cluster.
Vous trouverez des exemples de modèle d’API pour votre système d’exploitation et votre numéro de version de moteur AKS pour les versions récentes dans Moteur AKS et mappage d’image correspondant.
- Recherchez le numéro de version de votre moteur AKS, par exemple,
v.0.63.0, dans le tableau. - Dans le tableau d’exemples de modèle d’API, sélectionnez et ouvrez le lien correspondant à votre système d’exploitation.
- Sélectionnez Raw. Vous pouvez utiliser l’URL fournie dans les instructions suivantes.
Une URL vers le modèle d’API peut ressembler à ceci :
https://raw.githubusercontent.com/Azure/aks-engine-azurestack/master/examples/azure-stack/kubernetes-azurestack.json
Pour chacun des exemples suivants, remplacez <URL for the API Model> par l’URL.
Mettre à jour le modèle d’API
Cette section explique comment créer un modèle d’API pour votre cluster.
Commencez par utiliser un fichier de modèle d’API Azure Stack Hub pour Linux ou Windows. À partir de la machine sur laquelle vous avez installé le moteur AKS, exécutez :
curl -o kubernetes-azurestack.json <URL for the API Model>Remarque
Si vous êtes déconnecté, vous pouvez télécharger le fichier et le copier manuellement sur la machine déconnectée sur laquelle vous envisagez de le modifier. Vous pouvez copier le fichier sur votre machine Linux à l’aide d’outils comme PuTTY ou WinSCP.
Pour ouvrir le modèle d’API dans un éditeur, vous pouvez utiliser nano :
nano ./kubernetes-azurestack.jsonRemarque
Si vous n’avez pas installé nano, vous pouvez le faire sur Ubuntu :
sudo apt-get install nano.Dans le fichier kubernetes-azurestack.json , recherchez orchestratorRelease et orchestratorVersion. Sélectionnez l’une des versions de Kubernetes prises en charge ; le tableau des versions est disponible dans les notes de publication. Spécifiez la valeur
orchestratorReleasesous la forme x.xx et orchestratorVersion sous la forme x.xx.x. Pour obtenir la liste des versions actuelles, consultez Versions du moteur AKS prises en charge.Recherchez
customCloudProfileet fournissez l’URL du portail du locataire. Par exemple :https://portal.local.azurestack.external.Ajoutez
"identitySystem":"adfs"si vous utilisez AD FS. Par exemple,"customCloudProfile": { "portalURL": "https://portal.local.azurestack.external", "identitySystem": "adfs" },Remarque
Si vous utilisez Microsoft Entra ID pour votre système d’identité, vous n’avez pas besoin d’ajouter le champ identitySystem .
Dans
masterProfile, définissez les champs suivants :Champ Descriptif dnsPréfixe Entrez une chaîne unique qui servira à identifier le nom d’hôte des machines virtuelles. Par exemple, un nom basé sur le nom du groupe de ressources. compter Entrez le nombre de maîtres que vous souhaitez pour votre déploiement. Le minimum pour un déploiement HA s’élève à 3, mais 1 seul maître est autorisé pour les déploiements non-HA. vmSize Entrez une taille prise en charge par Azure Stack Hub, par exemple Standard_D2_v2.distribution Entrez aks-ubuntu-18.04ouaks-ubuntu-20.04.Dans
agentPoolProfiles, mettez à jour :Champ Descriptif compter Entrez le nombre d’agents que vous souhaitez pour votre déploiement. Le nombre maximal de nœuds à utiliser par abonnement est de 50. Si vous déployez plus d’un cluster par abonnement, veillez à ne pas dépasser 50 agents. Utilisez les éléments de configuration spécifiés dans l’exemple de fichier JSON de modèle d’API. vmSize Entrez une taille prise en charge par Azure Stack Hub, par exemple Standard_D2_v2.distribution Entrez aks-ubuntu-18.04,aks-ubuntu-20.04ouWindows.
UtilisezWindowspour les agents qui s’exécutent sur Windows. Par exemple, consultez kubernetes-windows.jsonDans
linuxProfile, mettez à jour :Champ Descriptif adminNom d’utilisateur Entrez le nom d’utilisateur administrateur de la machine virtuelle. ssh Entrez la clé publique qui sera utilisée pour l’authentification SSH auprès des machines virtuelles. Utilisez ssh-rsa, puis la clé. Pour obtenir des instructions sur la création d’une clé publique, consultez Créer une clé SSH pour Linux.Si vous effectuez un déploiement sur un réseau virtuel personnalisé, vous trouverez des instructions sur la recherche et l’ajout de la clé et des valeurs requises aux tableaux appropriés dans le modèle d’API dans Déployer un cluster Kubernetes sur un réseau virtuel personnalisé.
Remarque
Le moteur AKS pour Azure Stack Hub ne vous permet pas de fournir vos propres certificats pour la création du cluster.
Si vous utilisez Windows, dans
windowsProfile, mettez à jour les valeurs deadminUsername:etadminPassword:"windowsProfile": { "adminUsername": "azureuser", "adminPassword": "", "sshEnabled": true }
Plus d’informations sur le modèle d’API
- Pour obtenir une référence complète de toutes les options disponibles dans le modèle d’API, consultez les définitions de cluster.
- Pour plus d’informations sur les options spécifiques pour Azure Stack Hub, consultez les spécificités de définition de cluster Azure Stack Hub.
Déployer un cluster Kubernetes
Après avoir collecté toutes les valeurs requises dans votre modèle d’API, vous pouvez créer votre cluster. À ce stade, vous devez demander à votre opérateur Azure Stack Hub de :
- Vérifier l’intégrité du système, en lui suggérant d’exécuter
Test-AzureStacket l’outil de supervision de matériel de votre fournisseur OEM. - Vérifiez la capacité système, notamment les ressources comme la mémoire, le stockage et les adresses IP publiques.
- Fournir les détails du quota associé à votre abonnement afin de vous permettre de vérifier que l’espace est toujours suffisant pour le nombre de machines virtuelles que vous envisagez d’utiliser.
Procéder au déploiement d’un cluster :
Passez en revue les paramètres disponibles pour les indicateurs CLI du moteur AKS sur Azure Stack Hub.
Paramètre Exemple Descriptif azure-env AzureStackCloud Pour indiquer au moteur AKS que votre plateforme cible est Azure Stack Hub, utilisez AzureStackCloud.identity-system adfs facultatif. Spécifiez votre solution de gestion des identités si vous utilisez Active Directory Federated Services (AD FS). lieu locaux Nom de la région de votre Azure Stack Hub. groupe de ressources kube-rg Entrez le nom d’un nouveau groupe de ressources ou sélectionnez un groupe de ressources existant. Le nom de la ressource doit être alphanumérique et en minuscules. api-model ./kubernetes-azurestack.json Chemin du fichier de configuration du cluster ou modèle d’API. output-directory kube-rg Entrez le nom du répertoire pour contenir le fichier de sortie apimodel.json et d’autres fichiers générés. identifiant-client xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Entrez le GUID du principal du service. ID de client identifié comme ID d’application lorsque votre administrateur Azure Stack Hub a créé le principal du service. client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Entrez le secret du principal du service. Vous configurez la clé secrète client quand vous créez votre service. ID d'abonnement xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Entrez votre ID d’abonnement. Vous devez fournir un abonnement pour le locataire. Le déploiement vers l’abonnement administratif n’est pas pris en charge. Pour plus d’informations, consultez S’abonner à une offre. Voici un exemple :
Remarque
Pour AKSe version 0.75.3 et ultérieure, la commande permettant de déployer un cluster de moteur AKS est
aks-engine-azurestack deploy.aks-engine deploy \ --azure-env AzureStackCloud \ --location \ --resource-group kube-rg \ --api-model ./kubernetes-azurestack.json \ --output-directory kube-rg \ --client-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --subscription-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --identity-system adfs # required if using AD FSSi, pour une raison quelconque, l’exécution échoue après la création du répertoire de sortie, vous pouvez corriger le problème et réexécuter la commande. Si vous réexécutez le déploiement et avez utilisé le même répertoire de sortie avant, le moteur AKS retourne une erreur indiquant que le répertoire existe déjà. Vous pouvez remplacer le répertoire existant à l’aide de l’indicateur
--force-overwrite.Enregistrez la configuration de cluster du moteur AKS à un emplacement sécurisé et chiffré.
Recherchez le fichier apimodel.json. Enregistrez-le à un emplacement sécurisé. Ce fichier est utilisé comme entrée dans toutes vos autres opérations de moteur AKS.
Le fichier apimodel.json généré contient le principal de service, le secret et la clé publique SSH que vous utilisez dans le modèle d’API d’entrée. Le fichier possède également toutes les autres métadonnées nécessaires par le moteur AKS pour effectuer toutes les autres opérations. Si vous perdez le fichier, le moteur AKS ne peut pas configurer le cluster.
Les secrets sont non chiffrés. Conservez le fichier à un emplacement sécurisé et chiffré.
Vérifier votre cluster
Vérifiez votre cluster en vous connectant à kubectl, en obtenant les informations, puis en obtenant les états de vos nœuds.
Obtenez le fichier
kubeconfigpour vous connecter au plan de contrôle.- Si vous avez
kubectldéjà installé, vérifiez lekubeconfigfichier du cluster nouvellement créé dans ce chemin d’accès au/kubeconfig/kubeconfig.jsonrépertoire. Vous pouvez ajouter le/kubeconfig.json.kuberépertoire et le renommer en « config » pour accéder à votre nouveau cluster.
Si vous n’avez pas installékubectl, consultez Installer les outils pour installer l’outil en ligne de commande Kubernetes. Sinon, suivez ces instructions pour accéder au cluster à partir de l’un des nœuds du plan de contrôle.
- Si vous avez
Obtenez l’adresse IP publique de l’un de vos nœuds de plan de contrôle à l’aide du portail Azure Stack Hub.
À partir d’un ordinateur disposant d’un accès à votre instance Azure Stack Hub, connectez-vous via SSH au nouveau nœud de plan de contrôle à l’aide d’un client tel que PuTTY ou MobaXterm.
Pour le nom d’utilisateur SSH, utilisez
azureuseret le fichier de clé privée de la paire de clés que vous avez fournie pour le déploiement du cluster.Vérifiez que les points de terminaison du cluster sont en cours d’exécution :
kubectl cluster-infoLe résultat doit être semblable à ce qui suit :
Kubernetes master is running at https://democluster01.location.domain.com CoreDNS is running at https://democluster01.location.domain.com/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy Metrics-server is running at https://democluster01.location.domain.com/api/v1/namespaces/kube-system/services/https:metrics-server:/proxyEnsuite, vérifiez les états des nœuds :
kubectl get nodesLa sortie doit ressembler à ce qui suit :
k8s-linuxpool-29969128-0 Ready agent 9d v1.15.5 k8s-linuxpool-29969128-1 Ready agent 9d v1.15.5 k8s-linuxpool-29969128-2 Ready agent 9d v1.15.5 k8s-master-29969128-0 Ready master 9d v1.15.5 k8s-master-29969128-1 Ready master 9d v1.15.5 k8s-master-29969128-2 Ready master 9d v1.15.5
Résoudre les problèmes de déploiement de cluster
Si vous rencontrez des erreurs lors du déploiement d’un cluster Kubernetes à l’aide du moteur AKS, vous pouvez vérifier :
- Utilisez-vous les bonnes informations d’identification du principal du service (SPN) ?
- Le SPN joue-t-il un rôle de contributeur pour l’abonnement Azure Stack Hub ?
- Disposez-vous d’un quota suffisamment élevé dans votre plan Azure Stack Hub ?
- Un correctif ou une mise à niveau sont-ils appliqués à l’instance Azure Stack Hub ?
Pour plus d’informations, consultez l’article résolution des problèmes dans le dépôt GitHub Azure/aks-engine-azurestack .
Effectuer la rotation du secret du principal du service
Après le déploiement du cluster Kubernetes avec le moteur AKS, le principal du service (SPN) est utilisé pour gérer les interactions avec Azure Resource Manager sur votre instance Azure Stack Hub. À un certain stade, le secret pour ce principal de service peut expirer. Si votre secret expire, vous pouvez actualiser les informations d’identification en :
- Mettant à jour chaque nœud avec le nouveau secret du principal du service.
- Ou en mettant à jour les informations d’identification du modèle d’API et en exécutant la mise à niveau.
Mettre à jour chaque nœud manuellement
- Obtenez un nouveau secret pour votre principal de service auprès de votre opérateur cloud. Pour obtenir des instructions pour Azure Stack Hub, consultez Utiliser une identité d’application pour accéder aux ressources Azure Stack Hub.
- Utilisez les nouvelles informations d’identification fournies par votre opérateur cloud pour mettre à jour /etc/kubernetes/azure.json sur chaque nœud. Après avoir effectué la mise à jour, redémarrez les deux
kubeleetkube-controller-manager.
Mettre à jour le cluster avec la mise à jour du moteur AKS
Vous pouvez également remplacer les informations d’identification dans apimodel.json et exécuter la mise à niveau à l’aide du fichier .json mis à jour vers la même version de Kubernetes ou plus récente. Pour obtenir des instructions sur la mise à niveau du modèle, consultez Mettre à niveau un cluster Kubernetes sur Azure Stack Hub