Eskalator adalah batch atau pekerjaan autoscaler horizontal yang dioptimalkan untuk kubernetes
Ini dirancang untuk batch besar atau beban kerja berbasis pekerjaan yang tidak dapat dikeringkan dan dipindahkan ketika cluster perlu mengurangi - eskalator akan memastikan polong telah diselesaikan pada node sebelum mengakhiri mereka. Ini juga dioptimalkan untuk meningkatkan cluster secepat mungkin untuk memastikan polong tidak ditinggalkan dalam keadaan yang tertunda.
Hitung permintaan dan kapasitas untuk menentukan apakah akan meningkatkan, turun atau tetap pada skala saat ini
Menunggu sampai polong non-daemonset pada node telah selesai sebelum mengakhiri node
Dirancang untuk bekerja pada grup penskalaan otomatis yang dipilih untuk memungkinkan Kubernetes Autoscaler default untuk terus skala beban kerja berbasis layanan
Secara otomatis mengakhiri node tertua terlebih dahulu
Dukungan untuk ruang slack untuk memastikan ruang ekstra jika terjadi lonjakan pod yang dijadwalkan
Tidak mengakhiri atau faktor node yang dikumpulkan ke dalam perhitungan - memungkinkan node yang ditutup untuk bertahan untuk debugging
Dukungan untuk penyedia cloud yang berbeda - AWS hanya saat ini
Metrik penskalaan dan pemanfaatan
Pemilihan pemimpin sehingga Anda dapat menjalankan penyebaran HA di dalam sebuah cluster.
Dukungan dasar untuk beberapa jenis instance dalam grup simpul.
Kebutuhan akan autoscaler ini berasal dari pengalaman kita sendiri dengan beban kerja batch yang sangat besar dijadwalkan dan autoscaler default tidak meningkatkan cluster dengan cukup cepat. Beban kerja ini tidak dapat dikeringkan oleh autoscaler default dan harus diselesaikan sebelum node dapat diakhiri.
Lihat Docs
Versi Kubernetes 1.24+. Eskalator telah diuji dan digunakan pada 1.24+ dan lebih baru. Versi kubernet yang lebih lama mungkin memiliki bug atau masalah yang akan mencegahnya berfungsi dengan baik.
GO Versi 1.20+
Ketergantungan dan versi yang terkunci dapat ditemukan di go.mod
dan go.sum
.
# Ambil dependensi dan bangun escalatormake build
Jalankan cmd/main.go --kubeconfig = ~/.kube/config --nodeGroups = nodeGroups_config.yaml
Lihat Penempatan untuk dokumentasi penempatan penuh.
# Bangun Docker Imagedocker Build -t Atlassian/Escalator.# Buat RBAC ConfigurationKubectl Buat -F Documents/Deployment/Escalator -RBAC.YAML# Buat peta konfigur # Buat DeploymentKubectl Create -F Docs/Deployment/Escalator -Deployment.yaml
Lihat Konfigurasi
melakukan tes
Misalnya, untuk menguji paket pengontrol:
tes go ./pkg/controller
Tarik permintaan, masalah, dan komentar selamat datang. Untuk permintaan tarik:
Tambahkan tes untuk fitur baru dan perbaikan bug
Ikuti gaya yang ada (kami menggunakan goreturn untuk format dan lint escalator)
Pisahkan perubahan yang tidak terkait menjadi beberapa permintaan tarik
Lihat masalah yang ada untuk hal -hal yang akan mulai berkontribusi.
Untuk perubahan yang lebih besar, pastikan Anda memulai diskusi terlebih dahulu dengan membuat masalah dan menjelaskan perubahan yang dimaksudkan.
Atlassian mengharuskan kontributor untuk menandatangani perjanjian lisensi kontributor, yang dikenal sebagai CLA. Ini berfungsi sebagai catatan yang menyatakan bahwa kontributor berhak untuk berkontribusi kode/dokumentasi/terjemahan ke proyek dan bersedia menggunakannya dalam distribusi dan karya derivatif (atau bersedia mentransfer kepemilikan).
Sebelum menerima kontribusi Anda, kami meminta Anda mengikuti tautan yang sesuai di bawah ini untuk menandatangani CLA secara digital. CLA perusahaan adalah untuk mereka yang berkontribusi sebagai anggota organisasi dan CLA individu untuk mereka yang berkontribusi sebagai individu.
CLA untuk kontributor perusahaan
CLA untuk individu
Hak Cipta (C) 2018 Atlassian dan lainnya. Apache 2.0 berlisensi, lihat file lisensi.