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
咱們準備建立1 master和2 worker的K3s集羣,集羣配置信息以下:app
修改完配置之後,點擊建立按鈕,等待集羣建立完成。
負載均衡
小提示:在這裏咱們能夠將集羣信息保存爲模板,方便後續簡化重複配置的工做。less
因爲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變化的問題,以上描述針對的是隨用隨銷燬的驗證場景。
接下來咱們能夠經過AutoK3s再建立一個使用docker runtime的1 master 1 worker的K3s集羣,並將其導入Rancher進行管理。
集羣配置信息以下:
修改完配置之後,點擊建立按鈕,等待集羣建立完成。
集羣建立完成之後,使用 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/