Menyebarkan dan mengelola ekstensi kluster Kube dengan dukungan Azure Arc
Anda dapat membuat instans ekstensi di kluster Kubernetes dengan dukungan Arc, 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 gambaran umum konseptual ekstensi kluster Kubernetes yang diaktifkan Arc dan tinjau daftar ekstensi yang saat ini tersedia.
Prasyarat
Versi terbaru Azure CLI.
Versi
connectedk8s
terbaru ekstensi Azure CLI dank8s-extension
. Instal ekstensi ini dengan menjalankan perintah berikut:az extension add --name connectedk8s az extension add --name k8s-extension
connectedk8s
Jika ekstensi dank8s-extension
sudah diinstal, pastikan ekstensi tersebut diperbarui ke versi terbaru menggunakan perintah berikut:az extension update --name connectedk8s az extension update --name k8s-extension
Kluster yang terhubung dengan Kubernetes dengan dukungan Azure Arc yang ada, dengan setidaknya satu node sistem operasi dan jenis
linux/amd64
arsitektur . Jika menyebarkan Flux (GitOps), Anda dapat menggunakan kluster berbasis ARM64 tanpa simpullinux/amd64
.- Jika Anda belum menyambungkan kluster, harap gunakan mulai cepat kami.
- Tingkatkan agen Anda ke versi terbaru.
Membuat instans ekstensi
Untuk membuat instans ekstensi baru, gunakan k8s-extension create
, meneruskan nilai untuk parameter yang diperlukan.
Contoh ini membuat instans ekstensi Azure Monitor Container Insights pada kluster Kubernetes dengan dukungan Azure Arc:
az k8s-extension create --name azuremonitor-containers --extension-type Microsoft.AzureMonitor.Containers --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
Output:
{
"autoUpgradeMinorVersion": true,
"configurationProtectedSettings": null,
"configurationSettings": {
"logAnalyticsWorkspaceResourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/defaultresourcegroup-eus/providers/microsoft.operationalinsights/workspaces/defaultworkspace-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-eus"
},
"creationTime": "2021-04-02T12:13:06.7534628+00:00",
"errorInfo": {
"code": null,
"message": null
},
"extensionType": "microsoft.azuremonitor.containers",
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/demo/providers/Microsoft.Kubernetes/connectedClusters/demo/providers/Microsoft.KubernetesConfiguration/extensions/azuremonitor-containers",
"identity": null,
"installState": "Pending",
"lastModifiedTime": "2021-04-02T12:13:06.753463+00:00",
"lastStatusTime": null,
"name": "azuremonitor-containers",
"releaseTrain": "Stable",
"resourceGroup": "demo",
"scope": {
"cluster": {
"releaseNamespace": "azuremonitor-containers"
},
"namespace": null
},
"statuses": [],
"systemData": null,
"type": "Microsoft.KubernetesConfiguration/extensions",
"version": "2.8.2"
}
Catatan
Layanan ini tidak dapat mempertahankan informasi sensitif selama lebih dari 48 jam. Jika agen Kubernetes dengan dukungan Azure Arc tidak memiliki konektivitas jaringan selama lebih dari 48 jam dan tidak dapat menentukan apakah akan membuat ekstensi pada kluster, ekstensi akan beralih ke Failed
status. Setelah itu terjadi, Anda harus menjalankan k8s-extension create
lagi untuk membuat sumber daya Azure ekstensi baru.
Azure Monitor Container Insights adalah ekstensi singleton (hanya satu yang diperlukan per kluster). Anda harus membersihkan penginstalan bagan Helm sebelumnya dari Azure Monitor Container Insights (tanpa ekstensi) sebelum menginstal hal yang sama melalui ekstensi. Ikuti instruksi untuk menghapus bagan Helm sebelum menjalankan az k8s-extension create
.
Parameter yang diperlukan
Parameter berikut diperlukan saat menggunakan az k8s-extension create
untuk membuat instans ekstensi.
Nama Parameter | Deskripsi |
---|---|
--name |
Nama instans ekstensi |
--extension-type |
Jenis ekstensi yang ingin Anda instal pada kluster. Misalnya: Microsoft.AzureMonitor.Kontainer, microsoft.azuredefender.kube |
--scope |
Cakupan penginstalan untuk ekstensi: cluster atau namespace |
--cluster-name |
Nama sumber daya Kube dengan dukungan Azure Arc tempat instans ekstensi harus dibuat |
--resource-group |
Grup sumber daya yang berisi sumber daya Kube dengan dukungan Azure Arc |
--cluster-type |
Jenis kluster tempat instans ekstensi harus dibuat. Untuk sebagian besar skenario, gunakan connectedClusters , yang sesuai dengan kluster Kubernetes dengan dukungan Azure Arc. |
Parameter opsional
Gunakan satu atau beberapa parameter opsional ini sesuai kebutuhan untuk skenario Anda, bersama dengan parameter yang diperlukan.
Catatan
Anda dapat memilih untuk secara otomatis meningkatkan instans ekstensi Anda ke versi minor dan patch terbaru dengan mengatur auto-upgrade-minor-version
ke true
, atau Anda dapat mengatur versi instans ekstensi secara manual menggunakan --version
parameter . Sebaiknya aktifkan peningkatan otomatis untuk versi minor dan patch sehingga Anda selalu memiliki patch dan kemampuan keamanan terbaru.
Karena peningkatan versi utama dapat mencakup perubahan yang melanggar, peningkatan otomatis untuk versi utama baru instans ekstensi tidak didukung. Anda dapat memilih kapan harus meningkatkan instans ekstensi secara manual ke versi utama baru.
Nama Parameter | Deskripsi |
---|---|
--auto-upgrade-minor-version |
Properti Boolean yang menentukan apakah versi minor ekstensi ditingkatkan secara otomatis. Pengaturan default-nya 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 disediakan jika auto-upgrade-minor-version diatur ke true . |
--configuration-settings |
Pengaturan yang dapat diteruskan ke ekstensi untuk mengontrol fungsionalitasnya. Ini diteruskan 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 dengan key=value pasangan yang akan digunakan untuk meneruskan pengaturan konfigurasi ke ekstensi. Jika parameter ini digunakan dalam perintah, --configuration-settings tidak dapat digunakan dalam perintah yang sama. |
--configuration-protected-settings |
Pengaturan yang tidak dapat diambil menggunakan GET panggilan atau az k8s-extension show perintah API. Biasanya digunakan untuk meneruskan pengaturan sensitif. Ini diteruskan 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 dengan key=value pasangan yang akan digunakan untuk meneruskan pengaturan sensitif ke ekstensi. Jika parameter ini digunakan dalam perintah, --configuration-protected-settings tidak dapat digunakan dalam perintah yang sama. |
--release-namespace |
Parameter ini menunjukkan namespace tempat rilis akan dibuat. Hanya relevan jika 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. |
--target-namespace |
Menunjukkan namespace tempat rilis akan dibuat. Izin akun sistem yang dibuat untuk instansi ekstensi ini akan dibatasi untuk namespace ini. Hanya relevan jika scope diatur ke namespace . |
Perlihatkan detail ekstensi
Untuk melihat detail instans ekstensi yang saat ini diinstal, gunakan k8s-extension show
, meneruskan nilai untuk parameter wajib.
az k8s-extension show --name azuremonitor-containers --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
Output:
{
"autoUpgradeMinorVersion": true,
"configurationProtectedSettings": null,
"configurationSettings": {
"logAnalyticsWorkspaceResourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/defaultresourcegroup-eus/providers/microsoft.operationalinsights/workspaces/defaultworkspace-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-eus"
},
"creationTime": "2021-04-02T12:13:06.7534628+00:00",
"errorInfo": {
"code": null,
"message": null
},
"extensionType": "microsoft.azuremonitor.containers",
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/demo/providers/Microsoft.Kubernetes/connectedClusters/demo/providers/Microsoft.KubernetesConfiguration/extensions/azuremonitor-containers",
"identity": null,
"installState": "Installed",
"lastModifiedTime": "2021-04-02T12:13:06.753463+00:00",
"lastStatusTime": "2021-04-02T12:13:49.636+00:00",
"name": "azuremonitor-containers",
"releaseTrain": "Stable",
"resourceGroup": "demo",
"scope": {
"cluster": {
"releaseNamespace": "azuremonitor-containers"
},
"namespace": null
},
"statuses": [],
"systemData": null,
"type": "Microsoft.KubernetesConfiguration/extensions",
"version": "2.8.2"
}
Daftar semua ekstensi yang terinstal pada kluster
Untuk melihat daftar 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 connectedClusters
Output:
[
{
"autoUpgradeMinorVersion": true,
"creationTime": "2020-09-15T02:26:03.5519523+00:00",
"errorInfo": {
"code": null,
"message": null
},
"extensionType": "Microsoft.AzureMonitor.Containers",
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myRg/providers/Microsoft.Kubernetes/connectedClusters/myCluster/providers/Microsoft.KubernetesConfiguration/extensions/myExtInstanceName",
"identity": null,
"installState": "Pending",
"lastModifiedTime": "2020-09-15T02:48:45.6469664+00:00",
"lastStatusTime": null,
"name": "myExtInstanceName",
"releaseTrain": "Stable",
"resourceGroup": "myRG",
"scope": {
"cluster": {
"releaseNamespace": "myExtInstanceName1"
}
},
"statuses": [],
"type": "Microsoft.KubernetesConfiguration/extensions",
"version": "0.1.0"
},
{
"autoUpgradeMinorVersion": true,
"creationTime": "2020-09-02T00:41:16.8005159+00:00",
"errorInfo": {
"code": null,
"message": null
},
"extensionType": "microsoft.azuredefender.kubernetes",
"id": "/subscriptions/0e849346-4343-582b-95a3-e40e6a648ae1/resourceGroups/myRg/providers/Microsoft.Kubernetes/connectedClusters/myCluster/providers/Microsoft.KubernetesConfiguration/extensions/defender",
"identity": null,
"installState": "Pending",
"lastModifiedTime": "2020-09-02T00:41:16.8005162+00:00",
"lastStatusTime": null,
"name": "microsoft.azuredefender.kubernetes",
"releaseTrain": "Stable",
"resourceGroup": "myRg",
"scope": {
"cluster": {
"releaseNamespace": "myExtInstanceName2"
}
},
"type": "Microsoft.KubernetesConfiguration/extensions",
"version": "0.1.0"
}
]
Perbarui instans ekstensi
Catatan
Lihat dokumentasi untuk jenis ekstensi tertentu untuk memahami pengaturan tertentu dan --configuration-protected-settings
yang dapat diperbarui--configuration-settings
. Untuk --configuration-protected-settings
, semua pengaturan diharapkan disediakan, meskipun 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 dan opsional. Parameter wajib dan opsional sedikit berbeda dari yang digunakan untuk membuat instans ekstensi.
Contoh ini memperbarui auto-upgrade-minor-version
pengaturan untuk instans ekstensi Azure Pembelajaran Mesin ke true
:
az k8s-extension update --name azureml --extension-type Microsoft.AzureML.Kubernetes --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --auto-upgrade-minor-version true --cluster-type managedClusters
Parameter yang diperlukan untuk pembaruan
Nama Parameter | Deskripsi |
---|---|
--name |
Nama instans ekstensi |
--cluster-name |
Nama kluster tempat instans ekstensi harus dibuat |
--resource-group |
Grup sumber daya yang berisi kluster |
--cluster-type |
Jenis kluster tempat instans ekstensi harus dibuat. Untuk kluster Kubernetes dengan dukungan Azure Arc, gunakan connectedClusters . Untuk kluster AKS, gunakan managedClusters . |
Parameter opsional untuk pembaruan
Nama Parameter | Deskripsi |
---|---|
--auto-upgrade-minor-version |
Properti Boolean yang menentukan apakah versi minor ekstensi ditingkatkan secara otomatis. Pengaturan default-nya 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. Ini diteruskan 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. Hanya pengaturan yang memerlukan pembaruan yang perlu disediakan. Pengaturan yang disediakan akan diganti dengan nilai yang ditentukan. |
--configuration-settings-file |
Jalur ke file JSON dengan key=value pasangan yang akan digunakan untuk meneruskan pengaturan konfigurasi ke ekstensi. Jika parameter ini digunakan dalam perintah, --configuration-settings tidak dapat digunakan dalam perintah yang sama. |
--configuration-protected-settings |
Pengaturan yang tidak dapat diambil menggunakan GET panggilan atau az k8s-extension show perintah API. Biasanya digunakan untuk meneruskan pengaturan sensitif. Ini diteruskan 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. Saat Anda memperbarui pengaturan yang dilindungi, semua pengaturan yang dilindungi diharapkan ditentukan. Jika salah satu pengaturan ini dihilangkan, pengaturan tersebut akan dianggap usang dan dihapus. |
--configuration-protected-settings-file |
Jalur ke file JSON dengan key=value pasangan yang akan digunakan untuk meneruskan pengaturan sensitif ke ekstensi. Jika parameter ini digunakan dalam perintah, --configuration-protected-settings tidak dapat digunakan dalam perintah yang sama. |
--scope |
Cakupan penginstalan untuk ekstensi - cluster atau namespace . |
--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. |
Meningkatkan instans ekstensi
Seperti disebutkan sebelumnya, jika Anda mengatur auto-upgrade-minor-version
ke true, ekstensi akan secara otomatis ditingkatkan saat versi minor baru dirilis. Untuk sebagian besar skenario, sebaiknya aktifkan peningkatan otomatis. Jika Anda mengatur auto-upgrade-minor-version
ke false, Anda harus meningkatkan ekstensi secara manual jika Anda menginginkan versi yang lebih baru.
Peningkatan manual juga diperlukan untuk mendapatkan instans utama ekstensi baru. Anda dapat memilih kapan harus meningkatkan untuk menghindari perubahan melanggar yang tidak terduga dengan peningkatan versi utama.
Untuk meningkatkan instans ekstensi secara manual, gunakan k8s-extension update
dan atur version
parameter untuk menentukan versi.
Contoh ini memperbarui instans ekstensi Azure Pembelajaran Mesin ke versi x.y.z:
az k8s-extension update --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters --name azureml --version x.y.z
Hapus instans ekstensi
Untuk menghapus instans ekstensi pada kluster, gunakan k8s-extension delete
, meneruskan nilai untuk parameter wajib:
az k8s-extension delete --name azuremonitor-containers --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type connectedClusters
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
- Tinjau referensi CLI ekstensi az k8s untuk daftar perintah dan parameter yang komprehensif.
- Pelajari selengkapnya tentang cara kerja ekstensi dengan kluster Kubernetes dengan dukungan Arc.
- Tinjau ekstensi kluster yang saat ini tersedia untuk Kubernetes dengan dukungan Azure Arc.
- Dapatkan bantuan pemecahan masalah ekstensi.