Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel richt u de belangrijkste Azure-resources in die nodig zijn voor een AKS-implementatie die gereed is voor productie. Dit artikel valideert Azure-toegang, maakt een resourcegroep, brengt een Azure Container Registry (ACR) tot stand, implementeert een AKS-basislijncluster, voegt eventueel een extra knooppuntgroep toe voor gebruikersworkloads en verleent het cluster toestemming om uit ACR te halen. Alle opdrachten zijn afhankelijk van geparameteriseerde omgevingsvariabelen, zodat de werkstroom herhaalbaar blijft tussen regio's en abonnementen.
Vereiste voorwaarden
U hebt de volgende hulpprogramma's en toegang tot accounts nodig voordat u de handleiding uitvoert. Zorg ervoor dat u geverifieerd bent bij Azure met behulp van az login en dat u voldoende machtigingen heeft om resourcegroepen, containerregisters en AKS-clusters te maken.
- Azure-abonnement met quotum voor de geselecteerde regio
- Azure CLI (
az) met eigenaars- of inzenderrechten - kubectl lokaal geconfigureerd voor clustertoegang
- jq (optioneel) voor het parseren van JSON-uitvoer tijdens verificatie
Voer de volgende opdrachten uit om te bevestigen dat u beschikt over alle benodigde CLI-hulpprogramma's en Toegang tot 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)"
De omgeving instellen
Hier definieert u alle omgevingsvariabelen die in de inrichtingsstappen worden gebruikt. De HASH tijdstempel houdt resourcenamen uniek tijdens herhaalde uitvoeringen. De standaardinstellingen voor clusters en registers zijn gericht op een minimale proof-of-concept footprint, maar u kunt deze indien nodig aanpassen.
Met de volgende opdrachten worden Azure-scopes, AKS-schaalgrootten en ACR-naamconventies voor het inrichtingsproces vastgesteld, ongeacht de onveranderlijkheid van downstreamworkloads.
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}"
Waarden voor omgevingsvariabelen controleren
Controleer de effectieve configuratie voordat u resources maakt. Voer het blok opnieuw uit nadat er aanpassingen zijn aangebracht om ervoor te zorgen dat de actieve waarden juist zijn voor het doelabonnement en de doelregio.
Gebruik de volgende commando's om de actieve parameters weer te geven en namen, afmetingen en regionale keuzes te valideren.
: "${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
Steps
Voer elke stap opeenvolgend uit. Elke subsectie bevat doel, opdrachten en een samenvatting om de verwachte resultaten te bevestigen.
De context van het Azure-abonnement controleren
Controleer het actieve Azure-abonnement en zorg ervoor dat de resourceproviders die zijn vereist voor AKS- en ACR-bewerkingen, zijn geregistreerd.
az account show --query id -o tsv
az provider register --namespace Microsoft.ContainerService
az provider register --namespace Microsoft.ContainerRegistry
Een brongroep maken
Richt een toegewezen resourcegroep in om het AKS-cluster, het register en de ondersteunende infrastructuur voor uw workloads te isoleren.
az group create \
--name "${RESOURCE_GROUP}" \
--location "${LOCATION}" \
--output table
Azure Container Registry inrichten
Maak een Azure Container Registry voor het opslaan van containerinstallatiekopieƫn en verifieer de lokale Docker-daemon om installatiekopieƫn te pushen.
az acr create \
--name "${ACR_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--location "${LOCATION}" \
--sku Basic \
--output table
az acr login --name "${ACR_NAME}"
Het AKS-cluster maken
Implementeer het AKS-cluster om uw workloads te hosten. Beveilig het hergebruik van een bestaande clusternaam door te controleren voordat u deze gaat maken.
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
Optionele gebruikersknooppuntgroep toevoegen
Richt een extra knooppuntgroep in wanneer dit wordt aangevraagd. De opdracht toevoegen wordt asynchroon uitgevoerd om CLI-time-outs te voorkomen; met de wachtopdracht wordt de voortgang van Azure bijgehouden. Het script controleert eerst of de pool al bestaat om dubbele naamfouten te voorkomen.
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
Clusterreferenties ophalen
Voeg de AKS-kubeconfig samen in de lokale context en controleer of alle knooppunten bereikbaar zijn.
az aks get-credentials \
--name "${AKS_CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--overwrite-existing
kubectl get nodes -o wide
ACR koppelen aan AKS-cluster
Geef het AKS-cluster toestemming om afbeeldingen op te halen uit de geprovisioneerde ACR, zodat toekomstige implementaties toegang hebben tot uw containerafbeeldingen.
az aks update \
--name "${AKS_CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--attach-acr "${ACR_NAME}" \
--output table
Verification
Controleer of het AKS-cluster bestaat en reageert op basisquery's kubectl voordat u verdergaat met downstreamimplementatiestappen. Begin door ervoor te zorgen dat het AKS-cluster bestaat.
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
Als het AKS-cluster is gemaakt, ziet u iets als het volgende:
AKS cluster ${AKS_CLUSTER_NAME} exists in resource group ${RESOURCE_GROUP}.
Controleer vervolgens of deze kubectl juist is geconfigureerd:
kubectl cluster-info
Met deze opdracht wordt de status van het huidige cluster uitgevoerd, bijvoorbeeld:
Kubernetes control plane is running at ...
CoreDNS is running at https://...
Metrics-server is running at https://...
Controleer ten slotte of er zowel systeem- als gebruikersknooppunten beschikbaar zijn:
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.labels.agentpool}{"\n"}{end}' |
sort |
uniq -c
Hiermee wordt een totaal aantal knooppunten afgedrukt, bijvoorbeeld:
1 system
1 user
Samenvatting: Gevalideerd dat het AKS-cluster aanwezig is, in orde en bereikbaar is via kubectl in de huidige context.
Samenvatting
De resourcegroep, het containerregister, het AKS-cluster, de optionele knooppuntgroep en de registerbijlage worden gevalideerd, zodat het cluster gereed is voor alle containerworkloads.
Volgende stappen
- Ga verder met
docs/OpenWebSearch_On_AKS.mdom KMCP en de MCP-server te implementeren - Roltoewijzingen of netwerkbeleid configureren dat specifiek is voor uw beveiligingspostuur
- Azure Monitor of Log Analytics integreren voor operationele zichtbaarheid
- Opdrachten voor het opschonen van infrastructuur uitvoeren na experimenten om kosten te beheren