Menggunakan Azure Kubernetes Service di Azure Stack Hub dengan CLI

Ini adalah panduan untuk membantu Anda mulai menggunakan layanan Azure Kubernetes Service (AKS) di Azure Stack Hub. Artikel ini menjelaskan set skenario utama untuk mengenalkan Anda dengan AKS di Azure Stack Hub. Fungsionalitas yang tersedia di Azure Stack Hub adalah subset dari apa yang tersedia di Azure global.

Di bagian berikut Anda akan:

  1. Menyelesaikan prasyarat untuk menggunakan AKS di Azure Stack Hub.
  2. Menyelesaikan operasi siklus hidup kluster AKS menggunakan Azure CLI dan portal pengguna Azure Stack Hub.

Menginstal Azure CLI

Anda akan harus menginstal Azure CLI dengan dukungan AKS untuk mesin Anda. Siapkan mesin Linux atau mesin Windows bersih untuk menginstal versi Azure CLI pratinjau dengan dukungan AKS. Pastikan mesin tidak menginstal Azure CLI untuk menghindari konflik dengan pratinjau Azure CLI yang akan Anda pasang berikutnya. Sebagian besar petunjuk di bawah menganggap Anda menggunakan VM Linux, tetapi Anda dapat menemukan langkah yang setara di Windows dalam dokumentasi produk.

Jangan meningkatkan Azure CLI setelah menginstal Azure CLI dengan dukungan AKS. Jika Anda melakukan peningkatan, Azure CLI akan diganti dengan versi siap produksi yang tidak memiliki dukungan AKS.

Untuk mesin Ubuntu, ikuti petunjuk di Menginstal Azure CLI di Linux.

Setelah menginstal Azure CLI dengan dukungan AKS, verifikasikan apakah penginstalan dilakukan dengan benar dengan menjalankan perintah Azure CLI berikut:

    az --version

Ini adalah output dari mesin Linux:

output dari mesin Linux

Azure CLI harus memiliki versi 2.28.0 atau lebih tinggi.

Menyambungkan ke Azure Stack Hub

  1. Sambungkan ke titik akhir Azure Stack Hub. Anda harus menggunakan Azure CLI untuk menetapkan lingkungan Azure Stack Hub tertentu tempat Anda akan terhubung. Anda dapat menemukan petunjuknya di Menyambungkan ke Azure Stack Hub

  2. Daftarkan lingkungan Anda sehingga Azure CLI dapat terhubung ke titik akhir Azure Stack Hub Resource Manager untuk instans Anda. Perbarui URL dalam cuplikan berikut dan jalankan perintah berikut:

    az cloud register \
        -n aks-preview-test \
        --endpoint-resource-manager "https://management.redmond.xbx.nxn.microsoft.com" \
        --suffix-storage-endpoint "redmond.xbx.nxn.microsoft.com" \
        --suffix-keyvault-dns ".vault.redmond.xbx.nxn.microsoft.com"
    
  3. Atur lingkungan aktif.

    az cloud set -n aks-preview-test
    
  4. Perbarui konfigurasi lingkungan Anda.

    az cloud update --profile 2020-09-01-hybrid
    
  5. Sambungkan ke lingkungan.

    az login -u 'user@contoso.onmicrosoft.com' -p 'xxxxxxx' --tenant 'contoso.onmicrosoft.com'
    

    Catatan

    Jika Anda memicu kesalahan verifikasi sertifikat gagal, hal ini dapat karena sertifikat yang digunakan untuk titik akhir Azure Resource Manager tidak dipercaya oleh mesin klien Anda. Jika demikian, Anda harus mengekspor sertifikat yang digunakan di titik akhir Azure Stack Hub dan mempercayainya. Anda dapat menemukan petunjuknya di Mengekspor Sertifikat Akar CA Azure Stack Hub.

    Secara khusus, untuk komputer Linux lihat: ID Microsoft Entra di Linux

  6. Atur langganan di sesi Azure CLI Anda sebagai default dengan:

    az account set --subscription <subscription-id>
    
  7. Mendaftarkan penyedia sumber Azure Kubernetes Service. Mencantumkan penyedia sumber yang tersedia di langganan Anda.

    az provider list --query "[].{Provider:namespace, Status:registrationState}" --out table
    

    Output akan terlihat seperti ini:

    Output akan terlihat seperti

  8. Catat penyedia sumber Microsoft.ContainerService lalu daftarkan penyedia:

    az provider register --namespace Microsoft.ContainerService
    
  9. Jalankan kembali langkah tujuh untuk memverifikasi status pendaftaran penyedia sumber. Pendaftaran dapat memerlukan beberapa menit untuk diselesaikan.

