Menyebarkan dan mengelola ekstensi kluster dengan menggunakan Azure CLI

Anda dapat membuat instans ekstensi di kluster AKS, mengatur parameter yang diperlukan dan opsional termasuk opsi yang terkait dengan pembaruan dan konfigurasi. Anda juga dapat melihat, mencantumkan, memperbarui, dan menghapus instans ekstensi.

Sebelum memulai, baca tentang ekstensi kluster.

Catatan

Contoh yang disediakan dalam artikel ini tidak lengkap, dan hanya dimaksudkan untuk menampilkan fungsionalitas. Untuk daftar perintah yang komprehensif dan parameternya, lihat referensi CLI az k8s-extension.

Prasyarat

  • Langganan Azure. Jika Anda tidak memiliki langganan Azure, Anda dapat membuat akun gratis.

  • Penyedia Microsoft.ContainerService sumber daya dan Microsoft.KubernetesConfiguration harus terdaftar di langganan Anda. Untuk mendaftarkan penyedia ini, jalankan perintah berikut:

    az provider register --namespace Microsoft.ContainerService --wait 
    az provider register --namespace Microsoft.KubernetesConfiguration --wait 
    
  • Kluster AKS. Kluster ini harus dibuat dengan identitas terkelola, karena ekstensi kluster tidak akan berfungsi dengan kluster berbasis perwakilan layanan. Untuk kluster baru yang dibuat dengan az aks create, identitas terkelola dikonfigurasi secara default. Untuk kluster berbasis perwakilan layanan yang ada, beralihlah untuk mengelola identitas dengan menjalankan az aks update dengan --enable-managed-identity bendera . Untuk informasi selengkapnya, lihat Menggunakan identitas terkelola.

  • Azure CLI versi >= 2.16.0 terpasang. Sebaiknya gunakan versi terbaru.

  • Versi k8s-extension terbaru ekstensi Azure CLI. Instal ekstensi dengan menjalankan perintah berikut:

    az extension add --name k8s-extension
    

    Jika ekstensi sudah diinstal, pastikan Anda menjalankan versi terbaru dengan menggunakan perintah berikut:

    az extension update --name k8s-extension
    

Membuat instans ekstensi

Buat instans ekstensi baru dengan k8s-extension create, memberikan nilai untuk parameter wajib. Contoh perintah ini membuat instans ekstensi Azure Machine Learning pada kluster AKS Anda:

az k8s-extension create --name azureml --extension-type Microsoft.AzureML.Kubernetes --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters --configuration-settings enableInference=True allowInsecureConnections=True inferenceRouterServiceType=LoadBalancer

Contoh perintah ini membuat contoh aplikasi Kubernetes (diterbitkan di Marketplace) pada kluster AKS Anda:

az k8s-extension create --name voteapp --extension-type Contoso.AzureVoteKubernetesAppTest --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters --plan-name testPlanID --plan-product testOfferID --plan-publisher testPublisherID --configuration-settings title=VoteAnimal value1=Cats value2=Dogs

Catatan

Layanan Ekstensi Kluster ini tidak dapat mempertahankan informasi sensitif selama lebih dari 48 jam. Jika agen ekstensi kluster tidak memiliki konektivitas jaringan selama lebih dari 48 jam dan tidak dapat menentukan apakah akan membuat ekstensi pada kluster, maka ekstensi beralih ke Failed status. Setelah dalam Failed status , Anda harus menjalankan k8s-extension create lagi untuk membuat instans ekstensi baru.

Parameter yang Diperlukan

Nama parameter Deskripsi
--name Nama instans ekstensi
--extension-type Tipe ekstensi yang ingin Anda instal pada kluster. Misalnya: Microsoft.AzureML.Kubernetes
--cluster-name Jenis kluster AKS tempat instans ekstensi harus dibuat
--resource-group Grup sumber daya yang berisi kluster AKS
--cluster-type Jenis kluster tempat instans ekstensi harus dibuat. Tentukan managedClusters saat memetakan ke kluster AKS

Parameter opsional

