一、 安装 helm
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
二、 安装 rancher
1. 安装 rancher命令【我安装默认安装最新版本,实际安装的是rancher:v2.7.9版本】
#创建rancher使用的namespace
kubectl create namespace cattle-system
#添加rancher仓库
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
helm repo update
helm repo list
#安装crds依赖
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.13.3/cert-manager.crds.yaml
#helm安装rancher【--namespace指定namespace ,--set hostname设置域名,--set bootstrapPassword设置admin初始密码,--set replicas设置启动几个pod】
helm install rancher rancher-stable/rancher --namespace cattle-system --set hostname=rancher.wbes.link --set bootstrapPassword=sadcac2c2cb2JqwvwapT_ --set replicas=1
#删除命令参考如下
kubectl delete -f https://github.com/cert-manager/cert-manager/releases/download/v1.13.3/cert-manager.crds.yaml
helm uninstall rancher --namespace cattle-system
2. 出现如下所示代表安装成功
3. 获取已安装的pod【已执行成功的job已经被我删掉了可以不用清理】
$ kubectl get pods -n cattle-system
NAME READY STATUS RESTARTS AGE
rancher-77865fdc9d-blfwh 1/1 Running 0 120m
rancher-webhook-76875cc6f4-9p6cq 1/1 Running 0 118m
三、 配置https证书对外暴露rancher域名
备注: eks集群有坑就是证书只读取eks自带loadblancer的证书,而因为rancher默认就是会读取内部的证书,所以使用helm安装rancher启动的ingrss规则是不生效的,解决方法是杀掉helm安装自带的ingress规则,然后开放svc为nodeport类型,然后创建负载均衡进行服务暴露,使用负载均衡的https证书
1. 杀掉当前ingress
$ kubectl delete ingress -n cattle-system rancher
2. 更改svc名称为rancher的svc的类型改为nodeport方式
$ kubectl get svc -n cattle-system | grep rancher
rancher NodePort 10.100.172.110 <none> 80:30071/TCP,443:31959/TCP 82m
3. 新建内网应用层负载均衡
a. 新建应用负载均衡器创建名称,选择为内部对内访问【需要提前创建内网vpn才可以访问】
b. 配置vpc和子网为私有子网,选择安全组【默认即可】
c. 选择创建目标组
d. 创建目标组选项:选择ip地址和https 443端口协议
e. 选择内网vpc,其他默认即可
f. 点击下一步
g. 选择内网vpc,填写其中一个node节点的ip和节点暴露的端口号
h. 然后点击创建目标组
i. 然后返回负载均衡界面,刷新,后直接选择新建的目标组即可
j. 选择证书
k. 然后点击创建负载均衡器即可
l. 配置完成后,查看目标组会显示为已就绪状态