Azure Stack Hub'da AKS altyapısı sorunlarını giderme
Azure Stack Hub'da AKS altyapısını dağıtırken veya bunlarla çalışırken bir sorun bulabilirsiniz. Bu makalede AKS altyapısı dağıtımınızla ilgili sorunları giderme adımlarına bakılacaktır. AKS altyapınız hakkında bilgi toplayın, Kubernetes günlüklerini toplayın ve özel betik uzantısı hata kodlarını gözden geçirin. AKS altyapısı için bir GitHub sorunu da açabilirsiniz.
Not
AKSe sürüm 0.75.3 ve üzeri için aks-engine
aşağıdaki komutlar yerine aks-engine
ile aks-engine-azurestack
başlar.
AKS altyapısı yükleme sorunlarını giderme
Önceki yükleme adımlarınız başarısız olduysa GoFish paket yöneticisini kullanarak AKS altyapısını yükleyebilirsiniz. GoFish kendisini platformlar arası bir Homebrew olarak tanımlar.
AKS altyapısını yüklemek için GoFish kullanma yönergelerini burada bulabilirsiniz.
Düğüm ve küme günlüklerini toplama
Düğüm ve küme günlüklerini toplama yönergelerini Düğüm ve Küme Günlüklerini Alma sayfasında bulabilirsiniz.
Ön koşullar
Bu kılavuzda Azure CLI ve AKS altyapısını indirdiğiniz varsayılır.
Bu kılavuzda, AKS altyapısını kullanarak bir küme dağıttığınız da varsayılır. Daha fazla bilgi için bkz. Azure Stack Hub'da AKS altyapısı ile Kubernetes kümesi dağıtma .
Günlükler alınıyor
Komutu, aks-engine get-logs
kümenizle ilgili sorunları gidermek için yararlı olabilir. komutu bir dizi dosyayı üretir, toplar ve iş istasyonunuza indirir. Dosyalar düğüm yapılandırmasını, küme durumunu ve yapılandırmayı ve günlük dosyalarını ayarlamayı içerir.
Yüksek düzeyde: komut, her düğümde bir SSH oturumu oluşturarak, ilgili dosyaları toplayıp sıkıştıran bir günlük toplama betiği yürüterek ve .ZIP dosyasını yerel bilgisayarınıza indirerek çalışır.
SSH kimlik doğrulaması
Küme Linux düğümlerine SSH oturumu oluşturmak için geçerli bir SSH özel anahtarına ihtiyacınız olacaktır. Windows kimlik bilgileri API modelinde depolanır ve buradan yüklenir. Windows düğümlerinizde SSH'yi etkinleştirmek için true olarak ayarlayın windowsprofile.sshEnabled
.
Günlükleri depolama hesabı kapsayıcısına yükleme
Küme günlükleri başarıyla alındıktan sonra, isteğe bağlı parametre --upload-sas-url
ayarlanırsa AKS Altyapısı bunları bir Azure Depolama Hesabı kapsayıcısı üzerine kaydedebilir. AKS Altyapısı, kapsayıcı adının sağlanan SAS URL'sinin bir parçası olmasını bekler. Beklenen biçim şeklindedir https://{blob-service-uri}/{container-name}?{sas-token}
.
Not
AD FS kimlik sağlayıcısını kullanan özel bulutlardaki depolama hesapları henüz desteklenmiyor.
Düğümler kümeye katılamıyor
Varsayılan olarak, aks-engine get-logs
kümeye başarıyla katılan düğümlerden günlükleri toplar. Kümeye katılamayacak vm'lerden günlükleri toplamak için bayrağını --vm-names
ayarlayın:
--vm-name k8s-pool-01,k8s-pool-02
aks-engine get-logs kullanımı
Dağıtılan bir kümeniz olduğunu ve başlangıçta bu kümeyi dağıtmak için kullanılan API modelinin konumunda _output/<dnsPrefix>/apimodel.json
depolandığını varsayarsak, aşağıdaki gibi bir komut çalıştıran günlükleri toplayabilirsiniz:
aks-engine get-logs \
--location <location> \
--api-model _output/<dnsPrefix>/apimodel.json \
--ssh-host <dnsPrefix>.<location>.cloudapp.azure.com \
--linux-ssh-private-key ~/.ssh/id_rsa
Parametreler
Parametre | Gerekli | Açıklama |
---|---|---|
--Konum | Yes | Kümenin kaynak grubunun Azure konumu. |
--api-model | Yes | Küme için oluşturulan API modelinin yolu. |
--ssh-host | Yes | Kümedeki tüm düğümlere ulaşabilen bir SSH dinleyicisinin FQDN veya IP adresi. |
--linux-ssh-private-key | Yes | Küme Linux düğümlerinde uzak oturum oluşturmak için kullanılabilecek bir SSH özel anahtarının yolu. |
--output-directory | No | Çıkış dizini, eksikse dizininden --api-model türetilir. |
--control-plane-only | No | Yalnızca denetim düzlemi düğümlerinden günlükleri toplayın. |
--vm-names | No | Yalnızca belirtilen VM'lerden (virgülle ayrılmış adlar) günlükleri toplayın. |
--upload-sas-url | No | Toplanan günlükleri karşıya yüklemek için Azure Depolama Hesabı SAS URL'si. |
Özel betik uzantısı hata kodlarını gözden geçirme
AKS altyapısı, dağıtım görevlerini gerçekleştirmek üzere özel betik uzantısının (CSE) kaynağı olarak her Ubuntu Sunucusu için bir betik oluşturur. Betik hata oluşturursa içinde bir hata /var/log/azure/cluster-provision.log
kaydeder. Hatalar portalda görüntülenir. Hata kodu, sorunun durumunu anlamak için yararlı olabilir. CSE çıkış kodları hakkında daha fazla bilgi için bkz cse_helpers.sh
. .
Microsoft destek mühendisine Kubernetes günlükleri sağlama
Günlükleri toplayıp inceledikten sonra sorununuzu hala çözemezseniz, destek bileti oluşturma işlemini başlatmak ve topladığınız günlükleri sağlamak isteyebilirsiniz.
Operatörünüz, oluşturduğunuz günlükleri, Microsoft desteği tarafından gerekebilecek diğer sistem günlükleriyle birlikte birleştirebilir. Operatör bunları Microsoft'un kullanımına sunabilir.
Kubernetes günlüklerini çeşitli yollarla sağlayabilirsiniz:
- Azure Stack Hub operatörünüze başvurabilirsiniz. Operatörünüz, destek olayı oluşturmak için .ZIP dosyasında depolanan günlüklerdeki bilgileri kullanır.
- Kubernetes günlüklerinizi karşıya yükleyebileceğiniz bir depolama hesabının SAS URL'sine sahipseniz, günlükleri depolama hesabına kaydetmek için aşağıdaki komutu ekleyip SAS URL'sini işaretleyebilirsiniz:
Yönergeler için bkz. Günlükleri depolama hesabı kapsayıcısına yükleme.aks-engine get-logs -upload-sas-url <SAS-URL>
- Bulut operatörüyseniz şunları yapabilirsiniz:
- Günlükleri karşıya yüklemek için Azure Stack Hub Yönetim portalındaki Yardım + destek dikey penceresini kullanın. Yönergeler için bkz. Günlükleri yönetici portalıyla şimdi gönderme.
- Privileged End Point (PEP) kullanarak Get-AzureStackLog PowerShell cmdlet'ini kullanma Yönerge için bkz. PowerShell ile günlükleri şimdi gönderme.
GitHub sorunlarını açma
Dağıtım hatanızı çözemiyorsanız bir GitHub Sorunu açabilirsiniz.
AKS altyapısı deposunda bir GitHub Sorunu açın.
Şu biçimi kullanarak bir başlık ekleyin: CSE hatası:
exit code <INSERT_YOUR_EXIT_CODE>
.Soruna aşağıdaki bilgileri ekleyin:
Kümeyi dağıtmak için kullanılan küme yapılandırma dosyası
apimodel.json
. GitHub'a göndermeden önce tüm gizli dizileri ve anahtarları kaldırın.Aşağıdaki kubectl komutunun çıktısı
get nodes
.İyi durumda olmayan bir düğümden içeriği
/var/log/azure/cluster-provision.log
.
Sonraki adımlar
- Azure Stack Hub'da AKS altyapısı hakkında bilgi edinin.