Latihan - Menyebarkan kluster Azure Kubernetes Service dengan Azure CNI

Selesai

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.

  1. Luncurkan Azure Cloud Shell.

  2. Jika Anda belum masuk ke Azure, masuk ke akun Azure Anda menggunakan az login perintah .

    az login
    
  3. Pilih wilayah Azure yang dekat dengan Anda, misalnya eastus. Simpan nilai dalam variabel lingkungan sehingga Anda dapat menggunakannya di sisa latihan.

    AKSLocation=eastus
    
  4. Buat grup sumber daya, AKSLearn, untuk menyimpan sumber daya dalam latihan ini menggunakan az group create perintah .

    az group create --location $AKSLocation --name AKSLearn
    
  5. 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
    
  6. 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.

  1. Buat identitas terkelola Azure, AKSIdentity, menggunakan az identity create perintah .

    az identity create \
        --name AKSIdentity \
        --resource-group AKSLearn
    
  2. 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

  1. 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)
    
  2. 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.
  3. 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 Systemkumpulan 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 adalah 3 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.

  1. Tingkatkan kluster dan tambahkan satu simpul lagi menggunakan az aks scale perintah .

    az aks scale \
        --name AKSCluster \
        --resource-group AKSLearn \
        --node-count=4
    
  2. 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
    
  3. 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.