Mengakses kluster Azure Kubernetes Service (AKS) privat menggunakan fitur perintah panggil atau Jalankan perintah

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 invoke perintah dan --command parameter untuk menentukan perintah yang akan dijalankan. Contoh berikut mendapatkan pod di ruang nama kube-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 invoke perintah dan --command parameter untuk menentukan perintah yang akan dijalankan. Contoh berikut menambahkan repositori bagan Bitnami Helm, memperbarui repositori, dan menginstal nginx bagan.

    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.

  1. Buat file manifes Kubernetes bernama deployment.yaml. Contoh file deployment berikut menyebarkan nginx pod.

    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
    
  2. Terapkan file penyebaran ke kluster Anda menggunakan perintah az aks command invoke dengan parameter --file untuk melampirkan file. Contoh berikut menerapkan deployment.yaml file ke default namespace.

    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.

  1. Buat dua file manifes Kubernetes bernama deployment.yaml dan configmap.yaml. Contoh file penerapan berikut akan menerapkan pod nginx dan 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"
    EOF
    
  2. Terapkan file penyebaran ke kluster Anda menggunakan perintah az aks command invoke dengan parameter --file untuk melampirkan file. Contoh berikut menerapkan file deployment.yaml dan configmap.yaml ke namespace default.

    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 nodes
  • kubectl get deployments
  • kubectl get pods
  • kubectl describe nodes
  • kubectl describe pod <pod-name>
  • kubectl describe deployment <deployment-name>
  • kubectl apply -f <file-name>

Gunakan Run command untuk menjalankan satu perintah

  1. Di portal Microsoft Azure, navigasikan ke kluster privat Anda.
  2. Dari menu layanan, di bawah Sumber daya Kubernetes, pilih Jalankan perintah.
  3. Masukkan perintah yang ingin Anda jalankan dan pilih Jalankan.

Gunakan Run command untuk menjalankan perintah dengan file terlampir

  1. Di portal Microsoft Azure, navigasikan ke kluster privat Anda.

  2. Dari menu layanan, di bawah Sumber daya Kubernetes, pilih Jalankan perintah.

  3. Pilih Lampirkan file>Telusuri file.

    Cuplikan layar melampirkan file ke perintah Jalankan portal Microsoft Azure.

  4. Pilih file atau file yang ingin Anda lampirkan, lalu pilih Lampirkan.

  5. 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.

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: