AutoK3s v0.4.8 發佈 與 Harvester 夢幻聯動

作者簡介
鞠宏超,SUSE SW Engineering, 6 年雲計算領域經驗,先後參與了 Longhorn 產品研發、Rancher2.x 產品研發,目前主要致力於 Rancher 企業版產品設計與研發工作,AutoK3s 的核心維護者。

AutoK3s 是一款 K3s 集羣自動化部署工具,可以方便開發者自助管理多雲環境中的 K3s 集羣。之前的版本支持了 AWS/Aliyun/Tencent/Google 四個主流公有云,同時可以幫助開發者管理本地 K3d 集羣。

最新的 v0.4.8 版本特性預覽:

  • 支持 Harvester Provider,用戶可以在 Harvester 上快速創建虛擬機,並自動搭建 K3s 集羣。
  • 支持 Google Provider,用戶可以在 GCE 上快速創建虛擬機,並自動搭建 K3s 集羣,同時支持自動部署 Google K8s Cloud Provider(CCM)。
  • 增強 Native Provider 特性,用戶現在可以在 UI 上管理和維護 Native 模式創建的 K3s 集羣。

本文將基於最新的 v0.4.8 版本,爲大家介紹如何實現 AutoK3s 與 Harvester 的夢幻聯動。

本文所使用的環境版本信息:

PS:如果您還未搭建過 Harvester 集羣,可以查看 Harvester 的相關介紹或訪問 Harvester 中文文檔:http://docs.rancher.cn/harvester1.0/

一鍵啓動

如果您是 Linux 或者 MacOS 用戶,可以使用以下腳本安裝 AutoK3s,並啓動 UI Portal:

$ curl -sS http://rancher-mirror.cnrancher.com/autok3s/install.sh  | INSTALL_AUTOK3S_MIRROR=cn sh

$ autok3s serve

或者使用 Docker 一鍵啓動 UI Portal:

# 標準Linux環境,使用以下命令
$ docker run -itd --restart=unless-stopped --net=host -v /var/run/docker.sock:/var/run/docker.sock cnrancher/autok3s:v0.4.7

# MacOS環境,使用以下命令
$ docker run -itd --restart=unless-stopped -p 8080:8080 -v /var/run/docker.sock:/var/run/docker.sock cnrancher/autok3s:v0.4.7

服務啓動後,打開瀏覽器,輸入地址(http://127.0.0.1:8080),訪問 UI。

創建集羣

在使用之前,我們需要提前搭建好一個 Harvester 集羣,並且準備好可以訪問這個集羣的 Kubeconfig 文件(需要 cluster-admin 權限)。如果你有多套 Harvester 集羣,AutoK3s 可以根據 Kubeconfig 配置切換在不同 Harvester 集羣聯動的效果。

以 Rancher v2.6.3 爲例,使用管理員用戶登錄後,點擊左上角菜單,選擇全局應用 > 虛擬化管理,選擇要操作的某個 Harvester 集羣,點擊右側下拉按鈕,獲取 Kubeconfig:

接下來,我們將要在 UI 上使用 Harvester Provider,通過 Kubeconfig 配置指定我們要操作的 Harvester 集羣,並在這個 Harvester 集羣上創建兩個虛擬機,並自動啓動由 1 個 master 和 1 個 worker 節點組成的 K3s 集羣。

集羣配置信息如下:

  • Instance Options 中,我們設置 2C/4G/40G 大小的虛擬機,Image Name 設置爲 Ubuntu 20.04 鏡像,Network Name 設置爲我們創建好的 VLAN 網絡,以便 AutoK3s 可以從外部 SSH 連接到虛擬機中;前面獲取的 Kubeconfig 內容也一併填寫到表單對應位置中:

  • K3s Options 中,K3s Install Script 選擇中國區 mirror 的下載鏈接,可以加速安裝 K3s 集羣:

配置信息完成以後,點擊創建按鈕,等待集羣創建完成。

集羣創建完成後,可以通過 SSH 功能連接到 Harvester 虛擬機中。在上面的例子中,我們配置了 cloud-init 模板,在啓動虛擬機的時候,安裝了 curl 及 jq 工具。這樣,在連接虛擬機後就可以直接使用 jq 工具了。

集羣創建完成後,您可以使用 Launch Kubectl 功能,直接操作 K3s 集羣的資源;也可以開啓 kube-explorer 功能,從精簡的 explorer UI 來管理 K3s 集羣的資源;這些使用體驗與其他 provider 的都是一致的。

訪問 Harvester 環境,我們可以在虛擬機列表頁面中查看到通過 AutoK3s 創建出來的虛擬機信息。

在此場景下,您可以基於 Harvester 與 AutoK3s 構建自己的私有 K8s 雲環境;您可以結合 cloud-init 模板,在虛擬機初始化時做更多的準備,例如提前寫入代理配置文件、提前下載所需鏡像等操作;更多有趣的使用場景等待您的發掘。

小貼士:

Q:如何獲取 Harvester 中的資源信息,並填寫到 AutoK3s 配置參數中,例如 Image Name?
A:您可以訪問 Harvester Dashboard,找到您要使用的 Image 資源,點擊右側的下拉按鈕,選擇在 API 中查看 (View in API)

在新彈出的頁面中獲取 JSON 結構體的 id 屬性值,即爲您需要填寫的參數內容。

集羣管理

最近,我們總結了社區用戶使用過程中較頻繁遇到的 issue,v0.4.8 版本增強了 Native provider 特性,使用體驗與其他 Provider 保持一致,用戶可以在集羣列表頁面管理 Native Cluster 了。

在 Native 模式下,主機信息由用戶自行維護,所以 Native 模式僅支持對 K3s 集羣的搭建、卸載、SSH 連接到指定主機,不負責主機的生命週期管理。

後續規劃

在下個版本中,AutoK3s 將集成 Kubeapp,增加對 Helm repo 的支持,用戶可以一鍵部署 Helm Chart 到不同的集羣中,例如通過 AutoK3s 一鍵搭建 K3s 集羣並部署 Rancher。我們還會增加對 K3s 集羣升級體驗的支持,方便用戶升級 K3s 集羣版本。

AutoK3s 的未來目標是爲開發者打造一款自服務的 K3s 管理工具,等同於更加輕量的Rancher。

想了解第一手功能規劃,請點擊:https://github.com/cnrancher/autok3s/milestones

一切開源

感興趣的用戶可以通過 Github 獲取更多文檔信息:
https://github.com/cnrancher/autok3s 
https://docs.rancher.cn/docs/k3s/autok3s/_index/

AutoK3s 是純粹面向開發者的一款小工具,並非企業級產品。如果您在使用過程中遇到問題,或者您有好的意見,歡迎提交 issue;如果您喜歡我們,請點亮 star。

關於 AutoK3s 更多特性,請查看:

AutoK3s 將於近期舉辦直播,敬請期待!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章