Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här artikeln etablerar du de grundläggande Azure-resurser som krävs för en produktionsklar AKS-distribution. Den här artikeln validerar Azure-åtkomst, skapar en resursgrupp, upprättar ett Azure Container Registry (ACR), distribuerar ett AKS-baslinjekluster, lägger till ytterligare en nodpool för användararbetsbelastningar och ger klustret behörighet att hämta från ACR. Alla kommandon förlitar sig på parameterbaserade miljövariabler så att arbetsflödet förblir repeterbart mellan regioner och prenumerationer.
Förutsättningar
Du behöver följande verktyg och kontoåtkomst innan du kör guiden.
az login Se till att du är autentiserad till Azure och har tillräcklig behörighet för att skapa resursgrupper, containerregister och AKS-kluster.
- Azure-prenumeration med kvot för den valda regionen
- Azure CLI (
az) med ägar- eller deltagarrättigheter - kubectl konfigurerad lokalt för klusteråtkomst
- jq (valfritt) för parsning av JSON-utdata under verifiering
Kör följande kommandon för att bekräfta att du har alla nödvändiga CLI-verktyg och Azure-åtkomst:
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)"
Konfigurera miljön
Här definierar du alla miljövariabler som används i etableringsstegen. Tidsstämpeln HASH används för att hålla resursnamnen unika under upprepade körningar. Kluster och register har som standard ett minimalt proof-of-concept-fotavtryck, men du kan justera dem efter behov.
Följande kommandon upprättar Azure-omfång, AKS-storlek och ACR-namngivningskonventioner för provisioneringssekvensen, oavsett nedströms arbetsbelastningar.
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}"
Verifiera miljövariabelvärden
Granska den effektiva konfigurationen innan du skapar resurser. Kör blocket igen efter eventuella justeringar för att säkerställa att de aktiva värdena är korrekta för målprenumerationen och -regionen.
Använd följande kommandon för att skriva ut de aktiva parametrarna för att verifiera namngivning, storlek och regionval.
: "${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
Steg
Kör varje steg sekventiellt. Varje underavsnitt innehåller syfte, kommandon och en sammanfattning för att bekräfta förväntade resultat.
Kontrollera Azure-prenumerationskontexten
Verifiera den aktiva Azure-prenumerationen och se till att de resursprovidrar som krävs för AKS- och ACR-åtgärder är registrerade.
az account show --query id -o tsv
az provider register --namespace Microsoft.ContainerService
az provider register --namespace Microsoft.ContainerRegistry
Skapa en resursgrupp
Etablera en dedikerad resursgrupp för att isolera AKS-klustret, registret och stödinfrastrukturen för dina arbetsbelastningar.
az group create \
--name "${RESOURCE_GROUP}" \
--location "${LOCATION}" \
--output table
Etablera Azure Container Registry
Skapa ett Azure Container Registry för lagring av containeravbildningar och autentisera den lokala Docker-daemonen för att skicka avbildningar.
az acr create \
--name "${ACR_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--location "${LOCATION}" \
--sku Basic \
--output table
az acr login --name "${ACR_NAME}"
Skapa AKS-klustret
Distribuera AKS-klustret för att hantera dina belastningar. Skydda mot att återanvända ett befintligt klusternamn genom att kontrollera innan du skapar det.
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
Lägg till valfri användarnodpool
Etablera ytterligare en nodpool när den begärs. Kommandot lägg till körs asynkront för att undvika CLI-timeouter. kommandot wait spårar Azures förlopp. Skriptet kontrollerar först om poolen redan finns för att förhindra duplicerade namnfel.
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
Hämta klusterautentiseringsuppgifter
Sammanfoga AKS-kubeconfig i den lokala kontexten och kontrollera att alla noder kan nås.
az aks get-credentials \
--name "${AKS_CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--overwrite-existing
kubectl get nodes -o wide
Koppla ACR till AKS-kluster
Ge AKS-klustret behörighet att hämta avbildningar från den etablerade ACR:en så att framtida distributioner kan komma åt dina containeravbildningar.
az aks update \
--name "${AKS_CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--attach-acr "${ACR_NAME}" \
--output table
Verification
Bekräfta att AKS-klustret finns och svarar på grundläggande kubectl frågor innan du fortsätter till nedströmsdistributionsstegen. Börja med att se till att AKS-klustret finns.
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
Om AKS-klustret har skapats ser du ungefär så här:
AKS cluster ${AKS_CLUSTER_NAME} exists in resource group ${RESOURCE_GROUP}.
Kontrollera sedan att är kubectl korrekt konfigurerat:
kubectl cluster-info
Det här kommandot visar statusen för det aktuella klustret, ungefär så här:
Kubernetes control plane is running at ...
CoreDNS is running at https://...
Metrics-server is running at https://...
Se slutligen till att det finns både system- och användarnoder tillgängliga:
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.labels.agentpool}{"\n"}{end}' |
sort |
uniq -c
Då matas antalet noder ut, ungefär så här:
1 system
1 user
Sammanfattning: Verifierade att AKS-klustret finns, är i gott skick och kan nås via kubectl i det aktuella sammanhanget.
Sammanfattning
Resursgruppen, containerregistret, AKS-klustret, den valfria nodpoolen och den bifogade registerbilagan verifieras, vilket gör klustret redo för alla containerbaserade arbetsbelastningar.
Nästa steg
- Fortsätt med
docs/OpenWebSearch_On_AKS.mdför att distribuera KMCP och MCP-servern - Konfigurera rolltilldelningar eller nätverksprinciper som är specifika för din säkerhetsstatus
- Integrera Azure Monitor eller Log Analytics för driftssynlighet
- Köra infrastrukturrensningskommandon efter experimentering för att hantera kostnader