Mengakses kluster Azure Kubernetes Service (AKS) privat menggunakan fitur perintah panggil atau Jalankan perintah
Saat Anda mengakses kluster AKS privat, Anda perlu terhubung ke kluster dari jaringan virtual kluster, jaringan yang di-peering, atau titik akhir privat yang dikonfigurasi. Pendekatan ini memerlukan konfigurasi VPN, Rute Ekspres, menyebarkan jumpbox dalam jaringan virtual kluster, atau membuat titik akhir privat di dalam jaringan virtual lain.
Dengan Azure CLI, Anda dapat menggunakan command invoke
untuk mengakses kluster privat tanpa perlu mengonfigurasi VPN atau Rute Ekspres. command invoke
memungkinkan Anda untuk memanggil perintah dari jarak jauh, seperti kubectl
dan helm
, pada kluster privat Anda melalui Azure API tanpa langsung terhubung ke kluster. Tindakan Microsoft.ContainerService/managedClusters/runcommand/action
dan Microsoft.ContainerService/managedclusters/commandResults/read
mengontrol izin untuk menggunakan command invoke
.
Dengan portal Azure, Anda dapat menggunakan Run command
fitur untuk menjalankan perintah pada kluster privat Anda. Fitur ini Run command
menggunakan fungsionalitas yang sama command invoke
untuk menjalankan perintah pada kluster Anda.
Pod yang Run command
dibuat oleh menyediakan kubectl
dan helm
untuk mengoperasikan kluster Anda. jq
, , xargs
grep
, dan awk
tersedia untuk dukungan Bash.
Sebelum Anda mulai
Sebelum memulai, pastikan Anda memiliki sumber daya dan izin berikut:
- Kluster privat yang ada. Jika Anda tidak memilikinya, lihat Membuat kluster AKS privat.
- Azure CLI versi 2.24.0 atau lebih baru. Jalankan
az --version
untuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI. - Akses ke peran
Microsoft.ContainerService/managedClusters/runcommand/action
danMicrosoft.ContainerService/managedclusters/commandResults/read
pada kluster.
Batasan
Fitur ini dirancang untuk menyederhanakan akses kluster dan tidak dirancang untuk akses terprogram. Jika Anda memiliki program yang memanggil Kubernetes menggunakan Run command
, kerugian berikut berlaku:
- Anda hanya mendapatkan exitCode dan output teks, dan Anda kehilangan detail tingkat API.
- Satu hop tambahan memperkenalkan titik kegagalan tambahan.
Pod yang Run command
dibuat oleh dikodekan secara permanen dengan 200m CPU
permintaan dan 500Mi memory
, serta batas 500m CPU
dan 1Gi memory
. Dalam kasus yang jarang terjadi di mana semua simpul Anda dikemas, pod tidak dapat dijadwalkan dalam batasan ARM API 60 detik. Ini berarti bahwa akan gagal, bahkan jika dikonfigurasi Run command
untuk skala otomatis.
command invoke
menjalankan perintah dari kluster Anda, sehingga perintah apa pun yang dijalankan dengan cara ini tunduk pada pembatasan jaringan yang dikonfigurasi dan batasan lain yang dikonfigurasi. Pastikan ada cukup simpul dan sumber daya di kluster Anda untuk menjadwalkan pod perintah ini.
Catatan
Output untuk command invoke
dibatasi hingga ukuran 512kB.
Jalankan perintah pada kluster AKS Anda
Gunakan command invoke
untuk menjalankan satu perintah
Jalankan perintah pada kluster Anda menggunakan
az aks command invoke --command
perintah . Contoh perintah berikut menjalankankubectl get pods -n kube-system
perintah pada kluster myPrivateCluster di myResourceGroup.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "kubectl get pods -n kube-system"
Gunakan command invoke
untuk menjalankan beberapa perintah
Jalankan beberapa perintah pada kluster Anda menggunakan
az aks command invoke --command
perintah . Contoh perintah berikut menjalankan tigahelm
perintah pada kluster myPrivateCluster di myResourceGroup.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "helm repo add bitnami https://charts.bitnami.com/bitnami && helm repo update && helm install my-release bitnami/nginx"
Gunakan command invoke
untuk menjalankan perintah dengan file atau direktori terlampir
Jalankan perintah dengan file atau direktori terlampir menggunakan
az aks command invoke --command
perintah dengan--file
parameter . Contoh perintah berikut berjalankubectl apply -f deployment.yaml -n default
pada kluster myPrivateCluster di myResourceGroup. Filedeployment.yaml
dilampirkan dari direktori saat ini pada komputer pengembangan tempataz aks command invoke
dijalankan.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "kubectl apply -f deployment.yaml -n default" \ --file deployment.yaml
Gunakan command invoke
untuk menjalankan perintah dengan semua file dalam direktori saat ini yang dilampirkan
Jalankan perintah dengan semua file di direktori saat ini yang dilampirkan menggunakan
az aks command invoke --command
perintah dengan--file
parameter . Contoh perintah berikut berjalankubectl apply -f deployment.yaml configmap.yaml -n default
pada kluster myPrivateCluster di myResourceGroup. Filedeployment.yaml
danconfigmap.yaml
adalah bagian dari direktori saat ini pada komputer pengembangan tempataz aks command invoke
dijalankan.az aks command invoke \ --resource-group myResourceGroup \ --name myPrivateCluster \ --command "kubectl apply -f deployment.yaml configmap.yaml -n default" \ --file .
Pemecahan Masalah
Untuk informasi tentang masalah yang paling umum dengan az aks command invoke
dan cara memperbaikinya, lihat Mengatasi az aks command invoke
kegagalan.
Langkah berikutnya
Dalam artikel ini, Anda mempelajari cara mengakses kluster privat dan menjalankan perintah pada kluster tersebut. Untuk informasi selengkapnya tentang kluster AKS, lihat artikel berikut ini:
Azure Kubernetes Service