Aracılığıyla paylaş


Komut çağırma veya Komut çalıştırma özelliğini kullanarak özel bir Azure Kubernetes Service (AKS) kümesine erişme

Özel bir AKS kümesine erişirken kümeye küme sanal ağından, eşlenmiş ağdan veya yapılandırılmış bir özel uç noktadan bağlanmanız gerekir. Bu yaklaşımlar bir VPN, Express Route yapılandırmayı, küme sanal ağında bir sıçrama kutusu dağıtmayı veya başka bir sanal ağın içinde özel uç nokta oluşturmayı gerektirir.

Azure CLI ile vpn veya Express Route yapılandırmaya gerek kalmadan özel kümelere erişmek için kullanabilirsiniz command invoke . command invoke, kümeye doğrudan bağlanmadan Azure API aracılığıyla özel kümenizde ve helmgibi kubectl komutları uzaktan çağırmanıza olanak tanır. Microsoft.ContainerService/managedClusters/runcommand/action ve Microsoft.ContainerService/managedclusters/commandResults/read eylemleri, kullanma command invokeizinlerini denetler.

Azure portalı ile bu özelliği kullanarak Run command özel kümenizde komut çalıştırabilirsiniz. Bu özellik, Run command kümenizde komut çalıştırmak için aynı command invoke işlevselliği kullanır.

tarafından Run command oluşturulan pod, kümenizi çalıştırmak için ve helm sağlarkubectl. jq, xargs, grepve awk Bash desteği için kullanılabilir.

Başlamadan önce

Başlamadan önce aşağıdaki kaynaklara ve izinlere sahip olduğunuzdan emin olun:

  • Var olan bir özel küme. Bir kümeniz yoksa bkz . Özel AKS kümesi oluşturma.
  • Azure CLI sürüm 2.24.0 veya üzeri. Sürümü bulmak için az --version komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.
  • Kümedeki Microsoft.ContainerService/managedClusters/runcommand/action ve Microsoft.ContainerService/managedclusters/commandResults/read rollerine erişim.

Sınırlamalar

Bu özellik, küme erişimini basitleştirmek için tasarlanmıştır ve programlı erişim için tasarlanmamıştır. kullanarak Run commandKubernetes'i çağıran bir programınız varsa aşağıdaki dezavantajlar geçerlidir:

  • Yalnızca exitCode ve metin çıkışı alırsınız ve API düzeyi ayrıntılarını kaybedersiniz.
  • Fazladan bir atlama ek hata noktalarına neden olur.

tarafından Run command oluşturulan pod, bir ve 500Mi memory isteği ve bir 200m CPU ve 500m CPU 1Gi memory sınırı ile sabit kodlanır. Tüm düğümünüzün paketlendiği nadir durumlarda pod, 60 saniyelik ARM API sınırlaması içinde zamanlanamaz. Bu, Run command otomatik ölçeklendirme için yapılandırılmış olsa bile öğesinin başarısız olacağı anlamına gelir.

command invoke kümenizdeki komutları çalıştırdığından, bu şekilde çalıştırılan tüm komutlar yapılandırılan ağ kısıtlamalarınıza ve diğer yapılandırılmış kısıtlamalara tabidir. Kümenizde bu komut podlarını zamanlamak için yeterli düğüm ve kaynak olduğundan emin olun.

Not

için command invoke çıkış boyutu 512 kb ile sınırlıdır.

AKS kümenizde komut çalıştırma

Tek bir komut çalıştırmak için kullanın command invoke

  • komutunu kullanarak az aks command invoke --command kümenizde bir komut çalıştırın. Aşağıdaki örnek komut, myResourceGroup'taki myPrivateCluster kümesinde komutunu çalıştırırkubectl get pods -n kube-system.

    az aks command invoke \
      --resource-group myResourceGroup \
      --name myPrivateCluster \
      --command "kubectl get pods -n kube-system"
    

Birden çok komut çalıştırmak için kullanın command invoke

  • komutunu kullanarak az aks command invoke --command kümenizde birden çok komut çalıştırın. Aşağıdaki örnek komut, myResourceGroup'taki myPrivateCluster kümesinde üç helm komut çalıştırır.

    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"
    

Ekli dosya veya dizinle komutları çalıştırmak için kullanın command invoke

  • parametresiyle komutunu kullanarak az aks command invoke --command komutları ekli bir dosya veya dizinle --file çalıştırın. Aşağıdaki örnek komut, myResourceGroup'taki myPrivateCluster kümesinde çalışırkubectl apply -f deployment.yaml -n default. Dosya deployment.yaml , çalıştırıldığı az aks command invoke geliştirme bilgisayarındaki geçerli dizinden eklenir.

    az aks command invoke \
      --resource-group myResourceGroup \
      --name myPrivateCluster \
      --command "kubectl apply -f deployment.yaml -n default" \
      --file deployment.yaml
    

Geçerli dizindeki tüm dosyaların eklendiği komutları çalıştırmak için kullanın command invoke

  • komutunu parametresiyle kullanarak geçerli dizindeki tüm dosyaları ekli olarak az aks command invoke --command --file çalıştırın. Aşağıdaki örnek komut, myResourceGroup'taki myPrivateCluster kümesinde çalışırkubectl apply -f deployment.yaml configmap.yaml -n default. deployment.yaml ve configmap.yaml dosyaları, çalıştırıldığı az aks command invoke geliştirme bilgisayarındaki geçerli dizinin bir parçasıdır.

    az aks command invoke \
      --resource-group myResourceGroup \
      --name myPrivateCluster \
      --command "kubectl apply -f deployment.yaml configmap.yaml -n default" \
      --file .
    

Sorun giderme

ile ilgili en yaygın sorunlar az aks command invoke ve bunların nasıl çözüleceğini öğrenmek için bkz. Hataları çözmeaz aks command invoke.

Sonraki adımlar

Bu makalede, özel bir kümeye erişmeyi ve bu kümede komut çalıştırmayı öğrendiniz. AKS kümeleri hakkında daha fazla bilgi için aşağıdaki makalelere bakın: