Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam artikel ini, Anda menyediakan sumber daya Azure inti yang diperlukan untuk penyebaran AKS yang siap untuk produksi. Artikel ini memvalidasi akses Azure, membuat grup sumber daya, mendirikan Azure Container Registry (ACR), menyebarkan kluster AKS dasar, secara opsional menambahkan kumpulan simpul tambahan untuk beban kerja pengguna, dan memberikan izin kepada kluster untuk mengambil dari ACR. Semua perintah mengandalkan variabel lingkungan berparameter sehingga alur kerja tetap dapat diulang di seluruh wilayah dan langganan.
Prasyarat
Anda memerlukan alat dan akses akun berikut sebelum menjalankan panduan. Pastikan Anda diautentikasi ke Azure menggunakan az login dan memiliki izin yang memadai untuk membuat grup sumber daya, registri kontainer, dan kluster AKS.
- Langganan Azure dengan kuota untuk wilayah yang dipilih
- Azure CLI (
az) dengan hak Pemilik atau Kontributor - kubectl dikonfigurasi secara lokal untuk akses kluster
- jq (opsional) untuk mengurai output JSON selama verifikasi
Jalankan perintah berikut untuk mengonfirmasi bahwa Anda memiliki semua alat CLI dan akses Azure yang diperlukan:
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)"
Menyiapkan lingkungan kerja
Di sini, Anda menentukan semua variabel lingkungan yang digunakan di seluruh langkah-langkah provisi. Tanda HASH waktu menjaga nama sumber daya tetap unik selama eksekusi berulang. Pengaturan bawaan kluster dan registri menargetkan penerapan bukti konsep yang minimal, tetapi Anda dapat menyesuaikannya sesuai kebutuhan.
Perintah berikut menetapkan konvensi lingkup Azure, ukuran AKS, dan penamaan ACR untuk urutan provisi terlepas dari beban kerja hilir.
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}"
Memverifikasi nilai variabel lingkungan
Tinjau konfigurasi efektif sebelum membuat sumber daya. Jalankan kembali blok setelah penyesuaian apa pun untuk memastikan nilai aktif sudah benar untuk langganan dan wilayah target.
Gunakan perintah berikut untuk menyematkan parameter aktif untuk memvalidasi penamaan, ukuran, dan pilihan regional.
: "${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
Jalankan setiap langkah secara berurutan. Setiap sub bagian mencakup tujuan, perintah, dan ringkasan untuk mengonfirmasi hasil yang diharapkan.
Periksa konteks langganan Azure
Verifikasi langganan Azure aktif dan pastikan penyedia sumber daya yang diperlukan untuk operasi AKS dan ACR terdaftar.
az account show --query id -o tsv
az provider register --namespace Microsoft.ContainerService
az provider register --namespace Microsoft.ContainerRegistry
Membuat grup sumber daya
Provisikan grup sumber daya khusus untuk mengisolasi kluster AKS, registri, dan infrastruktur pendukung untuk beban kerja Anda.
az group create \
--name "${RESOURCE_GROUP}" \
--location "${LOCATION}" \
--output table
Menyediakan Azure Container Registry
Buat Azure Container Registry untuk menyimpan citra kontainer dan autentikasi daemon Docker lokal agar dapat mengunggah citra.
az acr create \
--name "${ACR_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--location "${LOCATION}" \
--sku Basic \
--output table
az acr login --name "${ACR_NAME}"
Membuat kluster AKS
Sebarkan kluster AKS untuk menghosting beban kerja Anda. Jaga agar tidak menggunakan kembali nama kluster yang ada dengan memeriksa sebelum pembuatan.
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
Menambahkan kumpulan simpul pengguna opsional
Siapkan kumpulan node tambahan saat diminta. Perintah tambahkan berjalan secara asinkron untuk menghindari batas waktu CLI; perintah tunggu melacak kemajuan Azure. Skrip pertama-tama memeriksa apakah kumpulan sudah ada untuk mencegah kesalahan nama duplikat.
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
Mengambil kredensial kluster
Gabungkan kubeconfig AKS ke dalam konteks lokal dan verifikasi bahwa semua simpul dapat dijangkau.
az aks get-credentials \
--name "${AKS_CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--overwrite-existing
kubectl get nodes -o wide
Lampirkan ACR ke kluster AKS
Berikan izin kluster AKS untuk menarik gambar dari ACR yang disediakan sehingga penyebaran di masa mendatang dapat mengakses gambar kontainer Anda.
az aks update \
--name "${AKS_CLUSTER_NAME}" \
--resource-group "${RESOURCE_GROUP}" \
--attach-acr "${ACR_NAME}" \
--output table
Verifikasi
Konfirmasikan kluster AKS ada dan merespons kueri dasar kubectl sebelum melanjutkan langkah-langkah penyebaran hilir. Mulailah dengan memastikan kluster AKS ada.
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
Jika kluster AKS telah dibuat, Anda akan melihat sesuatu seperti:
AKS cluster ${AKS_CLUSTER_NAME} exists in resource group ${RESOURCE_GROUP}.
Selanjutnya, periksa apakah kubectl dikonfigurasi dengan benar:
kubectl cluster-info
Perintah ini akan menghasilkan status kluster saat ini, seperti:
Kubernetes control plane is running at ...
CoreDNS is running at https://...
Metrics-server is running at https://...
Terakhir, pastikan bahwa ada simpul sistem dan pengguna yang tersedia:
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.labels.agentpool}{"\n"}{end}' |
sort |
uniq -c
Ini akan menghasilkan hitungan simpul, seperti:
1 system
1 user
Ringkasan: Divalidasi bahwa kluster AKS ada, sehat, dan dapat dijangkau melalui kubectl dalam konteks saat ini.
Ringkasan
Grup sumber daya, registri kontainer, kluster AKS, kumpulan simpul opsional, dan lampiran registri divalidasi, membuat kluster siap untuk beban kerja kontainer apa pun.
Langkah Selanjutnya
- Lanjutkan dengan
docs/OpenWebSearch_On_AKS.mduntuk menyebarkan KMCP dan server MCP - Konfigurasikan penetapan peran atau kebijakan jaringan yang spesifik untuk postur keamanan Anda
- Mengintegrasikan Azure Monitor atau Analitik Log untuk visibilitas operasional
- Jalankan perintah pembersihan infrastruktur setelah eksperimen untuk mengelola biaya