Bagikan melalui


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, , xargsgrep, 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 dan Microsoft.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 menjalankan kubectl 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 tiga helm 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 berjalan kubectl apply -f deployment.yaml -n default pada kluster myPrivateCluster di myResourceGroup. File deployment.yaml dilampirkan dari direktori saat ini pada komputer pengembangan tempat az 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 berjalan kubectl apply -f deployment.yaml configmap.yaml -n default pada kluster myPrivateCluster di myResourceGroup. File deployment.yaml dan configmap.yaml adalah bagian dari direktori saat ini pada komputer pengembangan tempat az 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: