Aracılığıyla paylaş


"az aks command invoke" hatalarını çözme

Bu makalede, özellikle özel bir AKS kümesine herhangi bir Azure Kubernetes Service (AKS) kümesine başarıyla bağlanabilmeniz için Microsoft Azure CLI'da az aks komutu çağırma hatalarının nasıl çözülebileceği açıklanır.

Diğer bağlantı yöntemlerinin, aşağıdaki tabloda gösterildiği gibi ek yapılandırma bileşenleri kullanması gerekir.

Bağlantı yöntemleri Ek yapılandırma bileşeni
Sanal ağ Sanal özel ağ (VPN)
Eşlenen ağ Azure ExpressRoute
Özel uç nokta Sıçrama Kutusu

az aks command invoke Azure CLI komutu, ek yapılandırma bileşenleri gerektirmeyen bir kümeye bağlanmanın alternatif bir yoludur.

Komutunu çalıştırdığınızda Azure CLI, AKS kümesine az aks command invoke erişmek ve gerekli bilgileri almak için ad alanında aks-command otomatik olarak bir command-<ID> pod oluşturur.

Önkoşullar

Belirtiler

Aşağıdaki tabloda yaygın az aks command invoke hata iletileri listelenir. Her hata iletisinin, hatanın neden oluştuğunu ve nasıl düzeltileceğini açıklayan bir bölümün bağlantısı vardır.

Hata iletisi Bağlantı
İşlem geçersiz bir 'Bulunamadı' durumu döndürdü Neden 1: Düğüm veya kaynak kısıtlamaları nedeniyle pod oluşturulamıyor
Kubernetes hatası nedeniyle yönetilen kümede komut çalıştırılamadı. ayrıntılar: "validation.gatekeeper.sh" kabul web kancası isteği reddetti: <ilkeye özgü ileti> Neden 2: Azure İlkesi pod oluşturmaya izin vermiyor
Sunucudan hata (Yasak): ad alanları yasak: Kullanıcı "<Kimliği>" küme kapsamındaki "" API grubundaki "<kaynağı>" listeleyemez Neden 3: Gerekli roller verilmedi
MSI'ya bağlanılamadı. Lütfen MSI'nin doğru yapılandırıldığından emin olun.

Döndürülen Belirteç isteğini alma: Yanıt [400];
Neden 4: Cloud Shell bir sorun var

Neden 1: Düğüm veya kaynak kısıtlamaları nedeniyle pod oluşturulamıyor

Pod gibi Runningbaşarılı bir duruma ulaşamadığından command-<ID> işlem bir Not Found durum döndürür. (Çoğu durumda pod durumunda Pending kalır.) Bu durumda düğümler podu zamanlayamaz. Bu senaryonun aşağıdaki nedenler gibi farklı nedenleri olabilir:

  • Kaynak kısıtlamaları
  • veya SchedulingDisabled durumuna sahip NotReady düğümler
  • Pod'un tolere edemeyeceği lekelere sahip düğümler
  • Diğer nedenler

Çözüm 1: Pod'u zamanlayıp çalıştırabilmeniz için yapılandırmayı değiştirin

Pod'un zamanlanıp çalıştırılabildiğinden command-<ID> emin olun.

Neden 2: Azure İlkesi pod oluşturmaya izin vermiyor

Belirli Azure ilkeleriniz varsa, poddaki az aks command invoke izin verilmeyen bir yapılandırma command-<ID> nedeniyle komut başarısız olabilir. Örneğin, salt okunur bir kök dosya sistemi veya başka bir özel yapılandırma gerektiren bir Azure ilkeniz olabilir.

Çözüm 2: Pod oluşturmayı engelleyen ilkeler için ad alanını muaf tutma

Pod oluşturmaya izin vermeyen ilişkili Azure ilkeleri için ad alanını muaf tutmanızı aks-command öneririz. Muafiyet hakkında daha fazla bilgi için bkz. Azure İlkesi'de kapsamı anlama

Bir Azure İlkesi muaf tutma:

  1. Azure portalİlke'yi arayın ve seçin.

  2. İlke gezinti bölmesinde Yazma bölümünü bulun ve Atamalar'ı seçin.

  3. Ödevler tablosunda, değiştirmek istediğiniz Atama adını içeren satırı bulun ve atamanın adını seçin.

  4. Bu atamanın ilke ataması sayfasında Ödevi düzenle'yi seçin.

  5. Parametreler sekmesini seçin.

  6. Yalnızca giriş veya gözden geçirme gerektiren parametreleri göster seçeneğini temizleyin.

  7. Ad alanı dışlamaları kutusunda, aks-command ad alanını dışlanacak ad alanları listesine ekleyin.

Alternatif olarak, ilke yerleşik bir ilke değilse podun command-<ID> yapılandırmasını denetleyebilir ve ilkeyi gerektiği gibi ayarlayabilirsiniz. Pod'un YAML yapılandırmasını keşfetmek için aşağıdaki komutu çalıştırın:

kubectl get pods command-<ID> --namespace aks-command --output yaml

Neden 3: Gerekli roller verilmedi

komutunu kullanmak az aks command invoke için kümede aşağıdaki rollere erişiminiz olmalıdır:

  • Microsoft.ContainerService/managedClusters/runCommand/action
  • Microsoft.ContainerService/managedClusters/commandResults/read

Bu rollere sahip değilseniz, az aks command invoke komut gerekli bilgileri alamaz.

Çözüm 3: Gerekli rolleri ekleme

ve Microsoft.ContainerService/managedClusters/commandResults/read rollerini Microsoft.ContainerService/managedClusters/runCommand/action ekleyin.

Neden 4: Cloud Shell bir sorun var

Komutaz aks command invoke, doğrudan Azure Cloud Shell ortamında çalıştırıldığında beklendiği gibi işlenmez. Bu, Cloud Shell bilinen bir sorundur.

Çözüm 4a: Önce az login komutunu çalıştırın

Cloud Shell'de çalıştırmadan önce az login komutunu çalıştırınaz aks command invoke.

Çözüm 4b: Komutu yerel bir bilgisayarda veya sanal makinede çalıştırma

az aks command invoke Komutunu yerel bir bilgisayarda veya Azure CLI yüklü herhangi bir sanal makinede (VM) çalıştırın.

Üçüncü taraf bilgileri hakkında yasal uyarı

Bu makalede adı geçen üçüncü taraf ürünleri Microsoft'tan bağımsız şirketler tarafından üretilmektedir. Microsoft, bu ürünlerin performansı veya güvenilirliği ile ilgili örtük veya başka türlü hiçbir garanti vermez.

Yardım için bize ulaşın

Sorularınız veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteği isteyin. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.