Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Saat Anda mengakses kluster Azure Kubernetes Service (AKS) privat, Anda perlu terhubung ke kluster dari jaringan virtual kluster (VNet), jaringan yang di-peering, atau titik akhir privat yang dikonfigurasi. Pendekatan ini memerlukan konfigurasi tambahan, seperti menyiapkan VPN atau Rute Ekspres.
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 RBAC Microsoft.ContainerService/managedClusters/runcommand/action dan Microsoft.ContainerService/managedClusters/commandResults/read mengontrol izin untuk menggunakan command invoke.
Dengan portal Microsoft 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 dibuat oleh Run command menyediakan kubectl dan helm untuk mengoperasikan kluster Anda.
jq, , xargsgrep, dan awk tersedia untuk dukungan Bash.
Petunjuk / Saran
Anda dapat menggunakan Azure Copilot untuk menjalankan kubectl perintah di portal Microsoft Azure. Untuk informasi selengkapnya, lihat Bekerja dengan kluster AKS secara efisien menggunakan Azure Copilot.
Prasyarat
Persyaratan sistem dan izin
| Jenis persyaratan | Specification | Cara memverifikasi |
|---|---|---|
| Versi Azure CLI | 2.24.0 atau yang lebih baru | Gunakan perintah az --version untuk memeriksa versi Anda. |
| Kluster AKS privat | Harus sudah ada | Jika Anda tidak memiliki kluster privat yang sudah ada, ikuti langkah-langkah dalam Membuat kluster AKS privat. |
| Tindakan RBAC |
Microsoft.ContainerService/managedClusters/runcommand/action dan Microsoft.ContainerService/managedClusters/commandResults/read |
Periksa menggunakan halaman Kontrol akses portal Microsoft Azure (IAM) atau az role assignment list perintah Azure CLI. |
Jalankan spesifikasi sumber daya untuk perintah pod
| Jenis sumber daya | Nilai | Dampak |
|---|---|---|
| Permintaan CPU | 200m | CPU minimum yang dicadangkan untuk pod kontrol |
| Permintaan memori | 500Mi | Memori minimum yang dicadangkan untuk pod kendali |
| Batas CPU | 500m | CPU maksimal yang tersedia untuk pod perintah |
| Batas memori | 1Gi | Memori maksimum yang tersedia untuk pod kendali |
| Batas waktu API Azure Resource Manager (ARM) | 60 detik | Batas waktu maksimum untuk penjadwalan pod |
| Batas ukuran output | 512kB | Ukuran output perintah maksimum |
Batasan dan pertimbangan
Cakupan desain
- Bukan untuk akses terprogram: Gunakan Bastion, VPN, atau ExpressRoute untuk panggilan API otomatis.
- Dependensi penjadwalan pod: Memerlukan sumber daya kluster yang memadai (lihat spesifikasi sumber daya).
- Batasan output: exitCode dan teks saja, tidak ada detail tingkat API.
- Batasan jaringan berlaku: Tunduk pada jaringan kluster dan pembatasan keamanan.
Titik kegagalan potensial
- Kegagalan penjadwalan pod apabila node terbatas sumber dayanya.
- Batas waktu ARM API (60 detik) jika pod tidak dapat dijadwalkan dengan cepat.
- Pemotongan output jika respons melebihi batas 512kB.
Gunakan command invoke pada kluster AKS privat dengan Azure CLI
Atur variabel lingkungan untuk grup sumber daya dan nama kluster Anda untuk digunakan dalam perintah berikutnya.
export AKS_RESOURCE_GROUP="<resource-group-name>" export AKS_CLUSTER_NAME="<cluster-name>"Variabel lingkungan ini memungkinkan Anda menjalankan perintah AKS tanpa harus menulis ulang namanya.
Gunakan command invoke untuk menjalankan satu perintah
Jalankan satu perintah pada kluster Anda menggunakan
az aks command invokeperintah dan--commandparameter untuk menentukan perintah yang akan dijalankan. Contoh berikut mendapatkan pod di ruang namakube-system.az aks command invoke \ --resource-group $AKS_RESOURCE_GROUP \ --name $AKS_CLUSTER_NAME \ --command "kubectl get pods -n kube-system"
Gunakan command invoke untuk menjalankan beberapa perintah
Jalankan beberapa perintah pada kluster Anda menggunakan
az aks command invokeperintah dan--commandparameter untuk menentukan perintah yang akan dijalankan. Contoh berikut menambahkan repositori bagan Bitnami Helm, memperbarui repositori, dan menginstalnginxbagan.az aks command invoke \ --resource-group $AKS_RESOURCE_GROUP \ --name $AKS_CLUSTER_NAME \ --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 terlampir
Jika Anda ingin menjalankan perintah dengan file terlampir, file harus ada dan dapat diakses di direktori kerja Anda saat ini. Dalam contoh berikut, kami membuat file penyebaran minimal untuk demonstrasi.
Buat file manifes Kubernetes bernama
deployment.yaml. Contoh file deployment berikut menyebarkannginxpod.cat <<EOF > deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx-demo spec: replicas: 1 selector: matchLabels: app: nginx-demo template: metadata: labels: app: nginx-demo spec: containers: - name: nginx image: nginx:1.21.6 ports: - containerPort: 80 EOFTerapkan file penyebaran ke kluster Anda menggunakan perintah
az aks command invokedengan parameter--fileuntuk melampirkan file. Contoh berikut menerapkandeployment.yamlfile kedefaultnamespace.az aks command invoke \ --resource-group $AKS_RESOURCE_GROUP \ --name $AKS_CLUSTER_NAME \ --command "kubectl apply -f deployment.yaml -n default" \ --file deployment.yaml
Gunakan command invoke untuk menjalankan perintah dengan semua file di direktori saat ini
Nota
Gunakan hanya file kecil yang diperlukan untuk menghindari melebihi batas ukuran sistem.
Dalam contoh berikut, kami membuat dua file penyebaran minimal untuk demonstrasi.
Buat dua file manifes Kubernetes bernama
deployment.yamldanconfigmap.yaml. Contoh file penerapan berikut akan menerapkan podnginxdan membuat ConfigMap dengan pesan sambutan.cat <<EOF > deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx-demo spec: replicas: 1 selector: matchLabels: app: nginx-demo template: metadata: labels: app: nginx-demo spec: containers: - name: nginx image: nginx:1.21.6 ports: - containerPort: 80 EOF cat <<EOF > configmap.yaml apiVersion: v1 kind: ConfigMap metadata: name: nginx-config data: welcome-message: "Hello from configmap" EOFTerapkan file penyebaran ke kluster Anda menggunakan perintah
az aks command invokedengan parameter--fileuntuk melampirkan file. Contoh berikut menerapkan filedeployment.yamldanconfigmap.yamlke namespacedefault.az aks command invoke \ --resource-group $AKS_RESOURCE_GROUP \ --name $AKS_CLUSTER_NAME \ --command "kubectl apply -f deployment.yaml -f configmap.yaml -n default" \ --file deployment.yaml \ --file configmap.yaml
Gunakan Run command pada kluster AKS privat di portal Microsoft Azure
Anda dapat menggunakan perintah berikut dengan fitur Run command:
kubectl get nodeskubectl get deploymentskubectl get podskubectl describe nodeskubectl describe pod <pod-name>kubectl describe deployment <deployment-name>kubectl apply -f <file-name>
Gunakan Run command untuk menjalankan satu perintah
- Di portal Microsoft Azure, navigasikan ke kluster privat Anda.
- Dari menu layanan, di bawah Sumber daya Kubernetes, pilih Jalankan perintah.
- Masukkan perintah yang ingin Anda jalankan dan pilih Jalankan.
Gunakan Run command untuk menjalankan perintah dengan file terlampir
Di portal Microsoft Azure, navigasikan ke kluster privat Anda.
Dari menu layanan, di bawah Sumber daya Kubernetes, pilih Jalankan perintah.
Pilih Lampirkan file>Telusuri file.
Pilih file atau file yang ingin Anda lampirkan, lalu pilih Lampirkan.
Masukkan perintah yang ingin Anda jalankan dan pilih Jalankan.
Menonaktifkan Run command
Anda dapat menonaktifkan Run command fitur dengan mengatur .properties.apiServerAccessProfile.disableRunCommand ke true.
Memecahkan masalah command invoke
Untuk informasi tentang masalah yang paling umum dengan az aks command invoke dan cara memperbaikinya, lihat Mengatasi az aks command invoke kegagalan.
Konten terkait
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: