AutoK3s v0.4.8 釋出 與 Harvester 夢幻聯動

Rancher發表於2022-03-28
作者簡介
鞠巨集超,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/harves...

一鍵啟動

如果您是 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/...

一切開源

感興趣的使用者可以通過 Github 獲取更多文件資訊:
https://github.com/cnrancher/... 
https://docs.rancher.cn/docs/...

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

關於 AutoK3s 更多特性,請檢視:

相關文章