(2)在kubernets上安装rancher
基于k8s部署rancher
可按需安装,本次安装基于文档地址如下
_https://docs.rancher.cn/docs/rancher2.5/installation/install-rancher-on-k8s/index
基于官网安装
1 先装ingress
参见官网,rancher依赖ingress
一个步骤直接安装
sealos run registry.cn-shanghai.aliyuncs.com/labring/ingress-nginx:v1.11.3
2 安装rancher
以下步骤基本和官网没有什么区别
需要注意证书有3种选择,如果有公网域名可以用
注意:rancher安装时,会下载rancher镜像,需要提前配置镜像加速器
containerd或者docker,不然镜像会下载失败
2.1 配置docker加速
systemctl daemon-reload
systemctl restart docker
2.2 开始安装
本次安装stable,证书使用了由证书机构签发的证书
配置仓库
helm repo add rancher-stable https://rancher-mirror.rancher.cn/server-charts/stable
创建命名空间
kubectl create namespace cattle-system
应该在升级Helm chart之前升级CRD资源。
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.1/cert-manager.crds.yaml
2.2.1 安装集群证书
PS:如果使用cert-manage提供的证书,参考如下或者官网网站
安装cert-manage
wget https://github.com/jetstack/cert-manager/releases/download/v1.5.1/cert-manager.crds.yaml* *
kubectl apply -f cert-manager.crds.yaml
# 添加 Jetstack Helm 仓库
helm repo add jetstack https://charts.jetstack.io
# 更新本地 Helm chart 仓库缓存
helm repo update
# 安装 cert-manager Helm chart
*helm install cert-manager jetstack/cert-manager *
-
--namespace cert-manager *
-
--create-namespace *
-
--version v1.5.1*
kubectl get pods --namespace cert-manager
2.2.2 安装自有证书
如果已经在运营商购买了证书
则需要创建 TLS Secret
kubectl create secret tls my-tls-secret --cert=tls.crt --key=tls.key --namespace=my-namespace
备注:需要注意的是,K8S集群找证书是通过命名空间找的,所以需要制定命名空间
自己的:
kubectl create secret tls zhangqinglei-cn-secret --cert=/etc/ssl/zhangqinglei/STAR.zhangqinglei.cn.crt --key=/etc/ssl/zhangqinglei/STAR.zhangqinglei.cn.key --namespace=cattle-system
2.2.3 安装rancher
使用如下名称进行安装
集群证书
helm install rancher rancher-stable/rancher \
--namespace cattle-system \
--set hostname=rancher.zhangqinglei.cn \
--set replicas=1 \
--set bootstrapPassword=admin
自有证书
helm install rancher rancher-stable/rancher \
--namespace cattle-system \
--set hostname=rancher.zhangqinglei.cn \
--set replicas=1 \
--set ingress.tls.source=zhangqinglei-cn-secret
安装后通过kubectl get svc -A

发现rancher为ClusterIP
先修改为NodePort能访问就行
kubectl patch service rancher -n cattle-system -p '{"spec":{"type":"NodePort"}}'
查看service暴漏出来的端口号
kubectl get svc -A
cattle-system rancher NodePort 10.96.2.14 <none> 80:30641/TCP,443:32458/TCP 18m
通过https的IP+nodePort端口(HTTPS)32458进行访问即可访问成功

拿到密码后成功访问

下一节主要是介绍证书怎么用,怎么通过域名进行访问
helm升级rancher的证书
先看之前的
helm get values rancher -n cattle-system
kubectl -n cattle-system delete secret tls-rancher-ingress
kubectl -n cattle-system delete secret tls-ca
然后升级
helm upgrade rancher rancher-stable/rancher \
--namespace cattle-system \
--set hostname=rancher.zhangqinglei.cn \
--set ingress.tls.source=rancher-linshi-tls
kubectl patch service rancher -n cattle-system -p '{"spec":{"type":"ClusterIP"}}'
其他
开放IP
sealos cert --alt-names 公网IP 再试试
sealos cert --alt-names 47.121.209.135