KlusterKit: ชุดเครื่องมือโอเพ่นซอร์สเพื่อลดความซับซ้อนในการปรับใช้ Kubernetes และทำงานในสภาพแวดล้อมภายในองค์กรที่แยกทางกายภาพ
วันนี้เรารู้สึกตื่นเต้นที่จะประกาศว่า Platform9 เป็น Klusterkit แบบโอเพ่นซอร์ส ซึ่งเป็นชุดเครื่องมือสามชนิด ภายใต้ลิขสิทธิ์ Apache v2.0 บน GitHub
ลูกค้าของเราเปิดตัวซอฟต์แวร์ในศูนย์ข้อมูลส่วนตัวที่มักไม่ได้เชื่อมต่อกับอินเทอร์เน็ต (เพื่อความปลอดภัยหรือเหตุผลอื่น) บริษัทขนาดใหญ่เหล่านี้ต้องการใช้ประโยชน์จาก Kubernetes และปรับปรุงแอปพลิเคชันของตนให้ทันสมัย และในขณะเดียวกันก็เปิดตัวในศูนย์ข้อมูลต่างๆ ซึ่งมักไม่เชื่อมต่อกับโลกภายนอก นี่คือจุดที่ Klusterkit เข้ามา ทำให้ง่ายต่อการจัดเตรียมและจัดการคลัสเตอร์ K8 ในสภาพแวดล้อมที่แยกออกจากกันทางกายภาพ
Klusterkit มีเครื่องมืออิสระ XNUMX ตัวที่สามารถใช้ร่วมกันหรือแยกกันเพื่อจัดการวงจรการใช้งานของคลัสเตอร์การผลิต Kubernetes:
ฯลฯพ่อ , CLI สำหรับการจัดการคลัสเตอร์ ฯลฯ ที่เรียบง่ายโหนด ซึ่งเป็น CLI สำหรับการดูแลโหนดที่ขยาย kubeadm และปรับใช้การขึ้นต่อกันที่จำเป็นโดย kubeadmซีซีทีแอล ซึ่งเป็นเครื่องมือการจัดการวงจรชีวิตของคลัสเตอร์ที่ใช้ 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 บนคลัสเตอร์ เขาใช้
วิธีใช้ 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
อ่านเอกสารเพิ่มเติมได้ที่
ที่มา: will.com