1款工具助力Rancher HA快速部署,極速提升研發測試效率

AutoK3s是一款K3s集羣自動化部署工具,可以方便開發者自助管理雲環境中的K3s集羣,可支持AWS/Aliyun/TencentCloud等主流公有云,隨用隨部署,用完即釋放,對於在平時工作過程中需要各種K8s環境的開發測試人員,可以從很大程度上節省重複部署環境的時間,提升工作效率。

新發布的 v0.4.1 版本增強了本地 UI 的用戶體驗,優化了K3s常用參數的配置,使得 K3s 參數配置變得簡單起來,例如一鍵禁用組件、配置runtime、設置網絡組件等,對於新手與K8s深度用戶都有很好的兼容性。

本文將介紹如何基於 v0.4.1 版本的 AutoK3s 使用 AWS provider 快速部署 Rancher HA 環境,並創建 K3s 集羣導入 Rancher 進行統一管理。

本文依賴的相關軟件版本:

在這裏插入圖片描述

一鍵啓動

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


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

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

$ docker run -itd --restart=unless-stopped -p 8080:8080 cnrancher/autok3s:v0.4.1

打開瀏覽器,輸入地址http://127.0.0.1:8080 訪問UI。

創建 Local 集羣

我們準備創建1 master和2 worker的K3s集羣,集羣配置信息如下:

  1. Instance Options 中的 instance-type 爲 t2.medium
  2. Instance Options 中的 SSH Public與SSH Private
  3. Instance Options 中的 security-group,由於是快速構建臨時環境,建議使用allow all規則
  4. K3s Options 中的 k3s-version 使用v1.18.8+k3s1
  5. K3s Options 中的 master-extra-args,建議禁用traefik,在下拉菜單中勾選disabled traefik,移動到右側即可實現一鍵禁用組件。

修改完配置以後,點擊創建按鈕,等待集羣創建完成。
在這裏插入圖片描述

小提示:在這裏我們可以將集羣信息保存爲模板,方便後續簡化重複配置的工作。

部署Rancher

由於Rancher HA需要配置訪問證書,本文使用最簡化的 Rancher Generated Certificates 形式,首先我們部署cert-manager應用。

點擊集羣名稱進入集羣詳情頁面,使用 Excute Shell 功能連接到master節點主機。在/var/lib/rancher/k3s/server/manifests 目錄中,增加cert-manager.yaml:

apiVersion: v1
kind: Namespace
metadata:
  name: cert-manager
---
apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
  name: cert-manager
  namespace: cert-manager
spec:
  chart: https://charts.jetstack.io/charts/cert-manager-v1.2.0.tgz
  targetNamespace: cert-manager
  set:
    installCRDs: "true"
 您可以使用以下命令驗證安裝結果
$ kubectl -n cert-manager get pods

在/var/lib/rancher/k3s/server/manifests 目錄中,增加rancher.yaml:

apiVersion: v1
kind: Namespace
metadata:
  name: cattle-system
---
apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
  name: rancher
  namespace: kube-system
spec:
  chart: https://releases.rancher.com/server-charts/stable/rancher-2.5.7.tgz
  targetNamespace: cattle-system
  set:
    hostname: "rancher-test.jacie.work" # 域名可修改
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: rancher
  name: rancher-lb-svc
  namespace: cattle-system
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: rancher
  sessionAffinity: None
  type: LoadBalancer

使用K3s的servicelb來做負載均衡入口,這樣最輕量化的實現L4 Rancher HA部署模式:

#external-ip就是訪問入口
$ kubectl get svc rancher-lb-svc -n cattle-system

在域名服務商的控制檯中,配置域名(rancher-test.jacie.work)與 rancher-lb-svc的external-ips的映射關係,直接使用域名即可訪問Rancher HA環境。由於Autok3s在部署K3s時,自動幫我們設置了Node的External IP,這樣servicelb可以很自然的使用這個External IP作爲訪問入口。

注意:公有云場景請注意關機後實例IP變化的問題,以上描述針對的是隨用隨銷燬的驗證場景。

創建集羣並導入Rancher管理

接下來我們可以通過AutoK3s再創建一個使用docker runtime的1 master 1 worker的K3s集羣,並將其導入Rancher進行管理。

集羣配置信息如下:

  1. Instance Options 中的 instance-type 爲 t2.medium
  2. Instance Options 中的 SSH Public與SSH Private
  3. Instance Options 中的 security-group,由於是快速構建臨時環境,建議使用allow all規則
  4. K3s Options 中設置K3s版本爲v1.19.7+k3s1
  5. K3s Options 中的 master-extra-args參數,在下拉菜單中選擇docker runtime並移動到右側,AutoK3s會自動爲您在主機上安裝docker,並使用docker作爲K3s的容器運行時。

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

在這裏插入圖片描述

集羣創建完成以後,使用 Launch Kubectl 功能,將該集羣導入到Rancher進行管理即可。

總結

使用AutoK3s可以很方便的部署不同版本的K3s集羣,並且UI上提供了一些常用參數配置,方便用戶個性化配置K3s集羣參數,對於新手與K8s深度用戶都有很好的兼容性。

AutoK3s面向本土環境做了一些優化,K3s 安裝腳本默認指向本土安裝源,減少重複部署工作和部署失敗機率,極大程度上提升了研發跟測試的效率。

AutoK3s 後續版本會支持自動部署mainfests特性,您可以通過指定manifests文件即可完成一鍵部署K3s 集羣並自動安裝應用的過程。

此外,還會提供APP Market Place特性,您可以通過增加自己的helm repo,自動向不同的K3s集羣發佈應用,簡化應用安裝部署的過程。

AutoK3s一切開源,歡迎試用,感興趣的用戶可以在Github上的開源地址獲取更多文檔信息:
https://github.com/cnrancher/autok3s
https://docs.rancher.cn/docs/k3s/autok3s/_index/

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