Setelah langkah prasyarat tersebut selesai, Anda dapat melanjutkan untuk menguji skenario berikut.

Membuat kluster AKS

Anda dapat menemukan petunjuk Azure global di Menyebarkan kluster Azure Kubernetes Service menggunakan Azure CLI. Petunjuk di sini mencerminkan batasan penggunaan AKS di Azure Stack Hub. Anda dapat menggunakan Azure CLI untuk membuat kluster AKS untuk kontainer Linux atau Windows.

  1. Membuat grup sumber daya:

    az group create --name myResourceGroup --location <Azure Stack Hub location>
    
  2. Pastikan Anda memiliki ID perwakilan layanan siap dengan izin kontributor di langganan Anda untuk membuat kluster di dalamnya.

    1. Untuk membuat perwakilan layanan (SPN) menggunakan ID Microsoft Entra, ikuti instruksi berikut.
    2. Untuk membuat SPN menggunakan Active Directory Federated Services (AD FS), ikuti petunjuk ini.
    3. Untuk menetapkan peran "Kontributor" ke SPN lihat petunjuk. Pastikan untuk memilih peran "Kontributor".
  3. Buat kluster AKS dari tiga node agen. Sediakan nilai untuk parameter di bawah ini, contoh disediakan. Jalankan:

    az aks create \
    --resource-group myResourceGroup \
    --name myakscluster \
    --dns-name-prefix myakscluster \
    --nodepool-name mynodepool \
    --admin-username azureuser \
    --service-principal xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
    --client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
    --node-count 3 \
    --generate-ssh-keys \
    --load-balancer-sku basic \
    --vm-set-type VirtualMachineScaleSets \
    --location <Azure Stack Hub location> \
    --kubernetes-version 1.20.7
    

    Output dari operasi ini akan ada dalam format json dan berisi spesifikasi kluster termasuk kunci umum ssh yang dihasilkan, nama domain yang sepenuhnya memenuhi syarat (FQDN) yang digunakan dalam kluster di antara properti lainnya. Perhatikan bahwa perintah akan mengeluarkan teks seperti teks ini yang menyoroti lokasi kunci privat: SSH key files '/home/azureuser/.ssh/id_rsa' dan '/home/azureuser/.ssh/id_rsa.pub' telah dihasilkan berdasarkan \~/.ssh untuk memungkinkan akses SSH ke VM. Simpan kunci ini di lokasi yang aman untuk digunakan jika terdapat kebutuhan akan ssh ke dalam VM seperti dalam kasus saat memecahkan masalah.

  4. Kini Anda dapat melanjutkan untuk mengulangi pengujian untuk Skala, menyebarkan aplikasi, dan Menghapus.

Menyambungkan ke kluster

  1. Untuk mengelola kluster Kube, Anda menggunakan kubectl, klien baris-perintah Kube. Untuk menginstal kubectl secara lokal, gunakan perintah az aks install-cli (Anda mungkin harus menggunakan 'sudo' di awal untuk mendapatkan izin untuk menginstalnya):

    az aks install-cli
    
  2. Untuk mengonfigurasi kubectl untuk terhubung ke kluster Kubernetes, gunakan perintah az aks get-credentials. Perintah ini mengunduh informasi masuk dan mengonfigurasi CLI Kube untuk menggunakannya.

    az aks get-credentials --resource-group myResourceGroup --name myakscluster --admin
    
  3. Untuk memverifikasi sambungan ke kluster Anda, gunakan perintah kubectl get untuk mengembalikan daftar node kluster.

    kubectl get nodes
    

verifikasi koneksi ke kluster Anda

Menskalakan kluster

Tugas manajemen kluster lainnya adalah menskalakan kluster. Anda dapat menskalakan kluster kapan pun setelah kluster dibuat dengan menggunakan perintah skala az aks. Untuk menskalakan kluster dari tiga node awal hingga 4, jalankan:

    az aks scale --resource-group myResourceGroup --name myakscluster --node-count 4

