Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, üretime hazır AKS dağıtımı için gereken temel Azure kaynaklarını sağlarsınız. Bu makale Azure erişimini doğrular, kaynak grubu oluşturur, Azure Container Registry (ACR) oluşturur, temel AKS kümesi dağıtır, isteğe bağlı olarak kullanıcı iş yükleri için ek düğüm havuzu ekler ve kümeye ACR'den çekme izni verir. Tüm komutlar, iş akışının bölgeler ve abonelikler arasında yinelenebilir kalması için parametreli ortam değişkenlerini kullanır.
Önkoşullar
Kılavuzu çalıştırmadan önce aşağıdaki araçlara ve hesap erişimine ihtiyacınız vardır. Kullanarak az login Azure'da kimliğinizin doğrulanmış olduğundan ve kaynak grupları, kapsayıcı kayıt defterleri ve AKS kümeleri oluşturmak için yeterli izinlere sahip olduğunuzdan emin olun.
- Seçili bölge için kotalı Azure aboneliği
- Sahip veya Katkıda Bulunan haklarına sahip Azure CLI (
az) - kubectl, kümeye erişim için yerel olarak yapılandırıldı
- Doğrulama sırasında JSON çıktısını ayrıştırma için jq (isteğe bağlı)
Gerekli tüm CLI araçlarına ve Azure erişimine sahip olduğunuzu onaylamak için aşağıdaki komutları çalıştırın:
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)"
Ortamı ayarlama
Burada, sağlama adımları boyunca kullanılan tüm ortam değişkenlerini tanımlarsınız.
HASH zaman damgası, yinelenen yürütmeler sırasında kaynak adlarının benzersiz olmasını sağlar. Küme ve kayıt defteri varsayılanları en küçük kavram kanıtı ayak izi oluşturmayı hedefler, fakat bunları ihtiyacınıza göre ayarlayabilirsiniz.
Aşağıdaki komutlar, aşağı akış iş yüklerinden bağımsız olarak sağlama dizisi için Azure kapsamı, AKS boyutlandırma ve ACR adlandırma kuralları oluşturur.
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}"
Ortam değişkeni değerlerini doğrulama
Kaynakları oluşturmadan önce geçerli yapılandırmayı gözden geçirin. Etkin değerlerin hedef abonelik ve bölge için doğru olduğundan emin olmak için tüm ayarlamalardan sonra bloğu yeniden çalıştırın.
Adlandırma, boyutlandırma ve bölgesel seçimleri doğrulamak üzere etkin parametreleri sabitlemek için aşağıdaki komutları kullanın.
: "${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
Her adımı sırayla yürütür. Her alt bölüm beklenen sonuçları onaylamak için amaç, komutlar ve bir özet içerir.
Azure aboneliği bağlamını denetleme
Etkin Azure aboneliğini doğrulayın ve AKS ve ACR işlemleri için gereken kaynak sağlayıcılarının kayıtlı olduğundan emin olun.
az account show --query id -o tsv
az provider register --namespace Microsoft.ContainerService
az provider register --namespace Microsoft.ContainerRegistry
Bir kaynak grubu oluşturun
İş yükleriniz için AKS kümesini, kayıt defterini ve destekleyici altyapıyı yalıtmak için ayrılmış bir kaynak grubu sağlayın.
az group create \
--name "${RESOURCE_GROUP}" \
--location "${LOCATION}" \
--output table
Azure Container Registry'yi sağlama
Kapsayıcı görüntülerini depolamak için bir Azure Container Registry oluşturun ve görüntüleri göndermek için yerel Docker daemon'unun kimliğini doğrulayın.
az acr create \
--name "${ACR_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--location "${LOCATION}" \
--sku Basic \
--output table
az acr login --name "${ACR_NAME}"
AKS kümesini oluşturma
İş yüklerinizi barındırmak için AKS kümesini dağıtın. Oluşturmadan önce denetleyerek mevcut küme adını yeniden kullanıma karşı koruma.
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
İsteğe bağlı kullanıcı düğümü havuzu ekleme
İstendiğinde ek bir düğüm havuzu sağlayın. ADD komutu, CLI zaman aşımlarını önlemek için zaman uyumsuz olarak çalışır; wait komutu Azure'ın ilerleme durumunu izler. Betik, yinelenen ad hatalarını önlemek için önce havuzun zaten var olup olmadığını denetler.
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
Küme kimlik bilgilerini alma
AKS kubeconfig öğesini yerel bağlamla birleştirin ve tüm düğümlere ulaşılabilir olduğunu doğrulayın.
az aks get-credentials \
--name "${AKS_CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--overwrite-existing
kubectl get nodes -o wide
AKS kümesine ACR ekleme
Gelecekteki dağıtımların kapsayıcı görüntülerinize erişebilmesi için AKS kümesine sağlanan ACR'den görüntü çekme izni verin.
az aks update \
--name "${AKS_CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--attach-acr "${ACR_NAME}" \
--output table
Verification
Aşağı akış dağıtım adımlarına devam etmeden önce AKS kümesinin mevcut olduğunu ve temel kubectl sorgulara yanıt verdiğini onaylayın. AKS kümesinin mevcut olduğundan emin olarak başlayın.
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
AKS kümesi oluşturulduysa şunun gibi bir şey görürsünüz:
AKS cluster ${AKS_CLUSTER_NAME} exists in resource group ${RESOURCE_GROUP}.
Ardından, doğru yapılandırıldığından kubectl denetleyin:
kubectl cluster-info
Bu komut, geçerli kümenin durumunu benzeri bir şekilde çıktı olarak verir:
Kubernetes control plane is running at ...
CoreDNS is running at https://...
Metrics-server is running at https://...
Son olarak, hem sistem hem de kullanıcı düğümlerinin kullanılabilir olduğundan emin olun:
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.labels.agentpool}{"\n"}{end}' |
sort |
uniq -c
Bu, aşağıdaki gibi bir düğüm sayısı oluşturur:
1 system
1 user
Özet: AKS kümesinin mevcut, sağlıklı ve geçerli bağlamda kubectl aracılığıyla erişilebilir olduğu doğrulandı.
Özet
Kaynak grubu, kapsayıcı kayıt defteri, AKS kümesi, isteğe bağlı düğüm havuzu ve kayıt defteri eki doğrulanır ve küme kapsayıcılı iş yükleri için hazır bırakılır.
Sonraki Adımlar
-
docs/OpenWebSearch_On_AKS.mdKMCP ile MCP sunucusunun dağıtımına geçin - Güvenlik duruşunuza özgü rol atamalarını veya ağ ilkelerini yapılandırma
- Operasyonel görünürlük için Azure İzleyici veya Log Analytics'i tümleştirme
- Maliyetleri yönetmek için denemeden sonra altyapı temizleme komutlarını çalıştırma