Nama parameter Deskripsi
--auto-upgrade-minor-version Properti Boolean yang menentukan apakah versi minor ekstensi akan ditingkatkan secara otomatis atau tidak. Default: true. Jika parameter ini diatur ke true, Anda tidak dapat mengatur version parameter, karena versi akan diperbarui secara dinamis. Jika diatur ke false, ekstensi tidak akan ditingkatkan secara otomatis bahkan untuk versi patch.
--version Versi ekstensi yang akan diinstal (versi tertentu tempat akan disematkannya instans esktensi). Tidak boleh diberikan jika versi minor peningkatan otomatis diatur ke true.
--configuration-settings Pengaturan yang dapat diteruskan ke ekstensi untuk mengontrol fungsionalitasnya. Meneruskan nilai sebagai pasangan yang dipisahkan key=value spasi setelah nama parameter. Jika parameter ini digunakan dalam perintah, --configuration-settings-file tidak dapat digunakan dalam perintah yang sama.
--configuration-settings-file Jalur ke file JSON memiliki pasangan nilai kunci yang akan digunakan untuk memasukkan pengaturan konfigurasi ke ekstensi. Jika parameter ini digunakan dalam perintah, --configuration-settings tidak dapat digunakan dalam perintah yang sama.
--configuration-protected-settings Pengaturan ini tidak dapat diambil kembali menggunakan panggilan API GET atau perintah az k8s-extension show, oleh karenanya digunakan untuk memasukkan pengaturan sensitif. Meneruskan nilai sebagai pasangan yang dipisahkan key=value spasi setelah nama parameter. Jika parameter ini digunakan dalam perintah, --configuration-protected-settings-file tidak dapat digunakan dalam perintah yang sama.
--configuration-protected-settings-file Jalur ke file JSON memiliki pasangan nilai kunci yang akan digunakan untuk memasukkan pengaturan sensitif ke ekstensi. Jika parameter ini digunakan dalam perintah, --configuration-protected-settings tidak dapat digunakan dalam perintah yang sama.
--scope Cakupan instalasi untuk ekstensi - cluster atau namespace
--release-namespace Parameter ini menunjukkan namespace tempat rilis akan dibuat. Parameter ini hanya relevan jika parameter scope diatur ke cluster.
--release-train Penulis ekstensi dapat menerbitkan versi di kereta rilis yang berbeda seperti Stable, Preview, dll. Jika parameter ini tidak diatur secara eksplisit, Stable digunakan sebagai default. Parameter ini tidak dapat digunakan jika parameter --auto-upgrade-minor-version diatur ke false.
--target-namespace Parameter ini menunjukkan namespace tempat rilis akan dibuat. Izin akun sistem yang dibuat untuk instansi ekstensi ini akan dibatasi untuk namespace ini. Parameter ini hanya relevan jika parameter scope diatur ke namespace.
--plan-name ID paket ekstensi, ditemukan di halaman Marketplace di portal Azure di bawah Informasi Penggunaan + Dukungan.
--plan-product ID produk ekstensi, ditemukan di halaman Marketplace di portal Azure di bawah Informasi Penggunaan + Dukungan. Contohnya adalah nama penawaran ISV yang digunakan.
--plan-publisher ID penerbit ekstensi, ditemukan di halaman Marketplace di portal Azure di bawah Informasi Penggunaan + Dukungan.

Tampilkan detail instans ekstensi

Untuk melihat detail instans ekstensi yang saat ini diinstal, gunakan k8s-extension show, meneruskan nilai untuk parameter wajib.

az k8s-extension show --name azureml --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

Daftar semua ekstensi yang terinstal pada kluster

Untuk mencantumkan semua ekstensi yang diinstal pada kluster, gunakan k8s-extension list, meneruskan nilai untuk parameter wajib.

az k8s-extension list --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

Perbarui instans ekstensi

Catatan

Lihat dokumentasi untuk jenis ekstensi tertentu untuk memahami pengaturan tertentu di dan --configuration-protected-settings yang dapat diperbarui--configuration-settings. Untuk --configuration-protected-settings, semua pengaturan diharapkan disediakan, bahkan jika hanya satu pengaturan yang sedang diperbarui. Jika salah satu pengaturan ini dihilangkan, pengaturan tersebut akan dianggap usang dan dihapus.

Untuk memperbarui instans ekstensi yang ada, gunakan k8s-extension update, meneruskan nilai untuk parameter wajib. Perintah berikut memperbarui pengaturan peningkatan otomatis untuk instans ekstensi Azure Machine Learning:

az k8s-extension update --name azureml --extension-type Microsoft.AzureML.Kubernetes --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

Parameter yang diperlukan untuk pembaruan

