跳到主要内容

(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加速

https://docker.giser.online

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进行访问即可访问成功

https://IP+NopePort的端口

拿到密码后成功访问

下一节主要是介绍证书怎么用,怎么通过域名进行访问

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