Latihan - Menyebarkan kluster Azure Kubernetes Service dengan Azure CNI
Catatan
Latihan ini bersifat opsional. Jika Anda ingin menyelesaikan latihan ini, Anda harus membuat langganan Azure sebelum memulai. Jika Anda tidak memiliki akun Azure atau tidak ingin membuatnya sekarang, Anda dapat membaca petunjuk agar Anda memahami informasi yang sedang diberikan.
Dalam latihan ini, Anda menyebarkan jaringan virtual, subnet, dan identitas, lalu menyebarkan kluster Azure Kubernetes Service (AKS) menggunakan plugin Azure Container Networking Interface (CNI).
Anda mendekati departemen IT perusahaan Anda dan memberikan informasi yang Anda kumpulkan tentang persyaratan aplikasi, ukuran komputer virtual (VM), dan ukuran jaringan. Departemen TI menyediakan beberapa rentang alamat jaringan yang dapat Anda gunakan untuk kluster.
Tabel berikut mencantumkan persyaratan dan alamat IP yang disediakan oleh departemen IT:
Item | Deskripsi | Alamat IP |
---|---|---|
Subnet AKS | Alamat IP untuk simpul dan pod dalam kluster. Diperlukan 248 alamat IP yang dapat digunakan. | 10.150.20.0/24 |
Subnet layanan Kube | Alamat IP yang digunakan di dalam kluster untuk layanan Kube. Tidak boleh berkonflik dengan jaringan virtual atau jaringan lokal lainnya. | 10.240.0.0/24 |
Alamat IP layanan Sistem Nama Domain (DNS) | Harus berada di subnet layanan Kubernetes, tetapi tidak dapat menjadi alamat IP pertama dari rentang yang tersedia. | 10.240.0.10 |
- Untuk subnet AKS, Anda menentukan bahwa Anda memerlukan 248 alamat IP yang dapat digunakan. Departemen TI Anda memberikan jaringan 10.150.20.0/24, yang menyediakan 251 alamat IP yang dapat digunakan setelah memperhitungkan lima alamat yang dicadangkan Azure di setiap subnet.
- Subnet layanan Kubernetes adalah sekelompok alamat IP yang tidak digunakan di jaringan virtual Azure lainnya dan tidak bertentangan dengan rentang jaringan lokal apa pun. Rentang alamat ini hanya pernah digunakan di dalam kluster. Departemen TI Anda menunjukkan bahwa Anda harus menggunakan 10.240.0.0/24.
- Alamat IP layanan DNS adalah alamat IP tunggal dalam rentang subnet layanan Kube, tetapi tidak bisa menjadi alamat IP pertama dalam rentang tersebut. Anda memutuskan untuk menggunakan 10.240.0.10 sebagai alamat IP DNS.
Membuat jaringan virtual dan subnet
Untuk latihan ini, Anda membuat jaringan virtual dan subnet. Dalam lingkungan dunia nyata, Anda mungkin memiliki tim di departemen TI yang bertanggung jawab untuk mengelola jaringan dan mereka dapat membuat sumber daya ini untuk Anda.
Luncurkan Azure Cloud Shell.
Jika Anda belum masuk ke Azure, masuk ke akun Azure Anda menggunakan
az login
perintah .az login
Pilih wilayah Azure yang dekat dengan Anda, misalnya eastus. Simpan nilai dalam variabel lingkungan sehingga Anda dapat menggunakannya di sisa latihan.
AKSLocation=eastus
Buat grup sumber daya, AKSLearn, untuk menyimpan sumber daya dalam latihan ini menggunakan
az group create
perintah .az group create --location $AKSLocation --name AKSLearn
Buat jaringan virtual, AKSVirtualNetwork, menggunakan
az network vnet create
perintah .az network vnet create \ --name AKSVirtualNetwork \ --resource-group AKSLearn \ --address-prefixes 10.150.0.0/16 \ --location $AKSLocation
Buat subnet, AKSSubnet, menggunakan
az network vnet subnet create
perintah dan tentukan rentang alamat yang disediakan oleh departemen IT.az network vnet subnet create \ --resource-group AKSLearn \ --vnet-name AKSVirtualNetwork \ --name AKSSubnet \ --address-prefixes 10.150.20.0/24
Membuat identitas terkelola Azure
Anda perlu membuat identitas terkelola Azure untuk digunakan AKS untuk mengakses sumber daya dalam langganan Azure Anda. Dua perintah berikut membuat Azure Managed Identity, lalu menyimpan nilai ID uniknya dalam variabel lingkungan untuk digunakan nanti.
Buat identitas terkelola Azure, AKSIdentity, menggunakan
az identity create
perintah .az identity create \ --name AKSIdentity \ --resource-group AKSLearn
Dapatkan ID identitas terkelola menggunakan
az identity show
perintah dan simpan dalam variabel lingkungan, identityId, untuk digunakan dalam perintah selanjutnya.identityId=$(az identity show \ --name AKSIdentity \ --resource-group AKSLearn \ --query id \ --output tsv)
Membuat kluster AKS
Dapatkan nilai ID sumber daya subnet menggunakan
az network vnet subnet list
perintah dan simpan dalam variabel lingkungan, subnetId, untuk digunakan dalam perintah selanjutnya.subnetId=$(az network vnet subnet list \ --vnet-name AKSVirtualNetwork \ --resource-group AKSLearn \ --query "[?name=='AKSSubnet'].id" \ --output tsv)
Buat kluster AKS, AKSCluster, menggunakan
az aks create
perintah .az aks create \ --name AKSCluster \ --resource-group AKSLearn \ --location $AKSLocation \ --network-plugin azure \ --vnet-subnet-id $subnetId \ --service-cidr 10.240.0.0/24 \ --dns-service-ip 10.240.0.10 \ --generate-ssh-keys \ --enable-managed-identity \ --assign-identity $identityId \ --node-vm-size Standard_F8s_v2 \ --node-count 3
Tabel berikut ini menjelaskan parameter yang digunakan dalam
az aks create
perintah:Parameter Deskripsi --name
Nama kluster yang sedang dibuat. --resource-group
Grup sumber daya tempat kluster akan dibuat. --location
Wilayah Azure tempat kluster akan dibuat. --network-plugin
Menentukan plugin jaringan mana yang akan digunakan. --vnet-subnet-id
Menentukan ID sumber daya subnet yang akan digunakan. --service-cidr
Menentukan rentang alamat layanan Kubernetes yang akan digunakan. --dns-service-ip
Menentukan alamat IP DNS yang akan digunakan. --generate-ssh-keys
Membuat rangkaian kunci SSH yang digunakan untuk mengamankan simpul. --enable-managed-identity
Memungkinkan penggunaan identitas terkelola Azure untuk akses ke sumber daya di langganan Azure. --assign-identity
Menentukan nilai ID dari identitas terkelola Azure yang akan digunakan. --node-vm-size
Menentukan ukuran VM yang akan digunakan. --node-count
Menentukan jumlah simpul yang akan dibuat. Setelah kluster berhasil disebarkan, periksa detail kumpulan simpul menggunakan
az aks nodepool list
perintah .az aks nodepool list \ --cluster-name AKSCluster \ --resource-group AKSLearn \ --output table
Output Anda akan terlihat mirip dengan contoh output berikut:
Name OsType VmSize Count MaxPods ProvisioningState Mode --------- -------- --------------- ------- --------- ------------------- ------ nodepool1 Linux Standard_F8s_v2 3 30 Succeeded System
Dari output, Anda dapat melihat ada tiga node jenis Standard_F8s_v2, nilai MaxPods 30, dan mode
System
kumpulan simpul .
Mengonfirmasi penggunaan alamat IP untuk kluster
Periksa berapa banyak alamat IP yang digunakan oleh kluster menggunakan
az network vnet subnet list
perintah .az network vnet subnet list \ --vnet-name AKSVirtualNetwork \ --resource-group AKSLearn \ --query "[].ipConfigurations.length(@)" \ --output table
Perintah ini menggunakan string kueri JMESPath untuk menentukan banyaknya
ipConfigurations
yang ditentukan dalam subnet. output maksimum harus 93. Anda menyebarkan tiga simpul untuk memulai, sehingga setiap simpul memiliki satu alamat IP. Anda menggunakan nilai default 30 untuk pod maksimum, sehingga setiap simpul memiliki 30 alamat IP yang telah dialokasikan untuk digunakan pod. Jumlah total alamat IP yang dialokasikan sejauh ini adalah3 x nodes + (30 pods * 3 nodes) = 93
. Namun, beberapa alamat dicadangkan sehingga output Anda bisa kurang.
Menambahkan simpul tambahan ke kluster
Mari kita lihat bagaimana penggunaan alamat IP terpengaruh dengan mencuri kluster dan menambahkan satu simpul lagi.
Tingkatkan kluster dan tambahkan satu simpul lagi menggunakan
az aks scale
perintah .az aks scale \ --name AKSCluster \ --resource-group AKSLearn \ --node-count=4
Setelah perintah berhasil diselesaikan, konfirmasikan detail baru kumpulan simpul menggunakan
az aks nodepool list
perintah .az aks nodepool list \ --cluster-name AKSCluster \ --resource-group AKSLearn \ --output table
Output Anda akan terlihat mirip dengan contoh output berikut, menunjukkan bahwa Anda sekarang memiliki empat simpul.
Name OsType VmSize Count MaxPods ProvisioningState Mode --------- -------- --------------- ------- --------- ------------------- ------ nodepool1 Linux Standard_F8s_v2 4 30 Succeeded System
Periksa berapa banyak alamat IP yang sekarang digunakan oleh kluster menggunakan
az network vnet subnet list
perintah .az network vnet subnet list \ --vnet-name AKSVirtualNetwork \ --resource-group AKSLearn \ --query "[].ipConfigurations.length(@)" \ --output table
Kali ini, output maksimum harus 124, yaitu 31 lebih banyak dari terakhir kali. Itu adalah satu alamat IP lagi untuk simpul baru, ditambah 30 alamat IP lain yang dialokasikan untuk pod yang berjalan pada simpul tersebut. Namun, beberapa alamat dicadangkan sehingga output Anda bisa kurang.