Bagikan melalui


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:
    aks-engine get-logs -upload-sas-url <SAS-URL>
    
    Untuk mengetahui petunjuknya, lihat Mengunggah log ke kontainer akun penyimpanan.
  • Jika merupakan operator cloud, Anda dapat:

Membuka masalah GitHub

Jika tidak dapat menyelesaikan kesalahan penyebaran, Anda dapat membuka Masalah GitHub.

  1. Buka Masalah GitHub di repositori mesin AKS.

  2. Tambahkan judul menggunakan format berikut: kesalahan CSE: exit code <INSERT_YOUR_EXIT_CODE>.

  3. 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 kubectlget nodes.

    • Isi /var/log/azure/cluster-provision.log dari node berkondisi buruk.

Langkah berikutnya