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

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

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

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

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

在這裏插入圖片描述

一鍵啓動

若是您是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。session

建立 Local 集羣

咱們準備建立1 master和2 worker的K3s集羣,集羣配置信息以下:app

  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,移動到右側便可實現一鍵禁用組件。

修改完配置之後,點擊建立按鈕,等待集羣建立完成。
在這裏插入圖片描述負載均衡

小提示:在這裏咱們能夠將集羣信息保存爲模板,方便後續簡化重複配置的工做。less

部署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/

相關文章
相關標籤/搜索