KlusterKit

KlusterKit: Toolkit open source kanggo nyederhanakake panyebaran Kubernetes lan mbukak ing lingkungan ing papan sing diisolasi sacara fisik

KlusterKit

Dina iki kita bungah ngumumake yen Platform9 mbukak sumber Klusterkit, suite saka telung alat, miturut lisensi Apache v2.0 ing GitHub.

Klien kita muter piranti lunak ing pusat data pribadi sing asring ora nyambung menyang Internet (kanggo keamanan utawa alasan liyane). Perusahaan gedhe iki pengin njupuk kauntungan saka Kubernetes lan modernisasi aplikasi lan ing wektu sing padha muter metu ing pusat data beda, kang asring ora nyambung menyang donya njaba. Iki ngendi Klusterkit rawuh ing, nggawe gampang kanggo panentu lan ngatur K8s kluster ing lingkungan fisik terisolasi.

Klusterkit kalebu telung alat mandiri sing bisa digunakake bebarengan utawa kanthi kapisah kanggo ngatur siklus urip kluster produksi Kubernetes:

  1. etcdadm, CLI kanggo manajemen kluster etcd sing disederhanakake.
  2. nodeadm, CLI kanggo administrasi simpul sing ngluwihi kubeadm lan nyebarake dependensi sing dibutuhake kubeadm.
  3. cctl, alat manajemen siklus urip kluster sing nganggo API Kluster saka komunitas Kubernetes lan nggunakake nodeadm lan etcdadm kanggo ngirim lan njaga kluster Kubernetes sing kasedhiya banget ing lingkungan lokal lan malah terisolasi sacara fisik.

Bebarengan, telung alat kasebut nindakake tugas ing ngisor iki:

  • Nyedhiyakake lan ngatur kluster etcd lan dasbor Kubernetes sing kasedhiya ing lingkungan sing diisolasi sacara fisik liwat Cluster API.
  • Mulihake panel kontrol kluster sawise gagal nggunakake serep etcd.
  • Kemas kabeh artefak sing dibutuhake kanggo ngirim Kubernetes menyang lingkungan sing terisolasi sacara fisik.

fitur Klusterkit

  • Dhukungan multi-master (HA kluster K8s).
  • Pangiriman lan manajemen kluster etcd aman.
  • Makarya ing lingkungan terisolasi fisik.
  • Ndhukung rolling upgrade lan rollbacks.
  • Flanel (vxlan) minangka CNI kanggo backend; Ana rencana kanggo ndhukung CNI liyane.
  • Gawe serep lan pemugaran kluster etcd sawise mundhut kuorum.
  • Nglindhungi panel kontrol saka entek memori lan wektu CPU.

Arsitektur Solusi Klusterkit

KlusterKit

Kanggo toleransi fault lan gamblang, nggunakake Klusterkit file cctl-state.yaml siji kanggo nyimpen metadata kluster Kubernetes. Liwat cctl CLI sampeyan bisa ngatur siklus urip kluster Kubernetes ing mesin apa wae sing nduweni file negara iki. Iki bisa dadi laptop operator utawa komputer liyane sing kalebu klompok Kubernetes.

Cctl ngleksanakake lan nelpon antarmuka kluster-api saka hulu minangka perpustakaan kanggo operasi CRUD ing kluster. Dheweke nggunakake ssh-panyedhiya, panyedhiya kluster-api logam open-source saka Platform9, sing banjur nelpon etcdadm lan nodeadm kanggo nindakake operasi ing kluster.

Cara nggunakake Klusterkit lan komponen:

1 - Apa wae saka telung alat kasebut bisa gampang diklumpukake kanthi prentah 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 - Eksekusi kasebut banjur bisa dikemas lan disalin menyang mesin target ing ngendi kluster Kubernetes sing kasedhiya banget kudu mlaku. Selehake file nodeadm lan etcdadm ing direktori versi:

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

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

3 - Yen sampeyan kudu ngatur kluster Kubernetes sacara lokal, ing lingkungan sing diisolasi sacara fisik, dependensi sing dibutuhake bisa diundhuh kanthi gampang ing komputer kanthi akses Internet nggunakake printah download nodeadm lan etcdadm. Banjur item sing diundhuh (yaiku file unit kubelet lan kubelet kanggo systemd, file eksekusi CNI, file kubeadm, kabeh gambar wadah kalebu Kubernetes, gambar keepalived lan file systemd, gambar wadah etcd lan file konfigurasi sing cocog) bisa gampang disalin menyang host sing diisolasi sacara fisik bebarengan karo cctl, nodeadm lan etcdadm. (Deleng rincian ing wiki).

4 - Sawise kabeh wis rampung, sampeyan bisa nggawe kluster Kubernetes pisanan kanthi sawetara prentah:

- Pisanan nggawe kredensial kanggo kluster.

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

– Banjur gawe obyek kluster. -help nampilake dhaptar pilihan sing didhukung.

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

– Pungkasan, nggawe mesin pisanan ing kluster.

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

Waca liyane dokumentasi ing GitHub.

Source: www.habr.com

Add a comment