คลัสเตอร์คิท

KlusterKit: ชุดเครื่องมือโอเพ่นซอร์สเพื่อลดความซับซ้อนในการปรับใช้ Kubernetes และทำงานในสภาพแวดล้อมภายในองค์กรที่แยกทางกายภาพ

คลัสเตอร์คิท

วันนี้เรารู้สึกตื่นเต้นที่จะประกาศว่า Platform9 เป็น Klusterkit แบบโอเพ่นซอร์ส ซึ่งเป็นชุดเครื่องมือสามชนิด ภายใต้ลิขสิทธิ์ Apache v2.0 บน GitHub

ลูกค้าของเราเปิดตัวซอฟต์แวร์ในศูนย์ข้อมูลส่วนตัวที่มักไม่ได้เชื่อมต่อกับอินเทอร์เน็ต (เพื่อความปลอดภัยหรือเหตุผลอื่น) บริษัทขนาดใหญ่เหล่านี้ต้องการใช้ประโยชน์จาก Kubernetes และปรับปรุงแอปพลิเคชันของตนให้ทันสมัย ​​และในขณะเดียวกันก็เปิดตัวในศูนย์ข้อมูลต่างๆ ซึ่งมักไม่เชื่อมต่อกับโลกภายนอก นี่คือจุดที่ Klusterkit เข้ามา ทำให้ง่ายต่อการจัดเตรียมและจัดการคลัสเตอร์ K8 ในสภาพแวดล้อมที่แยกออกจากกันทางกายภาพ

Klusterkit มีเครื่องมืออิสระ XNUMX ตัวที่สามารถใช้ร่วมกันหรือแยกกันเพื่อจัดการวงจรการใช้งานของคลัสเตอร์การผลิต Kubernetes:

  1. ฯลฯพ่อ, CLI สำหรับการจัดการคลัสเตอร์ ฯลฯ ที่เรียบง่าย
  2. โหนดซึ่งเป็น CLI สำหรับการดูแลโหนดที่ขยาย kubeadm และปรับใช้การขึ้นต่อกันที่จำเป็นโดย kubeadm
  3. ซีซีทีแอลซึ่งเป็นเครื่องมือการจัดการวงจรชีวิตของคลัสเตอร์ที่ใช้ Cluster API จากชุมชน Kubernetes และใช้ nodeadm และ etcdadm เพื่อส่งมอบและบำรุงรักษาคลัสเตอร์ Kubernetes ที่พร้อมใช้งานสูงในสภาพแวดล้อมภายในองค์กรและแม้แต่สภาพแวดล้อมที่แยกออกจากกันทางกายภาพได้อย่างราบรื่น

เครื่องมือทั้งสามนี้ทำงานร่วมกันดังต่อไปนี้:

  • จัดเตรียมและจัดการคลัสเตอร์ ฯลฯd และแดชบอร์ด Kubernetes ที่พร้อมใช้งานสูงได้อย่างง่ายดายในสภาพแวดล้อมภายในองค์กรที่แยกออกจากกันทางกายภาพผ่าน Cluster API
  • การเรียกคืนแผงควบคุมคลัสเตอร์หลังจากเกิดความล้มเหลวโดยใช้การสำรองข้อมูล ฯลฯ
  • บรรจุสิ่งประดิษฐ์ทั้งหมดที่จำเป็นในการส่งมอบ Kubernetes ในสภาพแวดล้อมที่แยกออกจากกันทางกายภาพ

คุณสมบัติของคลัสเตอร์คิท

  • รองรับมัลติมาสเตอร์ (HA คลัสเตอร์ K8)
  • การส่งมอบและการจัดการคลัสเตอร์ ฯลฯ ที่ปลอดภัย
  • การทำงานในสภาพแวดล้อมที่แยกทางกายภาพ
  • รองรับการอัพเกรดและการย้อนกลับแบบกลิ้ง
  • Flannel (vxlan) เป็น CNI สำหรับแบ็กเอนด์ มีแผนที่จะสนับสนุน CNI อื่นๆ
  • การสำรองและกู้คืนคลัสเตอร์ ฯลฯ หลังจากสูญเสียองค์ประชุม
  • ปกป้องแผงควบคุมไม่ให้หน่วยความจำและเวลา CPU หมด

