Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel stellen Sie die wichtigsten Azure-Ressourcen bereit, die für eine produktionsfähige AKS-Bereitstellung erforderlich sind. In diesem Artikel wird der Azure-Zugriff überprüft, eine Ressourcengruppe erstellt, eine Azure Container Registry (ACR) eingerichtet, ein Basis-AKS-Cluster bereitgestellt, optional ein zusätzlicher Knotenpool für Benutzerworkloads hinzugefügt und der Clusterberechtigung zum Abrufen von ACR gewährt. Alle Befehle basieren auf parametrisierten Umgebungsvariablen, sodass der Workflow in allen Regionen und Abonnements wiederholbar bleibt.
Voraussetzungen
Sie benötigen die folgenden Tools und den Kontozugriff, bevor Sie das Handbuch ausführen. Stellen Sie sicher, dass Sie mit az login bei Azure authentifiziert sind und über ausreichende Berechtigungen verfügen, um Ressourcengruppen, Container Registries und AKS-Cluster zu erstellen.
- Azure-Abonnement mit Kontingent für die ausgewählte Region
- Azure CLI (
az) mit Besitzer- oder Mitwirkendenrechten - kubectl für den Clusterzugriff lokal konfiguriert
- jq (optional) zum Analysieren der JSON-Ausgabe während der Überprüfung
Führen Sie die folgenden Befehle aus, um zu bestätigen, dass Sie über alle erforderlichen CLI-Tools und Azure-Zugriff verfügen:
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)"
Einrichten der Umgebung
Hier definieren Sie alle Umgebungsvariablen, die während der Bereitstellungsschritte verwendet werden. Der HASH Zeitstempel sorgt dafür, dass Ressourcennamen bei wiederholten Ausführungen einzigartig bleiben. Standardwerte für Cluster und Registrierung zielen auf einen minimalen Proof-of-Concept-Footprint ab, aber Sie können sie bei Bedarf anpassen.
Die folgenden Befehle richten Azure-Bereichs-, AKS-Größen- und ACR-Benennungskonventionen für die Bereitstellungssequenz unabhängig von nachgelagerten Workloads ein.
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}"
Überprüfen von Umgebungsvariablenwerten
Überprüfen Sie die effektive Konfiguration, bevor Sie Ressourcen erstellen. Führen Sie den Block nach allen Anpassungen erneut aus, um sicherzustellen, dass die aktiven Werte für das Zielabonnement und die Zielregion korrekt sind.
Verwenden Sie die folgenden Befehle, um die aktiven Parameter einzugeben, um die Benennung, die Größe und die Wahl der Region zu überprüfen.
: "${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
Führen Sie jeden Schritt sequenziell aus. Jeder Unterabschnitt enthält Zweck, Befehle und eine Zusammenfassung, um die erwarteten Ergebnisse zu bestätigen.
Überprüfen des Azure-Abonnementkontexts
Überprüfen Sie das aktive Azure-Abonnement, und stellen Sie sicher, dass die für AKS- und ACR-Vorgänge erforderlichen Ressourcenanbieter registriert sind.
az account show --query id -o tsv
az provider register --namespace Microsoft.ContainerService
az provider register --namespace Microsoft.ContainerRegistry
Erstellen einer Ressourcengruppe
Stellen Sie eine dedizierte Ressourcengruppe bereit, um den AKS-Cluster, die Registrierung und die unterstützende Infrastruktur für Ihre Workloads zu isolieren.
az group create \
--name "${RESOURCE_GROUP}" \
--location "${LOCATION}" \
--output table
Bereitstellen der Azure-Containerregistrierung
Erstellen Sie eine Azure Container-Registrierung zum Speichern von Containerimages und authentifizieren Sie den lokalen Docker-Daemon, um Images zu pushen.
az acr create \
--name "${ACR_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--location "${LOCATION}" \
--sku Basic \
--output table
az acr login --name "${ACR_NAME}"
Erstellen des AKS-Clusters
Stellen Sie den AKS-Cluster bereit, um Ihre Workloads zu hosten. Schützen Sie sich vor dem Erneuten Verwenden eines vorhandenen Clusternamens, indem Sie vor der Erstellung überprüfen.
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
Hinzufügen eines optionalen Benutzerknotenpools
Stellen Sie auf Anfrage einen zusätzlichen Knotenpool bereit. Der Befehl zum Hinzufügen wird asynchron ausgeführt, um CLI-Timeouts zu vermeiden. Der Wartebefehl verfolgt den Fortschritt von Azure. Das Skript überprüft zunächst, ob der Pool bereits vorhanden ist, um Doppelte Namensfehler zu vermeiden.
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
Abrufen von Clusteranmeldeinformationen
Integrieren Sie die AKS kubeconfig in den lokalen Kontext und stellen Sie sicher, dass alle Knoten erreichbar sind.
az aks get-credentials \
--name "${AKS_CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--overwrite-existing
kubectl get nodes -o wide
Fügen Sie ACR an das AKS-Cluster an
Erteilen Sie der AKS-Clusterberechtigung, um Images aus dem bereitgestellten ACR abzurufen, damit zukünftige Bereitstellungen auf Ihre Containerimages zugreifen können.
az aks update \
--name "${AKS_CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--attach-acr "${ACR_NAME}" \
--output table
Verifizierung
Vergewissern Sie sich, dass der AKS-Cluster vorhanden ist und auf grundlegende kubectl Abfragen antwortet, bevor Sie mit den nachgeschalteten Bereitstellungsschritten fortfahren. Stellen Sie zunächst sicher, dass der AKS-Cluster vorhanden ist.
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
Wenn der AKS-Cluster erstellt wurde, wird folgendes angezeigt:
AKS cluster ${AKS_CLUSTER_NAME} exists in resource group ${RESOURCE_GROUP}.
Überprüfen Sie als Nächstes, dass kubectl ordnungsgemäß konfiguriert ist:
kubectl cluster-info
Dieser Befehl gibt den Status des aktuellen Clusters aus, z. B.:
Kubernetes control plane is running at ...
CoreDNS is running at https://...
Metrics-server is running at https://...
Stellen Sie abschließend sicher, dass sowohl System- als auch Benutzerknoten verfügbar sind:
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.labels.agentpool}{"\n"}{end}' |
sort |
uniq -c
Dadurch wird eine Anzahl von Knoten ausgegeben, z. B.:
1 system
1 user
Zusammenfassung: Überprüft, dass der AKS-Cluster vorhanden, fehlerfrei und erreichbar über Kubectl im aktuellen Kontext ist.
Zusammenfassung
Die Ressourcengruppe, die Container-Registry, der AKS-Cluster, der optionale Knotenpool und die Registry-Anbindung werden validiert, sodass der Cluster für alle containerisierten Workloads bereit ist.
Nächste Schritte
- Fahren Sie mit
docs/OpenWebSearch_On_AKS.mdfort, um KMCP und den MCP-Server bereitzustellen - Konfigurieren von Rollenzuweisungen oder Netzwerkrichtlinien speziell für Ihren Sicherheitsstatus
- Integrieren von Azure Monitor oder Log Analytics zur betrieblichen Sichtbarkeit
- Ausführen von Bereinigungsbefehlen für die Infrastruktur nach der Experimentierphase zur Kostenverwaltung