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.
Dans cet article, vous approvisionnez les principales ressources Azure requises pour un déploiement AKS prêt pour la production. Cet article valide l’accès Azure, crée un groupe de ressources, établit un Registre de conteneurs Azure (ACR), déploie un cluster AKS de base, ajoute éventuellement un pool de nœuds supplémentaire pour les charges de travail utilisateur et accorde l’autorisation de cluster d’extraire à partir d’ACR. Toutes les commandes s’appuient sur des variables d’environnement paramétrables afin que le flux de travail reste reproductible entre les régions et les abonnements.
Prerequisites
Vous avez besoin des outils et de l’accès au compte suivants avant d’exécuter le guide. Vérifiez que vous êtes authentifié auprès d’Azure az login et disposez des autorisations suffisantes pour créer des groupes de ressources, des registres de conteneurs et des clusters AKS.
- Abonnement Azure avec quota pour la région sélectionnée
- Azure CLI (
az) avec des droits propriétaires ou contributeurs - kubectl configuré localement pour l’accès au cluster
- jq (facultatif) pour analyser la sortie JSON lors de la vérification
Exécutez les commandes suivantes pour confirmer que vous disposez de tous les outils CLI nécessaires et de l’accès Azure :
command -v az >/dev/null || echo "Azure CLI missing"
command -v kubectl >/dev/null || echo "kubectl missing"
command -v jq >/dev/null || echo "jq missing (optional)"
Configurer l’environnement
Ici, vous définissez toutes les variables d’environnement utilisées tout au long des étapes d’approvisionnement. L’horodatage HASH conserve les noms de ressources uniques pendant les exécutions répétées. Les valeurs par défaut du cluster et du registre ciblent une empreinte minimale de preuve de concept, mais vous pouvez les ajuster selon les besoins.
Les commandes suivantes établissent l’étendue Azure, le dimensionnement AKS et les conventions d’affectation de noms ACR pour la séquence d’approvisionnement, quelles que soient les charges de travail en aval.
export HASH="${HASH:-$(date -u +"%y%m%d%H%M")}" # YYMMDDHHMM stamp
# Azure scope and regional placement
export LOCATION="${LOCATION:-eastus2}"
export SUBSCRIPTION_ID="${SUBSCRIPTION_ID:-$(az account show --query id -o tsv)}"
export RESOURCE_GROUP="${RESOURCE_GROUP:-rg_aks_${HASH}}"
# AKS cluster naming and version control
# Hyphen required because AKS cluster names cannot include underscores
export AKS_CLUSTER_NAME="${AKS_CLUSTER_NAME:-aks-openwebsearch-${HASH}}"
export AKS_VERSION="${AKS_VERSION:-}" # Optional Kubernetes version override
# Node pool sizing
export AKS_SYSTEM_NODE_COUNT="${AKS_SYSTEM_NODE_COUNT:-1}"
export AKS_USER_NODE_COUNT="${AKS_USER_NODE_COUNT:-1}"
export AKS_NODE_VM_SIZE="${AKS_NODE_VM_SIZE:-Standard_D4s_v5}"
export AKS_SYSTEM_NODEPOOL_NAME="${AKS_SYSTEM_NODEPOOL_NAME:-system}"
export AKS_USER_NODEPOOL_NAME="${AKS_USER_NODEPOOL_NAME:-user}"
# ACR configuration
export ACR_NAME="${ACR_NAME:-acrwebsearch${HASH}}"
export ACR_LOGIN_SERVER="${ACR_LOGIN_SERVER:-${ACR_NAME}.azurecr.io}"
Vérifier les valeurs des variables d’environnement
Passez en revue la configuration effective avant de créer des ressources. Réexécutez le bloc après les ajustements pour vous assurer que les valeurs actives sont correctes pour l’abonnement et la région cibles.
Utilisez les commandes suivantes pour épingler les paramètres actifs afin de valider les choix d’affectation de noms, de dimensionnement et régionaux.
: "${HASH:=$(date -u +"%y%m%d%H%M")}" # Ensure HASH exists
VARS=(
HASH
LOCATION
SUBSCRIPTION_ID
RESOURCE_GROUP
AKS_CLUSTER_NAME
AKS_VERSION
AKS_SYSTEM_NODE_COUNT
AKS_USER_NODE_COUNT
AKS_NODE_VM_SIZE
AKS_SYSTEM_NODEPOOL_NAME
AKS_USER_NODEPOOL_NAME
ACR_NAME
ACR_LOGIN_SERVER
)
for v in "${VARS[@]}"; do
printf "%s=%s\n" "$v" "${!v}"
done
Étapes
Exécutez chaque étape de manière séquentielle. Chaque sous-section comprend des objectifs, des commandes et un résumé pour confirmer les résultats attendus.
Vérifier le contexte de l’abonnement Azure
Vérifiez l’abonnement Azure actif et vérifiez que les fournisseurs de ressources requis pour les opérations AKS et ACR sont inscrits.
az account show --query id -o tsv
az provider register --namespace Microsoft.ContainerService
az provider register --namespace Microsoft.ContainerRegistry
Créer un groupe de ressources
Provisionnez un groupe de ressources dédié pour isoler le cluster AKS, le registre et l’infrastructure de support de vos charges de travail.
az group create \
--name "${RESOURCE_GROUP}" \
--location "${LOCATION}" \
--output table
Provisionner le registre de conteneurs Azure
Créez un Registre de conteneurs Azure pour stocker des images conteneur et authentifier le démon Docker local pour envoyer (push) des images.
az acr create \
--name "${ACR_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--location "${LOCATION}" \
--sku Basic \
--output table
az acr login --name "${ACR_NAME}"
Créer le cluster AKS
Déployez le cluster AKS pour héberger vos charges de travail. Veillez à ne pas réutiliser un nom de cluster existant en vérifiant avant la création.
if az aks show \
--name "${AKS_CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" >/dev/null 2>&1; then
echo "AKS cluster ${AKS_CLUSTER_NAME} already exists in ${RESOURCE_GROUP}";
echo "Skip creation or provide a new AKS_CLUSTER_NAME.";
else
az aks create \
--name "${AKS_CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--location "${LOCATION}" \
--generate-ssh-keys \
--node-count "${AKS_SYSTEM_NODE_COUNT}" \
--nodepool-name "${AKS_SYSTEM_NODEPOOL_NAME}" \
--node-vm-size "${AKS_NODE_VM_SIZE}" \
${AKS_VERSION:+--kubernetes-version "${AKS_VERSION}"} \
--output table
fi
Ajouter un pool de nœuds utilisateur facultatif
Provisionnez un pool de nœuds supplémentaire lorsqu’il est demandé. La commande add s’exécute de manière asynchrone pour éviter les délais d’expiration de l’interface CLI ; la commande d’attente suit la progression d’Azure. Le script vérifie d’abord si le pool existe déjà pour empêcher les erreurs de nom en double.
if [ "${AKS_USER_NODE_COUNT}" -gt 0 ]; then
if az aks nodepool show \
--cluster-name "${AKS_CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--name "${AKS_USER_NODEPOOL_NAME}" >/dev/null 2>&1; then
echo "Node pool ${AKS_USER_NODEPOOL_NAME} already exists; skipping add.";
else
az aks nodepool add \
--cluster-name "${AKS_CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--name "${AKS_USER_NODEPOOL_NAME}" \
--node-count "${AKS_USER_NODE_COUNT}" \
--node-vm-size "${AKS_NODE_VM_SIZE}" \
--no-wait
az aks nodepool wait \
--cluster-name "${AKS_CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--name "${AKS_USER_NODEPOOL_NAME}" \
--created
fi
fi
Récupérer les informations d’identification du cluster
Fusionnez akS kubeconfig dans le contexte local et vérifiez que tous les nœuds sont accessibles.
az aks get-credentials \
--name "${AKS_CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--overwrite-existing
kubectl get nodes -o wide
Attacher ACR au cluster AKS
Accordez au cluster AKS l'autorisation d'extraire les images de l’ACR provisionné pour que les déploiements futurs puissent accéder à vos images de conteneur.
az aks update \
--name "${AKS_CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--attach-acr "${ACR_NAME}" \
--output table
Vérification
Vérifiez que le cluster AKS existe et répond aux requêtes de base kubectl avant de passer aux étapes de déploiement en aval. Commencez par vérifier que le cluster AKS existe.
if ! az aks show \
--name "${AKS_CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--query "{name:name,provisioningState:provisioningState,location:location}" \
--output table; then
echo "AKS cluster '${AKS_CLUSTER_NAME}' not found in resource group '${RESOURCE_GROUP}'."
else
echo "AKS cluster '${AKS_CLUSTER_NAME}' exists in resource group '${RESOURCE_GROUP}'."
fi
Si le cluster AKS a été créé, vous verrez quelque chose comme suit :
AKS cluster ${AKS_CLUSTER_NAME} exists in resource group ${RESOURCE_GROUP}.
Ensuite, vérifiez qu’elle kubectl est correctement configurée :
kubectl cluster-info
Cette commande génère l’état du cluster actuel, comme suit :
Kubernetes control plane is running at ...
CoreDNS is running at https://...
Metrics-server is running at https://...
Enfin, vérifiez qu’il existe à la fois des nœuds système et utilisateur disponibles :
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.labels.agentpool}{"\n"}{end}' |
sort |
uniq -c
Cela génère un nombre de nœuds, comme suit :
1 system
1 user
Résumé : Validé que le cluster AKS est présent, sain et accessible via kubectl dans le contexte actuel.
Résumé
Le groupe de ressources, le registre de conteneurs, le cluster AKS, le pool de nœuds facultatif et l'attachement du registre sont validés, laissant le cluster prêt pour toutes les charges de travail conteneurisées.
Étapes suivantes
-
docs/OpenWebSearch_On_AKS.mdContinuer à déployer KMCP et le serveur MCP - Configurer des attributions de rôles ou des stratégies réseau spécifiques à votre posture de sécurité
- Intégrer Azure Monitor ou Log Analytics pour une visibilité opérationnelle
- Exécuter des commandes de nettoyage d’infrastructure après l’expérimentation pour gérer les coûts