Memecahkan masalah mesin AKS di Azure Stack Hub
Anda mungkin menemukan masalah saat menyebarkan atau bekerja dengan mesin AKS di Azure Stack Hub. Artikel ini melihat langkah-langkah untuk memecahkan masalah penyebaran mesin AKS Anda. Kumpulkan informasi tentang mesin AKS Anda, kumpulkan log Kubernetes, dan tinjau kode galat ekstensi skrip kustom. Anda juga dapat membuka masalah GitHub untuk mesin AKS.
Catatan
Untuk AKSe versi 0.75.3 ke atas, perintah di aks-engine
bawah ini akan dimulai dengan aks-engine-azurestack
bukan aks-engine
.
Memecahkan masalah penginstalan mesin AKS
Jika langkah-langkah penginstalan sebelumnya gagal, Anda dapat menginstal mesin AKS menggunakan manajer paket GoFish. GoFish dideskripsikan sebagai Homebrew lintas platform.
Anda dapat menemukan instruksi untuk menggunakan GoFish untuk menginstal mesin AKS di sini.
Mengumpulkan log node dan kluster
Anda dapat menemukan petunjuk cara mengumpulkan log node dan cluster di Mengambil Log Node dan Kluster.
Prasyarat
Panduan ini mengasumsikan Anda sudah mengunduh Azure CLI dan mesin AKS.
Panduan ini juga mengasumsikan bahwa Anda telah menyebarkan kluster menggunakan mesin AKS. Untuk informasi selengkapnya, lihat Menyebarkan kluster Kubernetes dengan mesin AKS di Azure Stack Hub .
Mengambil log
Perintah aks-engine get-logs
ini dapat berguna untuk memecahkan masalah dengan kluster Anda. Perintah ini menghasilkan, mengumpulkan, dan mengunduh satu set file ke workstation Anda. File tersebut termasuk konfigurasi node, status kluster dan konfigurasi, serta file log penyiapan.
Pada tingkat tinggi: perintah ini bekerja dengan membuat sesi SSH ke setiap node, menjalankan skrip pengumpulan log yang mengumpulkan dan membuat zip pada file yang relevan, serta mengunduh file .ZIP ke komputer lokal Anda.
Autentikasi SSH
Anda akan memerlukan kunci privat SSH yang valid untuk membuat sesi SSH ke node Linux kluster. Info masuk Windows disimpan dalam model API dan akan dimuat dari sana. Atur windowsprofile.sshEnabled
ke true untuk mengaktifkan SSH di node Windows Anda.
Mengunggah log ke kontainer akun penyimpanan
Setelah log kluster berhasil diambil, Mesin AKS dapat menyimpannya pada kontainer Akun Azure Storage jika parameter opsional --upload-sas-url
diatur. Mesin AKS mengharapkan nama kontainer menjadi bagian dari URL SAS yang disediakan. Format yang diharapkan adalah https://{blob-service-uri}/{container-name}?{sas-token}
.
Catatan
Akun penyimpanan di cloud kustom yang menggunakan IdP Active Directory Federation Services belum didukung.
Node tidak dapat bergabung dengan kluster
Secara default, aks-engine get-logs
mengumpulkan log dari node yang berhasil bergabung dengan kluster. Untuk mengumpulkan log dari mesin virtual yang tidak dapat bergabung dengan kluster, atur bendera --vm-names
:
--vm-name k8s-pool-01,k8s-pool-02
Penggunaan untuk aks-engine get-logs
Dengan asumsi bahwa Anda memiliki kluster yang disebarkan dan model API yang awalnya digunakan untuk menyebarkan kluster tersebut disimpan di _output/<dnsPrefix>/apimodel.json
, maka Anda dapat mengumpulkan log yang menjalankan perintah seperti:
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
Parameter
Parameter | Diperlukan | Deskripsi |
---|---|---|
--location | Ya | Lokasi Azure dari grup sumber daya kluster. |
--api-model | Ya | Jalur ke model API yang dihasilkan untuk kluster. |
--ssh-host | Ya | FQDN, atau alamat IP, dari pendengar SSH yang dapat menjangkau semua node dalam kluster. |
--linux-ssh-private-key | Ya | Jalur ke kunci privat SSH yang dapat digunakan untuk membuat sesi jarak jauh pada node Linux kluster. |
--output-directory | Tidak | Direktori output, berasal dari --api-model jika hilang. |
--control-plane-only | Tidak | Hanya mengumpulkan log dari node sarana kontrol. |
--vm-names | Tidak | Hanya mengumpulkan log dari mesin virtual yang ditentukan (nama yang dipisahkan koma). |
--upload-sas-url | Tidak | URL SAS Akun Azure Storage untuk mengunggah log yang dikumpulkan. |
Meninjau kode galat ekstensi skrip kustom
Mesin AKS menghasilkan skrip untuk setiap Server Ubuntu sebagai sumber daya untuk ekstensi skrip kustom (CSE) untuk melakukan tugas penyebaran. Jika menghasilkan kesalahan, skrip akan mencatat kesalahan di /var/log/azure/cluster-provision.log
. Kesalahan ditampilkan di portal. Kode galat dapat membantu dalam mencari tahu kasus masalah. Untuk informasi selengkapnya tentang kode keluar CSE, lihat cse_helpers.sh
.
Menyediakan log Kubernetes kepada teknisi dukungan Microsoft
Jika setelah mengumpulkan dan memeriksa log masalah masih belum dapat diselesaikan, Anda mungkin ingin memulai proses pembuatan tiket dukungan dan menyediakan log yang Anda kumpulkan.
Operator Anda dapat menggabungkan log yang Anda hasilkan bersama dengan log sistem lain yang mungkin diperlukan oleh dukungan Microsoft. Operator dapat membuatnya tersedia untuk Microsoft.
Anda dapat menyediakan log Kubernetes dengan beberapa cara:
- Anda dapat menghubungi operator Azure Stack Hub Anda. Operator Anda menggunakan informasi dari log yang disimpan dalam file .ZIP untuk membuat kasus dukungan.
- Jika memiliki URL SAS untuk akun penyimpanan tempat pengunggahan log Kubernetes, Anda dapat menyertakan perintah dan bendera berikut dengan URL SAS untuk menyimpan log ke akun penyimpanan:
Untuk mengetahui petunjuknya, lihat Mengunggah log ke kontainer akun penyimpanan.aks-engine get-logs -upload-sas-url <SAS-URL>
- Jika merupakan operator cloud, Anda dapat:
- Menggunakan bilah Bantuan + dukungan di portal Administrasi Azure Stack Hub untuk mengunggah log. Untuk mengetahui petunjuknya, lihat Mengirim log sekarang dengan portal administrator.
- Gunakan cmdlet Get-AzureStackLog PowerShell menggunakan petunjuk Privileged End Point (PEP), lihat Mengirim log sekarang dengan PowerShell.
Membuka masalah GitHub
Jika tidak dapat menyelesaikan kesalahan penyebaran, Anda dapat membuka Masalah GitHub.
Buka Masalah GitHub di repositori mesin AKS.
Tambahkan judul menggunakan format berikut: kesalahan CSE:
exit code <INSERT_YOUR_EXIT_CODE>
.Sertakan informasi berikut dalam masalah ini:
File konfigurasi kluster,
apimodel.json
, digunakan untuk menyebarkan kluster. Hapus semua rahasia dan kunci sebelum mempostingnya di GitHub.Output dari perintah kubectl
get nodes
.Isi
/var/log/azure/cluster-provision.log
dari node berkondisi buruk.
Langkah berikutnya
- Baca tentang Mesin AKS di Azure Stack Hub.