Setelah kluster berhasil diskalakan, output akan berisi “agentPoolProfiles” yang sama dengan contoh berikut:

    "agentPoolProfiles": [
        {
        "availabilityZones": null,
        "count": 4,
        "enableAutoScaling": null,
        "enableNodePublicIp": false,
        "maxCount": null,
        "maxPods": 110,
        "minCount": null,
        "mode": "System",
        "name": "mynodepool",
        "nodeLabels": {},
        "nodeTaints": null,
        "orchestratorVersion": "1.20.7",
        "osDiskSizeGb": 100,
        "osType": "Linux",
        "provisioningState": "Succeeded",
        "scaleSetEvictionPolicy": null,
        "scaleSetPriority": null,
        "spotMaxPrice": null,
        "tags": null,
        "type": "VirtualMachineScaleSets",
        "vmSize": " Standard_DS2_v2",
        "vnetSubnetId": null
        }
    ]

Menghapus kluster

Setelah operasi sebelumnya selesai dilakukan, Anda dapat melanjutkan untuk menghapus kluster. Jalankan:

az aks delete --name myakscluster --resource-group myResourceGroup

Membuat kluster AKS dengan VNET kustom

Membuat kluster yang akan disebarkan di jaringan yang disediakan pengguna merupakan skenario umum. Merencanakan konfigurasi jaringan membutuhkan beberapa persiapan. Juga, perhatikan bahwa dengan AKS plugin jaringan default adalah Azure CNI, bukan Kubenet seperti pada kasus dengan mesin AKS. Dengan Azure CNI, setiap pod mendapat alamat IP dari subnet dan dapat diakses secara langsung (tanpa perlu tabel Perutean seperti pada kasus dengan Kubenet). Alamat IP ini harus unik di seluruh ruang jaringan Anda, dan harus direncanakan. Artikel berikut memandu Anda melalui proses perencanaan untuk penyebaran VNET kustom Anda. Anda dapat menemukan berbagai konfigurasi jaringan yang bekerja sesuai dengan kebutuhan Anda dan mengujinya. Untuk tes awal, dua langkah berikut akan menunjukkan proses dasar:

  1. Ikuti petunjuk dalam artikel ini untuk merencanakan penyebaran menggunakan Azure CNI. Misalnya, Anda dapat menggunakan portal untuk membuat "myAKSVnet" bernama VNet dengan rentang IP 10.0.0.0/8 dengan subnet "myAKSSubnet" dan rentang IP 10.240.0.0/16 dalam Grup Sumber Daya bernama "myTest-rg". Kemudian lakukan langkah berikutnya untuk pembuatan kluster.

    az network vnet create \
        --resource-group myTest-rg \
        --name myAKSVnet \
        --address-prefixes 10.0.0.0/8 \
        --subnet-name myAKSSubnet \
        --subnet-prefix 10.240.0.0/16    
    
  2. Perhatikan bahwa perintah kluster yang disediakan dalam artikel Azure bekerja dengan baik saat menyebarkan di Azure, untuk menyebarkan ke Azure Stack Hub Anda harus menentukan parameter tambahan seperti dalam contoh berikut. ID subnet vnet harus terlihat seperti '/subscriptions/dfdfdff-5dfdf-dfdf-dfdf-dfdfdfdfdfd/resourceGroups/myTest-rg/providers/Microsoft.Network/virtualNetworks/myAKSVnet/subnets/myAKSSubnet':

    az aks create  \ 
    --resource-group myTest-rg \
    --name aksvnet \
    --dns-name-prefix  aksvnet \
    --nodepool-name mynodepool \
    --admin-username azureuser \
    --service-principal xvxvxvxvx-ffff-ffff-xvxvxvx-8xbxbxbx8  \
    --client-secret dccbcbcbcbcbcbcbcbbcbcbcbcbcbcbc-LNX \
    --node-count 3 \
    --generate-ssh-keys \
    --load-balancer-sku basic \
    --vm-set-type VirtualMachineScaleSets \
    --network-plugin azure \
    --vnet-subnet-id '<subnet-resource-id>' \
    --skip-subnet-role-assignment \
    --docker-bridge-address 172.17.0.1/16 \
    --dns-service-ip 10.0.0.10 \
    --location redmond
    
  3. Ikuti petunjuk di bagian “Menghubungkan ke kluster” untuk terhubung ke kluster Kubernetes dan menyebarkan aplikasi.

Pemeriksaan konsistensi

Pemeriksaan konsistensi antara Azure dan Azure Stack Hub

  1. Pilih kombinasi perintah dari kombinasi yang diuji di atas, dari bagian “Referensi Perintah” di bawah, atau dari skrip harian milik Anda sendiri.
  2. Terapkan kombinasi perintah ke Azure, dan kemudian ke Azure Stack Hub. Perhatikan setiap perbedaan yang tidak diharapkan dan berikan umpan balik.

Langkah berikutnya

Pelajari AKS di Azure Stack Hub