Tungsten Fabric SDN — SmartNIC vRouter
1489
2025-04-02
[TOC]
項目的由來
隨著“中興事件”不斷升級,引起了國人對國產自主可控技術的高度關注;希望能找到一個穩定、能兼容國產CPU的一整套架構方案,來構建IaaS平臺和PaaS平臺,滿足單位對安全自主可控的需求。要基于全國產方式解決公司業務需求至少要在軟硬件層面滿足,而國內基本都是基于x86解決方案,想找到滿足需求的國產化解決方案還是非常困難的事情。
說明
一個二進制工具加一個資源包,不依賴haproxy keepalived ansible等重量級工具,一條命令就可實現kubernetes高可用集群構建,
無論是單節點還是集群,單master還是多master,生產還是測試都能很好支持!簡單不意味著閹割功能,照樣能全量支持kubeadm所有配置。 立即獲取sealos及arm64安裝包
1.20 完全移除docker. 使用containerd作為cri. kubernetes < 1.20, 仍使用docker
sealos特性與優勢:
支持arm64架構, v1.20版本離線包支持containerd集成,完全拋棄docker.
支持離線安裝,工具與資源包(二進制程序 配置文件 鏡像 yaml文件等)分離,這樣不同版本替換不同離線包即可
百年證書
使用簡單
支持自定義配置
內核負載,極其穩定,因為簡單所以排查問題也極其簡單
不依賴ansible haproxy keepalived, 一個二進制工具,0依賴
資源包放在阿里云oss上,再也不用擔心網速
dashboard ingress prometheus等APP 同樣離線打包,一鍵安裝
etcd一鍵備份(etcd原生api調用)。支持上傳至oss,實現異地備份, 用戶無需關心細節。
快速開始
注意事項
必須同步所有服務器時間
所有服務器主機名不能重復
推薦
系統支持:centos7.6以上 ubuntu16.04以上 內核推薦4.14以上
推薦配置:centos7.8
環境信息
服務器密碼:123456
kubernetes高可用安裝教程(arm64)
只需要準備好服務器(arm64),在任意一臺服務器上執行下面命令即可
# 下載并安裝sealos, sealos是個golang的二進制工具,直接下載拷貝到bin目錄即可, release頁面也可下載 $ wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/latest/sealos-arm64 && \ chmod +x sealos-arm64 && mv sealos-arm64 /usr/bin/sealos # 下載離線資源包, arm64 版本就不免費了. 請自行購買. # 安裝一個三master的kubernetes集群 $ sealos init --passwd 123456 \ --master 192.168.0.2 --master 192.168.0.3 --master 192.168.0.4 \ --node 192.168.0.5 \ --pkg-url /root/kube1.20.0-arm64.tar.gz \ --version v1.20.0
參數含義
增加master
$ sealos join --master 192.168.0.6 --master 192.168.0.7 $ sealos join --master 192.168.0.6-192.168.0.9 # 或者多個連續IP
增加node
$ sealos join --node 192.168.0.6 --node 192.168.0.7 $ sealos join --node 192.168.0.6-192.168.0.9 # 或者多個連續IP
項目的構建
我們解決的問題
containerd支持arm64的二進制
kubernetes的arm64二進制版本(原生支持)
kubernetes的基礎鏡像arm64版本(原生支持)
基于ipvs的高可用需要支持arm64鏡像版本
快速構建打包產品, 并自動化測試及部署上線.
containerd支持arm64
官方的containerd是沒有release到arm64版本的二進制, 我們只能基于官方源碼, 自己構建二進制項目. 項目開源在這個倉庫. 官方的github倉庫.
由于官方不發布arm64版本的containerd二進制, 所以手動編寫了Makefile. 構建和 linux adm64 一模一樣.
基于ipvs的lvscare支持arm64
官方源碼, 我們重寫了dockerfile. 更好的支持arm64架構系列.
docker
$ docker pull fanux/lvscare
containerd
$ ctr -n=k8s.io images pull docker.io/fanux/lvscare:latest
自動化ci/cd
目前采用github的action進行自動化CI/CD. 源碼在這里. 測試采用華為云的鯤鵬服務器構建3master, 1node進行測試部署. 部署完成后打包發布到sealyun.com
測試調用
因為華為云沒有官方的命令行調用生成服務器/公網ip. 因此自己寫了一個小工具, 快速生成ecs. 結合action進行快速部署. 下載即可使用.
$ mycli huawei create --help create ecs in sgp Usage: mycli huawei create [flags] Flags: --FlavorRef string huawei falvor id , default is centos 7.6 (default "kc1.large.2") --ImageRef string huawei image id , default is 2C 4G (default "456416e6-1270-46a4-975e-3558ac03d4cd") --SubnetId string huawei subnet id (default "b5ea4e5d-de19-442b-ac32-3998100e4854") --Vpcid string huawei Vpcid (default "a55545d8-a4cb-436d-a8ec-45c66aff725c") --Zone string huawei AvailabilityZone , default is centos xin jia po (default "ap-southeast-3a") --adminPass string huawei root pass (default "Louishong4168@123") -c, --count int32 Specify huawei ecs count (default 1) --eip create huawei ecs with eip or not -h, --help help for create --keyName string ssh key name --projectId string huawei project id (default "06b275f705800f262f3bc014ffcdbde1") Global Flags: --config string config file (default is $HOME/.mycli.yaml)
安裝演示
安裝, 下載最新的sealos, 以及kubernetes-arm64的安裝包.
$ wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/latest/sealos-arm64 && \ chmod +x sealos-arm64 && mv sealos-arm64 /usr/bin/sealos $ sealos init --master 192.168.0.35 --master 192.168.0.83 --master 192.168.0.20 \ --node 192.168.0.242 \ --passwd 123456 \ --version v1.20.0 \ --pkg-url /tmp/kube1.20.0-arm64.tar.gz ... 13:55:14 [DEBG] [print.go:21] ==>SendPackage==>KubeadmConfigInstall==>InstallMaster0==>JoinMasters==>JoinNodes 13:55:14 [INFO] [print.go:26] sealos install success. ___ ___ ___ ___ ___ ___ /\ \ /\ \ /\ \ /\__\ /\ \ /\ \ /::\ \ /::\ \ /::\ \ /:/ / /::\ \ /::\ \ /:/\ \ \ /:/\:\ \ /:/\:\ \ /:/ / /:/\:\ \ /:/\ \ \ _\:\~\ \ \ /::\~\:\ \ /::\~\:\ \ /:/ / /:/ \:\ \ _\:\~\ \ \ /\ \:\ \ \__\ /:/\:\ \:\__\ /:/\:\ \:\__\ /:/__/ /:/__/ \:\__\ /\ \:\ \ \__\ \:\ \:\ \/__/ \:\~\:\ \/__/ \/__\:\/:/ / \:\ \ \:\ \ /:/ / \:\ \:\ \/__/ \:\ \:\__\ \:\ \:\__\ \::/ / \:\ \ \:\ /:/ / \:\ \:\__\ \:\/:/ / \:\ \/__/ /:/ / \:\ \ \:\/:/ / \:\/:/ / \::/ / \:\__\ /:/ / \:\__\ \::/ / \::/ / \/__/ \/__/ \/__/ \/__/ \/__/ \/__/ 官方文檔:sealyun.com 項目地址:github.com/fanux/sealos QQ群 :98488045 常見問題:sealyun.com/faq
查看部署狀態
kubectl get node && kubectl get pod -A NAME STATUS ROLES AGE VERSION sealos Ready control-plane,master 4m55s v1.20.0 sealos-0001 Ready control-plane,master 4m17s v1.20.0 sealos-0002 Ready control-plane,master 4m16s v1.20.0 sealos-0003 Ready
至此, arm64版本的kubernetes云平臺構建完畢.
鯤鵬 Kubernetes
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。