開源之夏是什麼?
開源之夏是由“開源軟體供應鏈點亮計劃”發起並長期支援的一項暑期開源活動,旨在鼓勵在校學生積極參與開源軟體的開發維護,促進優秀開源軟體社群的蓬勃發展,培養和發掘更多優秀的開發者。
活動聯合國內外各大開源社群,針對重要開源軟體的開發與維護提供專案任務,並面向全球高校學生開放報名。
學生可在本活動中自主選擇感興趣的專案任務進行申請,並在中選後獲得該開源專案資深維護者(社群導師)親自指導的機會,完成專案並貢獻給社群後,參與學生還將獲得開源之夏活動獎金和結項證書。
專案簡介
作為阿里巴巴開源的一款幫助分散式應用快速進行打包、交付和執行的解決方案,sealer 可以通過把分散式應用及其資料庫中介軟體等依賴項一起打包來解決複雜應用的交付問題。
sealer 構建出來的產物我們稱之為叢集映象,叢集映象裡內嵌了一套完整的 Kubernetes + 容器,它們雙劍合璧,解決了分散式應用的交付一致性問題。
sealer 已經進入 CNCF sandbox。
點選檢視「開源夜聊第一期:聊聊 sealer 開源背後的故事」:https://www.bilibili.com/vide...
題目簡介
sealer runtime 擴充套件,支援 k3s k0s
sealer 架構分成兩大塊,Build 模組與 Run 模組,其中 Run 部分主要分成三層,最底層對接各種基礎設施,如裸伺服器,各種公有云,Runtime 層面支援具體的 K8s 實現,如 kubeadm k3s k0s 等,一旦擴充套件了 runtime 意味著使用者構建映象的時候就可以這樣:
FROM k3s:latest
COPY mysql .
CMD kubectl apply -f mysql
使用 sealer build -t k3s-with-mysql:latest . 構建一個在 k3s 上面的 mysql 叢集映象執行時只需要:sealer run 3s-with-mysql:latest 即可執行一個 k3s 並且啟動 mysql 叢集本次題目主要是實現 runtime 的 interface:
type Interface interface {
Init(cluster *v2.Cluster) error
Upgrade() error
Reset() error
JoinMasters(newMastersIPList []string) error
JoinNodes(newNodesIPList []string) error
DeleteMasters(mastersIPList []string) error
DeleteNodes(nodesIPList []string) error
GetClusterMetadata() (*Metadata, error)
UpdateCert(certs []string) error
}
製作並提供 k3s k0s 的基礎映象,使使用者可以通過 sealer 一鍵使用 k3s k0s
參與要求
- 熟悉 docker/kubernetes 等技術
- 有一定的原始碼閱讀能力
- 熟悉 golang
專案地址:https://github.com/sealerio/s...
導師郵箱:zhongyi.fht@alibaba-inc.com
點選“此處”即可報名申請 sealer 開源之夏!