Nama parameter Deskripsi
--name Nama instans ekstensi
--extension-type Tipe ekstensi yang ingin Anda instal pada kluster. Contoh: Microsoft.AzureML.Kubernetes
--cluster-name Jenis kluster AKS tempat instans ekstensi harus dibuat
--resource-group Grup sumber daya yang berisi kluster AKS
--cluster-type Jenis kluster tempat instans ekstensi harus dibuat. Tentukan managedClusters saat memetakan ke kluster AKS

Jika memperbarui aplikasi Kubernetes yang diakui melalui Marketplace, parameter berikut juga diperlukan:

Nama parameter Deskripsi
--plan-name ID paket ekstensi, ditemukan di halaman Marketplace di portal Azure di bawah Informasi Penggunaan + Dukungan.
--plan-product ID produk ekstensi, ditemukan di halaman Marketplace di portal Azure di bawah Informasi Penggunaan + Dukungan. Contohnya adalah nama penawaran ISV yang digunakan.
--plan-publisher ID penerbit ekstensi, ditemukan di halaman Marketplace di portal Azure di bawah Informasi Penggunaan + Dukungan.

Parameter opsional untuk pembaruan

Nama parameter Deskripsi
--auto-upgrade-minor-version Properti Boolean yang menentukan apakah versi minor ekstensi akan ditingkatkan secara otomatis atau tidak. Default: true. Jika parameter ini diatur ke true, Anda tidak dapat mengatur parameter version, karena versi akan diperbarui secara dinamis. Jika diatur ke false, ekstensi tidak akan ditingkatkan secara otomatis bahkan untuk versi patch.
--version Versi ekstensi yang akan diinstal (versi tertentu tempat akan disematkannya instans esktensi). Tidak boleh diberikan jika versi minor peningkatan otomatis diatur ke true.
--configuration-settings Pengaturan yang dapat diteruskan ke ekstensi untuk mengontrol fungsionalitasnya. Hanya pengaturan yang memerlukan pembaruan yang perlu disediakan. Pengaturan yang disediakan akan diganti dengan nilai yang disediakan. Meneruskan nilai sebagai pasangan yang dipisahkan key=value spasi setelah nama parameter. Jika parameter ini digunakan dalam perintah, --configuration-settings-file tidak dapat digunakan dalam perintah yang sama.
--configuration-settings-file Jalur ke file JSON memiliki pasangan nilai kunci yang akan digunakan untuk memasukkan pengaturan konfigurasi ke ekstensi. Jika parameter ini digunakan dalam perintah, --configuration-settings tidak dapat digunakan dalam perintah yang sama.
--configuration-protected-settings Pengaturan ini tidak dapat diambil kembali menggunakan panggilan API GET atau perintah az k8s-extension show, oleh karenanya digunakan untuk memasukkan pengaturan sensitif. Saat Anda memperbarui pengaturan, semua pengaturan diharapkan ditentukan. Jika beberapa pengaturan dihilangkan, pengaturan tersebut akan dianggap usang dan dihapus. Meneruskan nilai sebagai pasangan yang dipisahkan key=value spasi setelah nama parameter. Jika parameter ini digunakan dalam perintah, --configuration-protected-settings-file tidak dapat digunakan dalam perintah yang sama.
--configuration-protected-settings-file Jalur ke file JSON memiliki pasangan nilai kunci yang akan digunakan untuk memasukkan pengaturan sensitif ke ekstensi. Jika parameter ini digunakan dalam perintah, --configuration-protected-settings tidak dapat digunakan dalam perintah yang sama.
--scope Cakupan instalasi untuk ekstensi - cluster atau namespace
--release-train Penulis ekstensi dapat menerbitkan versi di pelatihan rilis yang berbeda seperti Stable, Preview, dll. Jika parameter ini tidak diatur secara eksplisit, Stable digunakan sebagai default. Parameter ini tidak dapat digunakan jika parameter autoUpgradeMinorVersion diatur ke false.

Hapus instans ekstensi

Untuk menghapus instans ekstensi pada kluster, gunakan k8s-extension-delete, meneruskan nilai untuk parameter wajib.

az k8s-extension delete --name azureml --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

Catatan

Sumber daya Azure yang mewakili ekstensi ini akan segera dihapus. Rilis Helm pada kluster yang terkait dengan ekstensi ini hanya dihapus ketika agen yang berjalan pada kluster Kube memiliki konektivitas jaringan dan dapat menjangkau layanan Azure lagi untuk mengambil status yang diinginkan.

Langkah berikutnya