สถาปัตยกรรมโซลูชัน Klusterkit

คลัสเตอร์คิท

เพื่อความทนต่อข้อผิดพลาดและความเรียบง่าย Klusterkit จะใช้ไฟล์ cctl-state.yaml ไฟล์เดียวเพื่อจัดเก็บข้อมูลเมตาของคลัสเตอร์ Kubernetes คุณสามารถจัดการวงจรการใช้งานของคลัสเตอร์ Kubernetes บนเครื่องใดก็ได้ที่มีไฟล์สถานะนี้ผ่าน cctl CLI นี่อาจเป็นแล็ปท็อปของผู้ปฏิบัติงานหรือคอมพิวเตอร์เครื่องอื่นที่เป็นส่วนหนึ่งของคลัสเตอร์ Kubernetes

Cctl ใช้งานและเรียกใช้อินเทอร์เฟซคลัสเตอร์-api จากอัปสตรีมเป็นไลบรารีสำหรับการดำเนินการ CRUD บนคลัสเตอร์ เขาใช้ ssh-ผู้ให้บริการซึ่งเป็นผู้ให้บริการคลัสเตอร์-api แบบโอเพ่นซอร์สแบบ Bare Metal จาก Platform9 ซึ่งจะเรียก etcdadm และ nodeadm เพื่อดำเนินการบนคลัสเตอร์

วิธีใช้ Klusterkit และส่วนประกอบต่างๆ:

1 – สามารถรวบรวมเครื่องมือใดๆ จากทั้งสามอย่างได้อย่างง่ายดายด้วยคำสั่ง 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 – จากนั้นสามารถบรรจุและคัดลอกไฟล์ปฏิบัติการเหล่านี้ไปยังเครื่องเป้าหมายที่คลัสเตอร์ Kubernetes ที่มีความพร้อมใช้งานสูงควรทำงานอยู่ วางไฟล์ nodeadm และ etcdadm ในไดเร็กทอรีเวอร์ชัน:

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

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

3 – หากคุณต้องการประสานคลัสเตอร์ Kubernetes ภายในเครื่อง ในสภาพแวดล้อมที่แยกออกจากกันทางกายภาพ คุณสามารถดาวน์โหลดการขึ้นต่อกันที่จำเป็นล่วงหน้าบนคอมพิวเตอร์ที่เข้าถึงอินเทอร์เน็ตได้อย่างง่ายดาย โดยใช้คำสั่งดาวน์โหลด nodeadm และ etcdadm จากนั้น รายการที่ดาวน์โหลด (เช่น ไฟล์หน่วย kubelet และ kubelet สำหรับ systemd, ไฟล์ปฏิบัติการ CNI, ไฟล์ kubeadm, อิมเมจคอนเทนเนอร์ทั้งหมดรวมถึง Kubernetes, อิมเมจ Keepalived และไฟล์ systemd, อิมเมจคอนเทนเนอร์ ฯลฯ และไฟล์การกำหนดค่าที่เกี่ยวข้อง) จะสามารถคัดลอกไปยังโฮสต์ที่แยกออกทางกายภาพได้อย่างง่ายดาย ด้วย cctl, nodeadm และ etcdadm (ดูรายละเอียดใน วิกิพีเดีย).

4 – เมื่อทุกอย่างเข้าที่แล้ว คุณสามารถสร้างคลัสเตอร์ Kubernetes แรกได้ด้วยคำสั่งสองสามคำสั่ง:

– ขั้นแรกให้สร้างข้อมูลรับรองสำหรับคลัสเตอร์

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

– จากนั้นสร้างวัตถุคลัสเตอร์ –help แสดงรายการตัวเลือกที่รองรับ

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

– สุดท้าย สร้างเครื่องแรกในคลัสเตอร์

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

อ่านเอกสารเพิ่มเติมได้ที่ GitHub.

ที่มา: will.com

เพิ่มความคิดเห็น