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 PowerShell 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 singkat ini mengandaikan 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.
Untuk kemudahan penggunaan, coba lingkungan PowerShell di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Panduan Cepat untuk Azure Cloud Shell.
Jika Anda ingin menggunakan PowerShell secara lokal, instal modul Az PowerShell dan sambungkan ke akun Azure Anda menggunakan cmdlet Connect-AzAccount . Pastikan Anda menjalankan perintah dengan hak akses administrator. Untuk informasi selengkapnya, lihat Memasang Azure PowerShell.
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 lebih dari satu langganan Azure, atur langganan yang ingin Anda gunakan untuk mulai cepat dengan memanggil cmdlet Set-AzContext . Untuk informasi selengkapnya, lihat Mengelola langganan Azure dengan Azure PowerShell.
Menentukan
OsSKUparameter memerlukan modul PowerShell Az versi 9.2.0 atau yang lebih tinggi.
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
New-AzResourceGroupcmdlet . Contoh berikut ini menunjukkan cara membuat grup sumber daya bernamamyResourceGroupdi wilayah eastus.New-AzResourceGroup -Name myResourceGroup -Location eastusContoh output berikut menunjukkan bahwa grup sumber daya berhasil dibuat:
ResourceGroupName : myResourceGroup Location : eastus ProvisioningState : Succeeded Tags : ResourceId : /subscriptions/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/resourceGroups/myResourceGroup
Membuat kluster AKS
Di bagian ini, kami membuat kluster AKS dengan konfigurasi berikut:
- Kluster dikonfigurasi dengan dua simpul untuk memastikan kluster beroperasi dengan andal. Sebuah node adalah mesin virtual (VM) Azure yang menjalankan komponen node Kubernetes dan runtime container.
- Parameter
-WindowsProfileAdminUserNamedan-WindowsProfileAdminUserPasswordmengatur info masuk administrator untuk simpul Windows Server apa pun pada kluster dan harus memenuhi persyaratan kompleksitas kata sandi Windows Server. - Node pool menggunakan
VirtualMachineScaleSets.
Gunakan langkah-langkah berikut untuk membuat kluster AKS dengan Azure PowerShell:
Buat kredensial administrator untuk kontainer Windows Server Anda menggunakan perintah berikut. Perintah ini meminta Anda untuk memasukkan
WindowsProfileAdminUserNamedanWindowsProfileAdminUserPassword. Kata sandi harus minimal 14 karakter dan memenuhi persyaratan kompleksitas kata sandi Windows Server.$AdminCreds = Get-Credential ` -Message 'Please create the administrator credentials for your Windows Server containers'Buat kluster Anda menggunakan
New-AzAksClustercmdlet dan tentukan parameterWindowsProfileAdminUserNamesertaWindowsProfileAdminUserPassword.New-AzAksCluster -ResourceGroupName myResourceGroup ` -Name myAKSCluster ` -KubernetesVersion 1.33 ` -NodeCount 2 ` -NetworkPlugin azure ` -NodeVmSetType VirtualMachineScaleSets ` -WindowsProfileAdminUserName $AdminCreds.UserName ` -WindowsProfileAdminUserPassword $secureString ` -GenerateSshKeySetelah beberapa menit, perintah selesai dan kembalikan informasi berformat JSON tentang kluster. Terkadang, kluster dapat memerlukan waktu lebih dari beberapa menit untuk diprovisikan. Harap tunggu hingga 10 menit untuk proses 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.
Nama pengguna administrator tidak dapat diubah, 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
-NetworkPlugin azuremenentukan Azure CNI.
Menambahkan kumpulan simpul
Secara default, kluster AKS dibuat dengan kumpulan simpul yang dapat menjalankan kontainer Linux. Anda harus menambahkan kumpulan simpul lain yang dapat menjalankan kontainer Windows Server bersama kumpulan simpul Linux.
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 |
Bawaan dalam K8s 1.36+ | 1.32+ | Pengaturan default yang diperbarui: containerd 2.0, gambar Generasi 2 digunakan secara default. FIPS diperlukan - sertakan -EnableFIPS saat Anda membuat kumpulan simpul. |
windows |
Windows2022 |
Default pada K8s 1.25-1.35 | Tidak tersedia di K8s 1.37+ | Pensiun pada Juni 2028. Pengaturan bawaan yang diperbarui: FIPS diaktifkan secara bawaan. |
Windows Server 2025 adalah sistem operasi default untuk Kubernetes versi 1.36 dan yang lebih baru. Windows Server 2022 adalah default untuk Kubernetes versi 1.25-1.35. Jika Anda tidak menentukan SKU OS tertentu, Azure membuat kumpulan simpul baru dengan SKU default untuk versi Kubernetes yang digunakan oleh kluster.
Penting
Mulai 30 Juni 2028, Azure Kubernetes Service (AKS) tidak lagi mendukung kumpulan simpul Windows Server 2022. Windows Server 2022 tidak didukung di Kubernetes versi 1.37 dan yang lebih baru. Mulai tanggal 30 Juni 2029, AKS akan menghapus semua gambar simpul yang ada untuk Windows Server 2022, yang berarti bahwa operasi penskalaan akan gagal. Untuk informasi selengkapnya tentang penghentian ini, lihat masalah Penghentian GitHub dan pengumuman penghentian Pembaruan Azure. Untuk tetap mendapatkan informasi tentang pengumuman dan pembaruan, ikuti catatan rilis AKS.
Tambahkan kumpulan simpul Windows Server dengan menggunakan
New-AzAksNodePoolcmdlet. Perintah berikut membuat kumpulan simpul baru bernama npwin dan menambahkannya ke myAKSCluster. Perintah ini juga menggunakan subnet default di jaringan virtual default yang dibuat saat menjalankanNew-AzAksCluster. Pool node Windows Server 2025 memerlukan image yang mendukung FIPS, sehingga perintah berikut menyertakan-EnableFIPS:New-AzAksNodePool -ResourceGroupName myResourceGroup ` -ClusterName myAKSCluster ` -VmSetType VirtualMachineScaleSets ` -OsType Windows ` -OsSKU Windows2025 ` -EnableFIPS ` -Name npwin
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 kubectl secara lokal, Anda dapat menggunakan Install-AzAzAksCliTool cmdlet .
Konfigurasikan
kubectluntuk terhubung ke kluster Kubernetes menggunakanImport-AzAksCredentialcmdlet. Perintah ini mengunduh kredensial dan mengonfigurasi CLI Kubernetes untuk menggunakannya.Import-AzAksCredential -ResourceGroupName myResourceGroup -Name myAKSClusterVerifikasi 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.33.12 10.224.0.4 <none> Ubuntu 22.04.5 LTS 5.15.0-1116-azure containerd://1.7.33-1 aks-nodepool1-20786768-vmss000001 Ready agent 22h v1.33.12 10.224.0.33 <none> Ubuntu 22.04.5 LTS 5.15.0-1116-azure containerd://1.7.33-1 aksnpwin000000 Ready agent 20h v1.33.12 10.224.0.62 <none> Windows Server 2025 Datacenter 10.0.26100.32995 containerd://2.0.4+azure
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 sampel ASP.NET adalah bagian dari .NET Framework Samples dan berjalan dalam kontainer Windows Server. AKS mengharuskan kontainer Windows Server didasarkan pada gambar Windows Server 2022 atau yang lebih besar. File manifes Kubernetes juga harus mendefinisikan node selector untuk memberi tahu kluster AKS Anda agar menjalankan pod aplikasi sampel ASP.NET Anda pada node yang dapat menjalankan kontainer 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 penjelasan tentang file manifes YAML, lihat Deployment 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. Harap tunggu hingga 10 menit untuk proses penyediaan.
Periksa status pod yang disebarkan menggunakan perintah
kubectl get pods. Pastikan semua pod dalam keadaanRunningsebelum melanjutkan.kubectl get podsPantau kemajuan menggunakan perintah
kubectl get servicedengan argumen--watch.kubectl get service sample --watchAwalnya, output menunjukkan EXTERNAL-IP untuk layanan sampel sebagai tertunda:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE sample LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6sKetika alamat EKSTERNAL-IP berubah dari tertunda ke alamat IP publik aktual, gunakan
CTRL-Cuntuk menghentikankubectlproses melihat.Keluaran contoh berikut menunjukkan alamat IP publik yang valid yang diberikan ke layanan.
sample LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2mLihat contoh aplikasi yang sedang beraksi dengan membuka browser web ke alamat IP eksternal layanan Anda.
Menghapus sumber daya
Jika Anda tidak berencana untuk mengikuti tutorial AKS, hapus kluster Anda agar tidak dikenai biaya Azure.
Hapus grup sumber daya, layanan kontainer, dan semua sumber daya terkait menggunakan
Remove-AzResourceGroupcmdlet.Remove-AzResourceGroup -Name myResourceGroupCatatan
Kluster AKS dibuat dengan identitas terkelola yang ditetapkan oleh sistem (opsi identitas default yang digunakan dalam panduan mulai cepat ini). Platform Azure mengelola identitas ini, sehingga tidak memerlukan penghapusan.
Langkah berikutnya
Dalam panduan cepat ini, Anda menerapkan kluster Kubernetes lalu menerapkan aplikasi contoh ASP.NET dalam kontainer Windows Server ke kluster tersebut. 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.