本文介绍如何利用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界面,成功...
如果文章中有错误描述您可以指出哈 ^_^ !!