Rancher 2.2.2 - HA 部署高可用k8s集群


對於生產環境,需以高可用的配置安裝 Rancher,確保用戶始終可以訪問 Rancher Server。當安裝在Kubernetes集群中時,Rancher將與集群的 etcd 集成,並利用Kubernetes 調度實現高可用。

為確保高可用,本文所部署的 Kubernetes 集群將專用於運行 Rancher ,Rancher 運行起來后,可再創建或導入集群以運行具體的工作負載。

一、推薦架構

  • Rancher的DNS 應解析到 4層(TCP) 負載均衡上。
  • 負載均衡應將端口 TCP/80 和 TCP/443 轉發到 Kubernetes 集群中的所有3個節點。
  • Ingress-controller 將 HTTP 重定向到HTTPS並終止端口 TCP/443 上的 SSL/TLS(SSL數字證書在這里部署)。
  • Ingress-controller 將流量轉發到 pod 的 TCP/80 端口。

下面是一張從官網拉過來的圖片,更直觀一些。

image

二、准備工作

1. 服務器准備

  1. 1台 Linux服務器,配置不用很高,用於四層負載均衡
  2. 3台 Linux服務器,Rancker-server-node 節點
  3. n台 Linux服務器,Rancker-agent-node 節點(n<=50)

節點服務器的硬件配置,可根據實際情況依據該表自行選擇。

規模 集群 節點 CPU 內存
最多5個 高達50 2 8 GB
最多15個 最多200 4 16 GB
高達50 最多500個 8 32 GB
超大 最多100個 高達1000 32 128 GB
更大規模 100+ 1000+ 聯系 Rancher 聯系 Rancher

2.工具安裝

這些工具軟件將在部署過程中用到,需提前安裝好,並確保通過 $PATH 變量可以找到。

安裝 kubectl

這是一個 kubernetes 命令行工具,安裝參考 K8S 官網

這里要注意的是,官網的安裝過程是到谷歌雲平台下載,這里我門修改下載鏈接為 RANCHER 提供的鏡像地址。

安裝 RKE

RKE 全稱 Rancher Kubernetes Engine,是一個用於構建 kubernets 集群的命令行工具。網絡原因,我們切換到 Rancher 提供的鏡像地址下載安裝

安裝 helm

helm 是Kubernetes的包管理器。Helm版本需高於 v2.12.1

三、創建節點和負載均衡

這些節點須在同一個網絡區域或數據中心。

1. 節點准備

操作系統

所有節點安裝 ubuntu 18.04(64-bit x86)

網絡要求
注意參考 官網放行相關端口。本文 ip 清單(僅用於演示):

NODE IP 備注
NODE-LB 公網 168.168.168.1 / 內網 10.0.0.1 四層負載均衡
NODE-SERVER 公網 168.168.168.6 / 內網 10.0.0.6 local 集群
NODE-SERVER 公網 168.168.168.7 / 內網 10.0.0.7 local 集群
NODE-SERVER 公網 168.168.168.8 / 內網 10.0.0.8 local 集群
NODE-WORKER 公網 168.168.168.16 / 內網 10.0.0.16 工作負載
NODE-WORKER 公網 168.168.168.17 / 內網 10.0.0.17 工作負載
NODE-WORKER 公網 168.168.168.18 / 內網 10.0.0.18 工作負載

docker-ce

並安裝最新stable版 docker-ce:18.09.6

2. 配置四層負載均衡

RKE 將會在每個節點上配置一個 Ingress-controller pod,這個 pod 將綁定到該節點的 TCP/80 和 TCP/443 端口,作為 Rancher-server 的HTTPS流量入口點。

將負載均衡器配置為基本的第4層TCP轉發器,這里采用 NGINX 作四層負載均衡。

*安裝 Nginx

更新配置文件 /etc/nginx/nginx.conf

四、使用 RKE 安裝 kubernetes

下面使用 RKE(Kubernetes Engine) 安裝高可用的 Kubernetes。

1. NODE-SERVER 之間建立 ssh 信任

我們目前有三台服務器用作 local 集群,首先要確保我們主機能夠通過 ssh 訪問到另外兩台主機並執行相關操作。比如執行 docker 命令,還記得前面我們加入 docker 用戶組的用戶吧。

2. 編寫 rancher-cluster.yml 文件

這里需要注意,這個文件沒有明確配置rsa文件名,默認會使用 $HOME/.ssh/id_rsa 建立連接。內容如下

3. 運行 RKE 構建 kubernetes 集群

執行成功會在當前目錄生成一個文件 kube_config_rancher-cluster.yml,將該文件復制到 .kube/kube_config_rancher-cluster.yml

或者

4. 測試集群

5. 保存好相關配置文件

當排除故障、升級群集時需要用到以下文件,請將其副本保存在一個安全的位置。

rancher-cluster.yml:RKE集群配置文件。
kube_config_rancher-cluster.yml:群集的Kubeconfig文件,此文件包含完全訪問群集的憑據。
rancher-cluster.rkestate:Kubernetes群集狀態文件,此文件包含完全訪問群集的憑據。

6. 初始化 Helm

一開始,我們安裝了 Helm ,Helm 是 Kubernetes 首選的包管理工具。為了能夠使用 Helm,需要在群集上安裝服務器端組件 tiller。

Kubernetes APIServer 開啟了 RBAC 訪問控制,所以需要創建 tiller 使用的service account: tiller 並分配合適的角色給它。

7. 測試 tiller 安裝是否成功

五、安裝 Rancher

這里注意選擇 stable 版本,首先添加 heml 源倉庫。

1. 部署 Rancher 並配置 SSL 數字證書

2. 將通過 CA 機構簽發的數字證書准備好,

3. 檢查 rancher 是否成功可用

4. 訪問 Rancher UI

瀏覽器打開 https://your.doamin,為 admin賬戶設置初始密碼,並登入系統。提示設置server-url,確保你的地址無誤,確認即可。隨后稍等皮片刻,待系統完成初始化。

如果出現local集群一直停留在等待狀態,並提示 Waiting for server-url setting to be set,可以嘗試點擊 全局->local->升級->添加一個成員角色(admin/ClusterOwner)->保存即可。

六、結語

至此,已完成 Rancher 2.2.2 的 HA 安裝,后續再做一些安全加固,檢查各項配置確保無安全風險,即可開始提供服務。隨后會抽空再寫一篇文章簡單介紹微服務架構應用的部署。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM