Yapılandırma dosyası bağlanırken kullanılamaz
Bu makalede, eksik veya geçersiz bir yapılandırma dosyası nedeniyle bir Azure Kubernetes Service (AKS) kümesine bağlanamadığınızda oluşan sorunların nasıl çözülebileceği açıklanır.
Önkoşullar
- Azure CLI.
- Kubernetes kümesi komut satırı aracı (kubectl). Alternatif olarak azure CLI'da az aks install-cli komutunu çalıştırarak kubectl yükleyebilirsiniz.
Belirtiler
Küme bağlantısı girişimi sırasında aşağıdaki metne benzer bir hata iletisi görüntülenir:
Unable to connect to the server: dial tcp [::1]:8080: connectex: No connection could be made because the target machine actively refused it.
error: You must be logged in to the server (the server has asked for the client to provide credentials)
Nedenler
kubectl aracı ve diğer Kubernetes bağlantı araçları, config adlı yerel bir yapılandırma dosyası kullanır. Yapılandırma dosyası, kümeye bağlanmak için kimlik doğrulama kimlik bilgilerini ve ayrıntıları içerir. Varsayılan olarak:
Yönetilen kubernetes kümesinin erişim kimlik bilgilerini almak için kullanılan Azure CLI'daki az aks get-credentials komutu ~/.kube/config dosyasını değiştirir.
kubectl komutu, $HOME/.kube dizinindeki kubeconfig(kubectl yapılandırması) dosyasını kullanır.
Bu nedenle, denenen bir Kubernetes oturumu sırasında ne olacağı, kubectl komutunu çalıştıran kullanıcıya bağlıdır. A kullanıcısı olarak oturum açtıysanız ve her iki komutu da yürütürseniz, şöyle olur:
Komut,
az aks get-credentials
C:\Users\A\.kube\config dosyasına yeni kubeconfig parametrelerini eklemeyi dener.kubectl komutu C:\Users\A\.kube\config dosyasında arama yapmaya çalışır.
Ancak kubectl için kubeconfig dosyasının işaretçisi değiştiyse, kümeye erişmek için kullanılan dosyanın farklı bir konumda olması gerekir.
Not
kubeconfig dosyası, Kubernetes kümelerine erişmek için yapılandırma parametrelerini içeren bir dosya başvurusudur. Kubeconfig adlı bir dosyaya başvurması gerekmez.
Hata, aşağıdaki senaryolardan biri gerçekleşirse oluşur:
Neden 1: Yapılandırma dosyası yok
Yapılandırma dosyası makinenizde yok.
Çözüm: Kimlik bilgilerini kaydetme
Kimlik bilgilerini kaydeden Azure CLI'da komutunu çalıştırarak az aks get-credentials
yapılandırma dosyasını yükleyin. Varsayılan konumu kullanmak istemiyorsanız, parametresini yapılandırma konumuyla (örneğin, ~/Dir1/Dir2/config veya C:\Dir1\Dir2\config) belirtin--file <config-file-location>
.
az aks get-credentials --resource-group <cluster-resource-group> \
--name <cluster-name> \
[--file <config-file-location>]
Neden 2: Yapılandırma dosyası yanlış dizinde
Yapılandırma dosyası makinenizdedir, ancak komutun ve/veya kubectl aracının az aks get-credentials
beklediği dizinden farklı bir dizindedir.
Çözüm: Yapılandırma dosyasını taşıyın, kimlik bilgilerini yeniden kaydedin veya KUBECONFIG ortam değişkenini değiştirin
Aşağıdaki eylemlerden birini veya birkaçını gerçekleştirin:
Yapılandırma dosyasını içinde olmasını istediğiniz dizine taşıyın.
az aks get-credentials
komutunu çalıştırın. Varsayılan konum değilse, istediğiniz konumu belirtin.az aks get-credentials --resource-group <cluster-resource-group> \ --name <cluster-name> \ [--file <config-file-location>]
Kubectl'nin yapılandırma parametrelerini nerede arayacağı değiştirmek için aşağıdaki seçeneklerden birini kullanın:
Ortam değişkenini
KUBECONFIG
yapılandırma dosyasının geçerli konumuna işaret etmek için değiştirin. Daha fazla bilgi için bkz. KUBECONFIG ortam değişkenini ayarlama.parametresiyle
--kubeconfig=<config-file-location>
kubectl config komutunu çalıştırın.
Neden 3: Yapılandırma dosyasının süresi doldu veya bozuk
Yapılandırma dosyası makinenizdedir. Komut ve kubectl aracı için az aks get-credentials
beklenen dizinde de bulunur. Ancak dosyanın süresi doldu veya bozuk.
Çözüm: Kimlik bilgilerini yeniden oluşturma
Mevcut kimlik bilgilerinin süresi dolmuş veya bozulmuş olabileceğinden kimlik bilgilerini yeniden kurabilirsiniz. Bu durumda komutunu parametresiyle --overwrite-existing
çalıştırabilirsinizaz aks get-credentials
.
az aks get-credentials --resource-group <cluster-resource-group> \
--name <cluster-name> \
--overwrite-existing \
[--file <config-file-location>]
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.