本文介紹如何利用RKE安裝Rancher2.x (不同2.x版本可能會存在小小的差異,您可以去官方網站上檢查差異信息),本次采用高可用的方式安裝(即Rancher也是安裝在一個k8s集群中),外部在采用NGINX 做7層代理訪問。
一 服務器環境:
- 系統版本:服務器采用ubuntu18.0.4
- 工具:控制機器安裝好kubectl,helm3,rke
- 數量:服務器3台(安裝好了k8s集群)
二 在所有rancher k8s機器上生成ssh-key,做免秘鑰
- 這里不具詳細體描述如何做Linux機器的免密配置,您可參考其他文章。
1 先生成證書, 利用 "ssh-keygen", 生成證書。在復制到被控制端。
2 控制服務器操作
復制控制機器上的秘鑰到其它機器上,做免秘鑰安裝(包括控制機本機也做一下復制)
ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.90.4 ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.90.5 ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.90.6
三 創建cluster.yml文件
更多配置您可參考Rancher官方網站
nodes: - address: 172.16.90.4 internal_address: user: root #注意:centos不要用root用戶 role: [controlplane, worker, etcd] - address: 172.16.90.5 internal_address: user: root role: [controlplane, worker, etcd] - address: 172.16.90.6 internal_address: user: root role: [controlplane, worker, etcd] services: etcd: # 擴展參數 extra_args: auto-compaction-retention: 240 #(單位小時) # 修改空間配額為$((6*1024*1024*1024)),默認2G,最大8G quota-backend-bytes: '6442450944' # 自動備份 ## rke版本小於0.2.x或rancher版本小於v2.2.0時使用 #snapshot: true #creation: 6h #retention: 24h ## rke版本大於等於0.2.x或rancher版本大於等於v2.2.0時使用(兩段配置二選一) backup_config: enabled: true # 設置true啟用ETCD自動備份,設置false禁用; interval_hours: 12 # 快照創建間隔時間,不加此參數,默認5分鍾; retention: 6 # etcd備份保留份數; # 當使用外部 TLS 終止,並且使用 ingress-nginx v0.22或以上版本時,必須。 ingress: provider: nginx options: use-forwarded-headers: "true"
四 配置kubeconfig,連接到k8s集群
#指定kubeconfig文件
export KUBECONFIG=$(pwd)/kube_config_rancher-cluster.yml
#查看是否正常連接到集群 rancher@rancher-master-01:/server/tools/tools$ kubectl get nodes NAME STATUS ROLES AGE VERSION 172.16.90.4 Ready controlplane,etcd,worker 32m v1.17.6 172.16.90.5 Ready controlplane,etcd,worker 32m v1.17.6 172.16.90.6 Ready controlplane,etcd,worker 32m v1.17.6
五 helm添加rancher倉庫
#國外 helm repo add rancher-stable https://releases.rancher.com/server-charts/stable #國內加速 helm repo add rancher-stable http://rancher-mirror.oss-cn-beijing.aliyuncs.com/server-charts/stable
#倉庫添加完畢后記得更新(helm repo update)
六 helm 安裝 rancher(備注)
#在k8s中創建安裝rancher的命名空間 kubectl create namespace cattle-system #使用外部負載均衡器(nginx7層代理)到rancher,加上--set tls=external參數 helm install rancher rancher-stable/rancher \ --namespace cattle-system \ --set hostname=k3s.lesso.com \ --set tls=external #查看部署是否成功 kubectl -n cattle-system get deploy rancher NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE rancher 3 3 3 3 3m #保存您的選項 請保存您使用的全部--set選項。使用 Helm 升級 Rancher 到新版本時,您將需要使用相同的選項 #dns解析(或者寫host測試) dns上解析域名到rke機器,打開域名,正常打開rancher界面,成功...
如果文章中有錯誤描述您可以指出哈 ^_^ !!
