KlusterKit

KlusterKit: Toolkit sumber terbuka untuk menyederhanakan penerapan Kubernetes dan dijalankan di lingkungan lokal yang terisolasi secara fisik

KlusterKit

Hari ini kami sangat gembira mengumumkan bahwa Platform9 adalah Klusterkit open source, serangkaian tiga alat, di bawah lisensi Apache v2.0 di GitHub.

Klien kami meluncurkan perangkat lunak di pusat data pribadi yang seringkali tidak terhubung ke Internet (untuk keamanan atau alasan lainnya). Perusahaan-perusahaan besar ini ingin memanfaatkan Kubernetes dan memodernisasi aplikasi mereka dan pada saat yang sama meluncurkannya di pusat data berbeda, yang seringkali tidak terhubung dengan dunia luar. Di sinilah Klusterkit berperan, sehingga memudahkan penyediaan dan pengelolaan klaster K8 di lingkungan yang terisolasi secara fisik.

Klusterkit mencakup tiga alat independen yang dapat digunakan bersama atau terpisah untuk mengelola siklus hidup klaster produksi Kubernetes:

  1. dlldadm, CLI untuk manajemen cluster dll yang disederhanakan.
  2. nodeadm, sebuah CLI untuk administrasi node yang memperluas kubeadm dan menerapkan dependensi yang dibutuhkan oleh kubeadm.
  3. cctl, sebuah alat manajemen siklus hidup klaster yang mengadopsi Cluster API dari komunitas Kubernetes dan menggunakan nodeadm danetcdadm untuk mengirimkan dan memelihara klaster Kubernetes dengan ketersediaan tinggi secara lancar di lingkungan lokal dan bahkan yang terisolasi secara fisik.

Bersama-sama, ketiga alat ini melakukan tugas-tugas berikut:

  • Menyediakan dan mengelola klaster dll dengan mudah dan dasbor Kubernetes di lingkungan lokal yang terisolasi secara fisik melalui Cluster API.
  • Memulihkan panel kontrol cluster setelah kegagalan menggunakan cadangan etcd.
  • Mengemas semua artefak yang diperlukan untuk mengirimkan Kubernetes ke lingkungan yang terisolasi secara fisik.

Fitur Klusterkit

  • Dukungan multi-master (HA cluster K8s).
  • Pengiriman dan pengelolaan cluster dll yang aman.
  • Bekerja di lingkungan yang terisolasi secara fisik.
  • Mendukung peningkatan dan pengembalian bergulir.
  • Flanel (vxlan) sebagai CNI untuk backend; Ada rencana untuk mendukung CNI lainnya.
  • Pencadangan dan pemulihan cluster dll setelah kehilangan kuorum.
  • Melindungi panel kontrol dari kehabisan memori dan waktu CPU.

Arsitektur Solusi Klusterkit

KlusterKit

Untuk toleransi kesalahan dan kesederhanaan, Klusterkit menggunakan satu file cctl-state.yaml untuk menyimpan metadata cluster Kubernetes. Melalui cctl CLI Anda dapat mengelola siklus hidup cluster Kubernetes di mesin mana pun yang memiliki file status ini. Ini bisa berupa laptop operator atau komputer lain yang merupakan bagian dari cluster Kubernetes.

Cctl mengimplementasikan dan memanggil antarmuka cluster-api dari upstream sebagai perpustakaan untuk operasi CRUD pada cluster. Dia menggunakan penyedia ssh, penyedia api klaster bare metal sumber terbuka dari Platform9, yang kemudian memanggiletcdadm dan nodeadm untuk melakukan operasi pada klaster.

Cara menggunakan Klusterkit dan komponennya:

1 – Salah satu dari ketiga alat tersebut dapat dikumpulkan dengan mudah menggunakan perintah go get:

go get -u github.com/platform9/cctl

go get -u github.com/platform9/nodeadm

go get -u github.com/kubernetes-sigs/etcdadm

2 – Executable ini kemudian dapat dipaketkan dan disalin ke mesin target tempat cluster Kubernetes yang memiliki ketersediaan tinggi harus dijalankan. Tempatkan file nodeadm dan etcdadm di direktori versi:

cp $GOPATH/bin/nodeadm /var/cache/ssh-provider/nodeadm//

cp $GOPATH/bin/etcdadm /var/cache/ssh-provider/etcdadm//

3 – Jika Anda perlu mengatur cluster Kubernetes secara lokal, dalam lingkungan yang terisolasi secara fisik, dependensi yang diperlukan dapat dengan mudah diunduh terlebih dahulu di komputer dengan akses Internet menggunakan perintah unduh nodeadm dan etcdadm. Kemudian item yang diunduh (yaitu kubelet dan file unit kubelet untuk systemd, file CNI yang dapat dieksekusi, file kubeadm, semua image container termasuk Kubernetes, image keepalived dan file systemd, image container dll, dan file konfigurasi terkait) dapat dengan mudah disalin ke host yang terisolasi secara fisik. dengan cctl, nodeadm dan dlldadm. (Lihat detailnya di wiki).

4 – Setelah semuanya siap, Anda dapat membuat cluster Kubernetes pertama dengan beberapa perintah:

– Pertama-tama buat kredensial untuk klaster.

$GOPATH/bin/cctl create credential --user root --private-key ~/.ssh/id_rsa

– Kemudian buat objek cluster. –membantu menampilkan daftar opsi yang didukung.

$GOPATH/bin/cctl create cluster --pod-network 192.168.0.0/16 --service-network 192.169.0.0/24

– Terakhir, buat mesin pertama di cluster.

$GOPATH/bin/cctl create machine --ip $MACHINE_IP --role master

Baca dokumentasi lebih lanjut di GitHub.

Sumber: www.habr.com

Tambah komentar