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.
Azure Kubernetes Service (AKS) merupakan layanan Kube terkelola yang memungkinkan Anda menyebarkan dan mengelola kluster dengan cepat. Dalam artikel ini, Anda menggunakan Azure CLI untuk menyebarkan kluster AKS yang menjalankan kontainer Windows Server. Anda juga menyebarkan aplikasi sampel ASP.NET dalam kontainer Server Windows ke kluster.
Catatan
Untuk memulai provisi kluster AKS dengan cepat, artikel ini menyertakan langkah-langkah untuk menyebarkan kluster dengan pengaturan default hanya untuk tujuan evaluasi. Sebelum menyebarkan kluster siap produksi, kami sarankan Anda membiasakan diri dengan arsitektur referensi dasar kami untuk mempertimbangkan bagaimana kluster tersebut selaras dengan kebutuhan bisnis Anda.
Sebelum Anda mulai
Panduan memulai cepat ini mengasumsikan pemahaman dasar tentang konsep Kubernetes. Untuk informasi lebih, lihat konsep inti Kubernetes untuk Azure Kubernetes Service (AKS).
- Jika Anda tidak memiliki akun Azure, buat akun gratis sebelum memulai.
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai menggunakan Azure Cloud Shell.
Jika Anda lebih suka menjalankan perintah referensi CLI secara lokal, instal Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah login az. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Mengautentikasi ke Azure menggunakan Azure CLI.
Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan dan mengelola ekstensi dengan Azure CLI.
Jalankan versi az untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan az upgrade.
- Artikel ini memerlukan versi 2.0.64 atau yang lebih baru dari Azure CLI. Jika Anda menggunakan Azure Cloud Shell, versi terbaru sudah diinstal di sana.
- Pastikan identitas yang Anda gunakan untuk membuat kluster Anda memiliki izin minimum yang sesuai. Untuk informasi selengkapnya tentang akses dan identitas AKS, lihat Opsi akses dan identitas untuk Azure Kubernetes Service (AKS).
- Jika Anda memiliki beberapa langganan Azure, pilih ID langganan yang sesuai tempat sumber daya harus ditagih menggunakan
az account setperintah . Untuk informasi selengkapnya, lihat Cara mengelola langganan Azure – Azure CLI. - Jika Anda menggunakan
--os-sku Windows2025, Anda perlu menginstal perluasanaks-previewdan mendaftarkan penanda pratinjau. Versi minimumnya adalah 18.0.0b40.
aks-preview Menginstal ekstensi
Penting
Fitur pratinjau AKS tersedia atas dasar layanan mandiri dan pendaftaran sukarela. Pratinjau disediakan "apa adanya" dan "sebagaimana tersedia," dan pratinjau tersebut dikecualikan dari perjanjian tingkat layanan (SLA) serta garansi terbatas. Pratinjau AKS sebagian didukung oleh dukungan pelanggan berdasarkan upaya terbaik yang dapat dilakukan. Dengan demikian, fitur-fitur ini tidak dimaksudkan untuk penggunaan produksi. Untuk informasi lebih lanjut, lihat artikel dukungan berikut ini:
-
aks-previewInstal ekstensi Azure CLI menggunakanaz extension addperintah .
az extension add --name aks-preview
- Perbarui ke versi terbaru ekstensi menggunakan
az extension updateperintah . Windows Server 2025 memerlukan minimal 18.0.0b40.
az extension update --name aks-preview
Daftarkan AksWindows2025Preview penanda fitur
- Daftarkan
AksWindows2025Previewbendera fitur menggunakan perintah [az feature register][az-feature-register].
az feature register --name AksWindows2025Preview --namespace Microsoft.ContainerService
- Verifikasi status pendaftaran menggunakan perintah [
az feature show][az-feature-show]. Dibutuhkan beberapa menit agar status menampilkan Terdaftar.
az feature show --name AksWindows2025Preview --namespace Microsoft.ContainerService
Saat status mencerminkan Terdaftar, perbarui pendaftaran penyedia layanan Microsoft.ContainerService menggunakan perintah [
az provider register][az-provider-register].az provider register --namespace Microsoft.ContainerService
Buat grup sumber daya
Grup sumber daya Azure adalah grup logis tempat sumber daya Azure disebarkan dan dikelola. Saat membuat grup sumber daya, Anda akan diminta untuk menentukan lokasi. Lokasi ini adalah tempat metadata grup sumber daya disimpan dan tempat sumber daya Anda berjalan di Azure jika Anda tidak menentukan wilayah lain selama pembuatan sumber daya.
Buat grup sumber daya menggunakan perintah
az group create. Contoh berikut membuat grup sumber daya bernama myResourceGroup di lokasi WestUS2 .export RANDOM_SUFFIX=$(openssl rand -hex 3) export REGION="canadacentral" export MY_RESOURCE_GROUP_NAME="myAKSResourceGroup$RANDOM_SUFFIX" az group create --name $MY_RESOURCE_GROUP_NAME --location $REGIONHasil:
{ "id": "/subscriptions/xxxxx-xxxxx-xxxxx-xxxxx/resourceGroups/myResourceGroupxxxxx", "location": "WestUS2", "managedBy": null, "name": "myResourceGroupxxxxx", "properties": { "provisioningState": "Succeeded" }, "tags": null, "type": "Microsoft.Resources/resourceGroups" }
Membuat kluster AKS
Di bagian ini, kami membuat kluster AKS dengan konfigurasi berikut:
- Kluster dikonfigurasi dengan dua simpul untuk memastikan kluster beroperasi dengan andal. Node adalah komputer virtual (VM) Azure yang menjalankan komponen node Kubernetes dan runtime kontainer.
- Parameter
--windows-admin-passworddan--windows-admin-usernamemengatur informasi masuk administrator untuk setiap simpul Server Windows pada kluster dan harus memenuhi persyaratan kata sandi Server Windows. - Kumpulan simpul menggunakan
VirtualMachineScaleSets.
Gunakan langkah-langkah berikut untuk membuat kluster AKS dengan Azure CLI:
Buat nama pengguna untuk digunakan sebagai informasi masuk admin untuk simpul Windows Server pada kluster Anda.
export WINDOWS_USERNAME="winadmin"Buat kata sandi untuk nama pengguna administrator yang Anda buat di langkah sebelumnya. Kata sandi harus minimal 14 karakter dan memenuhi persyaratan kompleksitas kata sandi Windows Server.
export WINDOWS_PASSWORD=$(echo "P@ssw0rd$(openssl rand -base64 10 | tr -dc 'A-Za-z0-9!@#$%^&*()' | cut -c1-6)")Buat kluster Anda dengan menggunakan perintah
az aks createdan tentukan parameter--windows-admin-usernameserta--windows-admin-password. Contoh perintah berikut membuat kluster menggunakan nilai dariWINDOWS_USERNAMEdanWINDOWS_PASSWORDAnda atur di perintah sebelumnya. Akhiran acak ditambahkan ke nama kluster untuk keunikan.export MY_AKS_CLUSTER="myAKSCluster$RANDOM_SUFFIX" az aks create \ --resource-group $MY_RESOURCE_GROUP_NAME \ --name $MY_AKS_CLUSTER \ --node-count 2 \ --enable-addons monitoring \ --generate-ssh-keys \ --windows-admin-username $WINDOWS_USERNAME \ --windows-admin-password $WINDOWS_PASSWORD \ --vm-set-type VirtualMachineScaleSets \ --network-plugin azureSetelah beberapa menit, perintah selesai dan kembalikan informasi berformat JSON tentang kluster. Terkadang, kluster dapat memakan waktu lebih dari beberapa menit untuk dipersiapkan. Berikan waktu hingga 10 menit untuk penyediaan.
Jika Anda mendapatkan kesalahan validasi kata sandi, dan kata sandi yang Anda tetapkan memenuhi persyaratan panjang dan kompleksitas, coba buat grup sumber daya Anda di wilayah lain. Kemudian coba buat kluster dengan grup sumber daya baru.
Jika Anda tidak menentukan nama pengguna dan kata sandi administrator saat membuat kumpulan simpul, nama pengguna diatur ke azureuser dan kata sandi diatur ke nilai acak. Untuk informasi selengkapnya, lihat Tanya Jawab Umum Windows Server
Anda tidak dapat mengubah nama pengguna administrator, tetapi Anda dapat mengubah kata sandi administrator yang digunakan kluster AKS Anda untuk simpul Windows Server menggunakan
az aks update. Untuk informasi selengkapnya, lihat Tanya Jawab Umum Windows Server.Untuk menjalankan kluster AKS yang mendukung kumpulan simpul untuk kontainer Server Windows, kluster Anda perlu menggunakan kebijakan jaringan yang menggunakan plugin jaringan Azure CNI (lanjutan). Parameter
--network-plugin azuremenentukan Azure CNI.
Menambahkan kumpulan simpul
Secara default, semua kluster AKS dibuat dengan kumpulan simpul yang dapat menjalankan kontainer Linux. Anda harus menambahkan kumpulan simpul Windows yang dapat menjalankan kontainer Windows Server bersama kumpulan simpul Linux. Untuk memeriksa apakah Anda memiliki kumpulan simpul Windows di kluster, Anda dapat melihat simpul pada kluster Anda menggunakan kubectl get nodes -o wide perintah .
Untuk membuat kumpulan simpul Windows, Anda perlu menentukan yang didukung OsType dan OsSku. Gunakan informasi dalam tabel berikut untuk menentukan mana yang sesuai untuk kluster Anda:
OsType |
OsSku |
Bawaan | Versi K8s yang didukung | Detail lebih lanjut |
|---|---|---|---|---|
windows |
Windows2025 |
Saat ini dalam pratinjau. Bukan default. | 1.32+ | Default yang diperbarui: containerd 2.0, gambar Generasi 2 digunakan secara default. |
windows |
Windows2022 |
Default pada K8s 1.25-1.35 | Tidak tersedia di K8s 1.36+ | Pensiun pada Maret 2027. Pengaturan bawaan yang diperbarui: FIPS diaktifkan secara bawaan. |
windows |
Windows2019 |
Default di K8s 1.24 dan versi di bawahnya | Tidak tersedia di K8s 1.33+ | Pensiun pada Maret 2026. |
Windows Server 2022 adalah sistem operasi default untuk Kubernetes versi 1.25-1.35. Windows Server 2019 adalah OS default untuk versi sebelumnya. Jika Anda tidak menentukan SKU OS tertentu, Azure membuat kumpulan simpul baru dengan SKU default untuk versi Kubernetes yang digunakan oleh kluster.
Catatan
- Windows Server 2019 berhenti pada 1 Maret 2026. Setelah tanggal tersebut, AKS tidak akan lagi menghasilkan gambar node baru atau menyediakan patch keamanan. Setelah tanggal tersebut, Anda tidak akan dapat membuat kumpulan simpul baru dengan Windows Server 2019 pada versi Kubernetes apa pun. Semua kumpulan simpul yang ada dengan Windows Server 2019 tidak akan didukung. Windows Server 2019 tidak didukung di Kubernetes versi 1.33 ke atas. Mulai 1 April 2027, AKS akan menghapus semua gambar simpul yang ada untuk Windows Server 2019, yang berarti bahwa operasi penskalaan akan gagal.
- Windows Server 2022 berhenti pada 15 Maret 2027. Setelah tanggal tersebut, AKS tidak akan lagi menghasilkan gambar node baru atau menyediakan patch keamanan. Setelah tanggal tersebut, Anda tidak akan dapat membuat kumpulan simpul baru dengan Windows Server 2022 pada versi Kubernetes apa pun. Semua kumpulan simpul yang ada dengan Windows Server 2022 tidak akan didukung. Windows Server 2022 tidak didukung di Kubernetes versi 1.36 ke atas. Mulai 1 April 2028, AKS akan menghapus semua gambar simpul yang ada untuk Windows Server 2022, yang berarti bahwa operasi penskalaan akan gagal.
Untuk informasi selengkapnya, lihat Catatan rilis AKS. Untuk tetap mendapatkan informasi terbaru tentang versi OS Windows Server terbaru dan pelajari selengkapnya tentang peta strategi kami tentang apa yang direncanakan untuk dukungan di AKS, lihat peta jalan publik AKS kami.
Tambahkan kumpulan simpul Windows menggunakan perintah
az aks nodepool adddenganOsTypedanOsSkuyang ditentukan. Jika Anda tidak menentukan SKU OS tertentu, Azure membuat kumpulan simpul baru dengan SKU default untuk versi Kubernetes yang digunakan oleh kluster.az aks nodepool add \ --resource-group $MY_RESOURCE_GROUP_NAME \ --cluster-name $MY_AKS_CLUSTER \ --os-type Windows \ --os-sku Windows2022 \ --name npwin \ --node-count 1Perintah ini membuat kumpulan simpul baru bernama npwin dan menambahkannya ke myAKSCluster. Perintah ini juga menggunakan subnet default di jaringan virtual default yang dibuat saat menjalankan
az aks create.
Menyambungkan ke kluster
Anda menggunakan kubectl, klien baris perintah Kube, untuk mengelola kluster Kubernetes Anda. Jika Anda menggunakan Azure Cloud Shell, kubectl sudah terpasang. Jika Anda ingin menginstal dan menjalankan kubectl secara lokal, gunakan az aks install-cli perintah .
Konfigurasikan
kubectluntuk terhubung ke kluster Kubernetes menggunakan perintahaz aks get-credentials. Perintah ini mengunduh kredensial dan mengonfigurasi Kubernetes CLI untuk menggunakannya.az aks get-credentials --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_AKS_CLUSTERVerifikasi koneksi ke kluster Anda menggunakan
kubectl getperintah , yang mengembalikan daftar node kluster.kubectl get nodes -o wideContoh output berikut menunjukkan semua simpul dalam kluster. Pastikan status semua simpul Siap:
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME aks-nodepool1-20786768-vmss000000 Ready agent 22h v1.27.7 10.224.0.4 <none> Ubuntu 22.04.3 LTS 5.15.0-1052-azure containerd://1.7.5-1 aks-nodepool1-20786768-vmss000001 Ready agent 22h v1.27.7 10.224.0.33 <none> Ubuntu 22.04.3 LTS 5.15.0-1052-azure containerd://1.7.5-1 aksnpwin000000 Ready agent 20h v1.27.7 10.224.0.62 <none> Windows Server 2022 Datacenter 10.0.20348.2159 containerd://1.6.21+azureCatatan
Runtime kontainer untuk setiap pool node ditampilkan pada CONTAINER-RUNTIME. Nilai runtime kontainer dimulai dengan
containerd://, yang berarti bahwa mereka masing-masing menggunakancontainerduntuk runtime kontainer.
Menyebarkan aplikasi
File manifes Kubernetes menentukan status yang diinginkan untuk kluster, seperti gambar kontainer apa yang akan dijalankan. Dalam artikel ini, Anda menggunakan manifes untuk membuat semua objek yang diperlukan untuk menjalankan aplikasi sampel ASP.NET dalam kontainer Windows Server. Manifes ini mencakup penyebaran Kube untuk aplikasi contoh ASP.NET dan layanan Kube eksternal untuk mengakses aplikasi dari internet.
Aplikasi contoh ASP.NET disediakan sebagai bagian dari Sampel .NET Framework dan berjalan dalam kontainer Windows Server. AKS memerlukan kontainer Windows Server yang didasarkan pada citra Windows Server 2019 atau versi yang lebih baru. File manifes Kubernetes juga harus menentukan pemilih simpul untuk memberi tahu kluster AKS Anda agar menjalankan pod aplikasi contoh ASP.NET pada node yang dapat mengoperasikan container Windows Server.
Buat file bernama
sample.yamldan salin dalam definisi YAML berikut:apiVersion: apps/v1 kind: Deployment metadata: name: sample labels: app: sample spec: replicas: 1 template: metadata: name: sample labels: app: sample spec: nodeSelector: "kubernetes.io/os": windows containers: - name: sample image: mcr.microsoft.com/dotnet/framework/samples:aspnetapp resources: limits: cpu: 1 memory: 800M ports: - containerPort: 80 selector: matchLabels: app: sample --- apiVersion: v1 kind: Service metadata: name: sample spec: type: LoadBalancer ports: - protocol: TCP port: 80 selector: app: sampleUntuk perincian mengenai berkas manuskrip YAML, lihat Penyebaran dan Manifes YAML.
Jika Anda membuat dan menyimpan file YAML secara lokal, maka Anda dapat mengunggah file manifes ke direktori default Anda di CloudShell dengan memilih tombol Unggah/Unduh file dan memilih file dari sistem file lokal Anda.
Sebarkan aplikasi menggunakan
kubectl applyperintah dan tentukan nama manifes YAML Anda.kubectl apply -f sample.yamlContoh output berikut menunjukkan penyebaran dan layanan yang berhasil dibuat:
{ "deployment.apps/sample": "created", "service/sample": "created" }
Uji aplikasi
Ketika aplikasi berjalan, layanan Kubernetes mengekspos front end aplikasi ke internet. Diperlukan beberapa menit untuk menyelesaikan proses ini. Terkadang layanan ini memerlukan waktu lebih lama untuk disediakan. Berikan waktu hingga 10 menit untuk penyediaan.
Periksa status pod yang disebarkan menggunakan perintah
kubectl get pods. Pastikan semua pod berada dalam keadaanRunningsebelum melanjutkan.kubectl get podsPantau kemajuan menggunakan perintah
kubectl get servicedengan argumen--watch.while true; do export EXTERNAL_IP=$(kubectl get service sample -o jsonpath="{.status.loadBalancer.ingress[0].ip}" 2>/dev/null) if [[ -n "$EXTERNAL_IP" && "$EXTERNAL_IP" != "<pending>" ]]; then kubectl get service sample break fi echo "Still waiting for external IP assignment..." sleep 5 doneAwalnya, output menunjukkan EXTERNAL-IP untuk layanan sampel sebagai tertunda:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE sample LoadBalancer xx.xx.xx.xx pending xx:xxxx/TCP 2mKetika alamat EKSTERNAL-IP berubah dari tertunda ke alamat IP publik aktual, gunakan
CTRL-Cuntuk menghentikankubectlproses pemantauan.Keluaran contoh berikut menunjukkan alamat IP publik yang valid yang diberikan ke layanan.
{ "NAME": "sample", "TYPE": "LoadBalancer", "CLUSTER-IP": "10.0.37.27", "EXTERNAL-IP": "52.179.23.131", "PORT(S)": "80:30572/TCP", "AGE": "2m" }Lihat contoh aplikasi yang sedang beraksi dengan membuka browser web ke alamat IP eksternal layanan Anda setelah beberapa menit.
Langkah berikutnya
Dalam panduan memulai cepat ini, Anda menyebarkan kluster Kubernetes dan kemudian menyebarkan aplikasi sampel ASP.NET dalam kontainer Windows Server. Aplikasi sampel ini hanya untuk tujuan demo dan tidak mewakili semua praktik terbaik untuk aplikasi Kubernetes. Untuk panduan tentang membuat solusi lengkap dengan AKS untuk produksi, lihat panduan solusi AKS.
Untuk mempelajari lebih lanjut tentang AKS, dan untuk menelusuri contoh kode-ke-penyebaran lengkap, lanjutkan ke tutorial kluster Kubernetes.