KlusterKit:一個開源工具包,用於簡化 Kubernetes 部署並在物理隔離的本地環境中運行
今天,我們很高興地宣布,Platform9 在 GitHub 上的 Apache v2.0 許可下開源了 Klusterkit,這是一套包含三個工具的套件。
我們的客戶在私人資料中心推出軟體,這些資料中心通常不會連接到網路(出於安全或其他原因)。 這些大公司希望利用 Kubernetes 對其應用程式進行現代化改造,同時將它們部署到不同的資料中心,而這些資料中心通常不會與外界連接。 這就是 Klusterkit 的用武之地,它可以讓您在物理隔離的環境中輕鬆配置和管理 K8s 叢集。
Klusterkit 包含三個獨立的工具,可以一起或單獨使用來管理 Kubernetes 生產叢集的生命週期:
etcdadm , CLI 用於簡化 etcd 叢集管理。節點管理器 ,用於節點管理的 CLI,可擴展 kubeadm 並部署 kubeadm 所需的依賴項。CCTL 是一個叢集生命週期管理工具,採用 Kubernetes 社群的 Cluster API,使用 nodeadm 和 etcdadm 在本地甚至物理隔離的環境中無縫交付和維護高可用的 Kubernetes 叢集。
這三個工具一起執行以下任務:
- 透過叢集 API 在實體隔離的本機環境中輕鬆配置和管理高度可用的 etcd 叢集和 Kubernetes 儀表板。
- 使用 etcd 備份在發生故障後還原叢集控制面板。
- 打包將 Kubernetes 交付到實體隔離環境中所需的所有工件。
叢集套件功能
- 多主支援(HA集群K8s)。
- 安全 etcd 叢集的交付和管理。
- 在物理隔離的環境中工作。
- 支援滾動升級和回滾。
- Flannel (vxlan) 作為後端的 CNI; 有計劃支持其他 CNI。
- 仲裁遺失後 etcd 叢集的備份和還原。
- 防止控制面板記憶體和 CPU 時間耗盡。
Klusterkit解決方案架構
為了容錯性和簡單性,Klusterkit 使用單一 cctl-state.yaml 檔案來儲存 Kubernetes 叢集元資料。 透過 cctl CLI,您可以在任何具有此狀態檔案的電腦上管理 Kubernetes 叢集的生命週期。 這可以是操作員的筆記型電腦或屬於 Kubernetes 叢集一部分的任何其他電腦。
Cctl 從上游實作並呼叫 cluster-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 download 命令輕鬆地在可以存取 Internet 的電腦上提前下載必要的依賴項。 然後,下載的專案(即kubelet 和systemd 的kubelet 單元檔案、CNI 可執行檔、kubeadm 檔案、包括Kubernetes 在內的所有容器映像、keepalived 映像和systemd 檔案、etcd 容器映像檔和對應的設定檔)可以輕鬆複製到物理隔離的主機上使用 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
閱讀更多文件:
來源: www.habr.com