Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Özel bir Azure Kubernetes Service (AKS) kümesine erişirken kümeye küme sanal ağından (VNet), eşlenmiş bir ağdan veya yapılandırılmış bir özel uç noktadan bağlanmanız gerekir. Bu yaklaşımlar, VPN veya Express Route ayarlama gibi ek yapılandırma 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, özel kümenizde kümeye doğrudan bağlanmadan, Azure API aracılığıyla kubectl ve helm gibi komutları uzaktan çağırmanıza olanak tanır. RBAC eylemleri Microsoft.ContainerService/managedClusters/runcommand/action ve Microsoft.ContainerService/managedClusters/commandResults/read 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.
Run command tarafından oluşturulan pod, kümenizi çalıştırmak için kubectl ve helm sağlar.
jq, xargs, grepve awk Bash desteği için kullanılabilir.
İpucu
Azure Copilot'u kullanarak Azure portalında komut çalıştırabilirsiniz kubectl . Daha fazla bilgi için bkz. Azure Copilot kullanarak AKS kümeleriyle verimli çalışma.
Önkoşullar
Sistem ve izin gereksinimleri
| Gereksinim türü | Specification | Doğrulama yöntemi |
|---|---|---|
| Azure CLI sürümü | 2.24.0 veya üzeri |
az --version komutunu kullanarak sürümünüzü kontrol edin. |
| Özel AKS kümesi | Zaten mevcut olmalıdır | Mevcut bir özel kümeniz yoksa Özel AKS kümesi oluşturma bölümünde yer alan adımları izleyin. |
| RBAC eylemleri |
Microsoft.ContainerService/managedClusters/runcommand/action ve Microsoft.ContainerService/managedClusters/commandResults/read |
Azure portalı Erişim denetimi (IAM) sayfasını veya az role assignment list Azure CLI komutunu kullanarak denetleyin. |
Komut podu kaynak belirtimlerini çalıştırma
| Kaynak türü | Değer | Etki |
|---|---|---|
| CPU istekleri | 200m | Komut podu için ayrılmış en düşük CPU |
| Bellek istekleri | 500Mi | Komut podu için ayrılmış en düşük bellek |
| CPU sınırları | 500m | Komut podu için kullanılabilir en yüksek CPU |
| Bellek sınırları | 1Gi | Komut podu için kullanılabilir bellek üst sınırı |
| Azure Resource Manager (ARM) API'sinde zaman aşımı | 60 saniye | Pod zamanlaması için maksimum süre |
| Çıkış boyutu sınırı | 512 kb | En büyük komut çıktı boyutu |
Sınırlamalar ve Dikkat Edilecek Hususlar
Tasarım kapsamı
- Programlı erişim için değil: Otomatik API çağrıları için Bastion, VPN veya ExpressRoute kullanın.
- Pod zamanlama bağımlılığı: Yeterli küme kaynağı gerektirir ( kaynak belirtimlerine bakın).
- Çıkış sınırlamaları: exitCode ve yalnızca metin , API düzeyinde ayrıntı yok.
- Ağ kısıtlamaları geçerlidir: Küme ağı ve güvenlik kısıtlamalarına tabidir.
Olası hata noktaları
- Düğümler kaynak açısından kısıtlıysa pod zamanlaması başarısız olur.
- Pod hızla zamanlanamazsa, ARM API'nin zaman aşımı süresi 60 saniyedir.
- Yanıt 512 KB sınırını aşarsa çıkışın kesilmesi.
Özel bir AKS kümesini Azure CLI ile kullanma command invoke
Kaynak grubunuzun ve küme adının ortam değişkenlerini sonraki komutlarda kullanılacak şekilde ayarlayın.
export AKS_RESOURCE_GROUP="<resource-group-name>" export AKS_CLUSTER_NAME="<cluster-name>"Bu ortam değişkenleri, adlarını yeniden yazmak zorunda kalmadan AKS komutlarını çalıştırmanıza olanak tanır.
Tek bir komut çalıştırmak için kullanın command invoke
az aks command invokekomutunu ve--commandparametresini kullanarak kümenizde tek bir komut çalıştırın. Aşağıdaki örnek, ad alanındakube-systempodları alır.az aks command invoke \ --resource-group $AKS_RESOURCE_GROUP \ --name $AKS_CLUSTER_NAME \ --command "kubectl get pods -n kube-system"
Birden çok komut çalıştırmak için kullanın command invoke
az aks command invokekomutunu ve--commandparametresini kullanarak kümenizde birden çok komut çalıştırın. Aşağıdaki örnek Bitnami Helm grafik deposunu ekler, depoyu güncelleştirir ve grafiği yüklernginx.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"
Ekli dosyayla komutları çalıştırmak için kullanın command invoke
Ekli bir dosyayla bir komut çalıştırmak istiyorsanız, dosyanın mevcut olması ve geçerli çalışma dizininizde erişilebilir olması gerekir. Aşağıdaki örnekte, gösterim için en düşük dağıtım dosyasını oluşturuyoruz.
adlı
deployment.yamlbir Kubernetes bildirim dosyası oluşturun. Aşağıdaki örnek dağıtım dosyası birnginxpod dağıtır.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 EOFKümenize dağıtım dosyasını uygulamak için
az aks command invokekomutunu ve--fileparametresini kullanın. Aşağıdaki örnek,deployment.yamldosyasınıdefaultad alanına uygular.az aks command invoke \ --resource-group $AKS_RESOURCE_GROUP \ --name $AKS_CLUSTER_NAME \ --command "kubectl apply -f deployment.yaml -n default" \ --file deployment.yaml
Geçerli dizindeki tüm dosyalarla komutları çalıştırmak için kullanın command invoke
Uyarı
Sistem boyutu sınırlarını aşmamak için yalnızca küçük, gerekli dosyaları kullanın.
Aşağıdaki örnekte gösterim için en az iki dağıtım dosyası oluşturacağız.
ve
deployment.yamladlıconfigmap.yamliki Kubernetes bildirim dosyası oluşturun. Aşağıdaki örnek dağıtım dosyaları birnginxpod dağıtır ve karşılama iletisiyle bir ConfigMap oluşturur.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" EOFKümenize dağıtım dosyalarını uygulamak için
az aks command invokekomutunu--fileparametresiyle kullanarak dosyaları ekleyin. Aşağıdaki örnek,deployment.yamlveconfigmap.yamldosyalarınıdefaultad alanına uygular.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
Azure portalında özel AKS kümesinde Run command kullanın
kubectl komutlarını Run command özelliğiyle kullanabilirsiniz:
kubectl get nodeskubectl get deploymentskubectl get podskubectl describe nodeskubectl describe pod <pod-name>kubectl describe deployment <deployment-name>kubectl apply -f <file-name>
Tek bir komut çalıştırmak için kullanın Run command
- Azure portalında özel kümenize gidin.
- Hizmet menüsündeki Kubernetes kaynakları'nın altında Çalıştır komutunu seçin.
- Çalıştırmak istediğiniz komutu girin ve Çalıştır'ı seçin.
Ekli dosyalarla komutları çalıştırmak için kullanın Run command
Azure portalında özel kümenize gidin.
Hizmet menüsündeki Kubernetes kaynakları'nın altında Çalıştır komutunu seçin.
Dosya ekle>Dosyalara göz at seçin.
Eklemek istediğiniz dosyayı veya dosyaları seçin ve ardından Ekle'yi seçin.
Çalıştırmak istediğiniz komutu girin ve Çalıştır'ı seçin.
Devre dışı bırakmak Run command
Run command özelliğini, .properties.apiServerAccessProfile.disableRunCommand'yi true olarak ayarlayarak devre dışı bırakabilirsiniz.
command invoke sorunlarını 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.
İlgili içerik
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: