前提条件

  • Kubernetes 集群:可以使用 RKERKE2K3S 等工具安装集群
  • Ingress Controller:对于 RKE、RKE2 和 K3s,你不需要手动安装 Ingress Controller,因为它是默认安装的。
  • CLI 工具:安装 kubectl 和 helm

使用 docker 安装 Rancher

1
2
3
4
5
mkdir -p /data/rancher

docker run --name rancher --privileged -d --restart=unless-stopped -p 80:80 -p 443:443 -v /data/rancher:/var/lib/rancher/ rancher/rancher:stable

docker logs -f rancher

使用 helm 安装 Rancher

参考:在 Kubernetes 集群上安装/升级 Rancher

  1. 添加 Helm Chart 仓库,安装 cert-manager
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
helm repo add jetstack https://charts.jetstack.io
helm repo update

helm install cert-manager jetstack/cert-manager \
	--namespace cert-manager   \
	--create-namespace    \
	--version v1.14.5  \
	--set installCRDs=true
	
kubectl get pods --namespace cert-manager
  1. 不同的证书配置需要使用不同的 Rancher 安装命令。

先创建命名空间:

1
kubectl create namespace cattle-system
  • 默认情况是使用 Rancher 生成 CA,并使用 cert-manager 颁发用于访问 Rancher Server 接口的证书。

    1
    2
    3
    4
    
    helm install rancher rancher-stable/rancher \
      --namespace cattle-system \
      --set hostname=rancher.chensoul.cc \
      --set bootstrapPassword=admin 
    
  • 使用 cert-manager 来自动请求和续订 Let’s Encrypt 证书。Let’s Encrypt 是免费的,而且是受信的 CA,因此可以为你提供有效的证书。

    1
    2
    3
    4
    5
    6
    7
    8
    
    #Let’s Encrypt
    helm install rancher rancher-stable/rancher \
      --namespace cattle-system \
      --set hostname=rancher.chensoul.cc \
      --set bootstrapPassword=admin \
      --set ingress.tls.source=letsEncrypt \
      --set letsEncrypt.email=[email protected] \
      --set letsEncrypt.ingress.class=nginx
    
  • 使用你自己的证书来创建 Kubernetes 密文,以供 Rancher 使用。

    生成自签名证书,参考:一键生成-ssl-自签名证书脚本

  1. 检查 Rancher 是否已成功运行:
1
2
3
4
kubectl -n cattle-system rollout status deploy/rancher

kubectl -n cattle-system get deploy rancher
kubectl -n cattle-system describe deploy rancher
  1. 查看 rancher 密码:
1
kubectl get secret --namespace cattle-system bootstrap-secret -o go-template='{{.data.bootstrapPassword|base64decode}}{{ "\n" }}'
  1. 访问 Rancher:https://rancher.chensoul.cc/

卸载 Rancher

1
2
3
4
git clone https://github.com/rancher/rancher-cleanup

cd rancher-cleanup
sh cleanup.sh