"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
Kubernetes kubectl aracı. Azure CLI kullanarak kubectl yüklemek için az aks install-cli komutunu çalıştırın.
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 Running
baş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 sahipNotReady
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:
Azure portalİlke'yi arayın ve seçin.
İlke gezinti bölmesinde Yazma bölümünü bulun ve Atamalar'ı seçin.
Ödevler tablosunda, değiştirmek istediğiniz Atama adını içeren satırı bulun ve atamanın adını seçin.
Bu atamanın ilke ataması sayfasında Ödevi düzenle'yi seçin.
Parametreler sekmesini seçin.
Yalnızca giriş veya gözden geçirme gerektiren parametreleri göster seçeneğini temizleyin.
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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin