K8s使用helm安装Rancher高可用&docker单节点管理K8s集群

一、docker部署Rancher

K8s集群环境

主机名 IP 资源 版本
k8s-master 192.168.6.20 2c4G v1.26.6
k8s-node1 192.168.6.21 2c4G v1.26.6
k8s-node2 192.168.6.22 2c4G v1.26.6
runchar 192.168.6.17 2c4G rancher-2.8.5

1.1、安装rancher前提条件

前提条件:

  • 已安装docker

1.2、安装runchar

docker pull rancher/rancher:v2.8.5

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

然后访问https://192.168.6.17

获取初始密码,默认密码在rancher容器的日志里面

docker logs  rancher-2.8.5  2>&1 | grep "Bootstrap Password:"

1.3、导入集群

图片

导入K8s集群步骤

  • 选择通用
  • 输入集群名称
  • 输入集群描述(可选)
  • 点击创建(右下角)

图片

图片

复制这一行内容到K8s集群执行,执行后会拉取很多镜像,注意你的网络哦!(等待全部running则成功了)

# 会拉取如下镜像
rancher/rancher-agent:v2.8.5
rancher/shell:v0.1.24
rancher/rancher-webhook:v0.4.7
......

图片

二、Helm安装Ranchar高可用集群

参考官方文档:https://ranchermanager.docs.rancher.com/zh/getting-started/quick-start-guides/deploy-rancher-manager/helm-cli

https://ranchermanager.docs.rancher.com/zh/getting-started/installation-and-upgrade/install-upgrade-on-a-kubernetes-cluster

K8s集群环境

主机名 IP 资源 版本
k8s-master 192.168.6.20 2c4G v1.26.6
k8s-node1 192.168.6.21 2c4G v1.26.6
k8s-node2 192.168.6.22 2c4G v1.26.6

rancher版本:v2.12.0

前提条件:

  • 已安装 kubectlhelm

2.1、Rancher部署准备:安装 cert-manager

# 添加 Rancher 的 Helm 仓库,别名为 rancher-latest
helm repo add rancher-latest https://releases.rancher.com/server-charts/latest

# 创建一个命名空间 cattle-system,用来安装 Rancher
kubectl create namespace cattle-system

# 下载 cert-manager 的 CRD 文件(自定义资源定义)
# cert-manager 需要定义一些 CRD 来扩展 Kubernetes API,用于证书管理
wget https://github.com/cert-manager/cert-manager/releases/download/v1.18.2/cert-manager.crds.yaml

# 应用 cert-manager 的 CRD 到集群中(安装 CRD)
kubectl apply -f cert-manager.crds.yaml

# 或者直接用网络地址安装 cert-manager CRD(注意要替换 <VERSION>)
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/<VERSION>/cert-manager.crds.yaml

# 添加 cert-manager 官方的 Helm 仓库(jetstack)
helm repo add jetstack https://charts.jetstack.io

# 更新本地 Helm 仓库索引,确保能获取最新的 Chart 版本
helm repo update

# 使用 Helm 安装 cert-manager 到命名空间 cert-manager
# --create-namespace 表示如果命名空间不存在就自动创建
helm install cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --create-namespace

# Windows PowerShell 环境下写法(用反引号 ` 代替 Linux 的换行符 \)
helm install cert-manager jetstack/cert-manager `
  --namespace cert-manager `
  --create-namespace

2.2、安装rancher

# 官方实例
helm install rancher rancher-latest/rancher \
  --namespace cattle-system \
  --set hostname=<IP_OF_LINUX_NODE>.sslip.io \
  --set replicas=1 \
  --set bootstrapPassword=<PASSWORD_FOR_RANCHER_ADMIN>

# 自己亲测成功
helm install rancher rancher-latest/rancher \
  --namespace cattle-system \
  --create-namespace \
  --set hostname=rancher.zhukang.com \
  --set replicas=3 \
  --set bootstrapPassword="Zhukang5201314." \
  --set registration.enabled=true

参数解释

  • --set hostname:<自定义一个域名>
  • --set replicas:副本数量
  • --set bootstrapPassword:登录rancher的密码(注意必须 ≥12 个字符),admin用户
  • --version 2.6.6:可选参数,安装指定的rancher版本可加上

2.3、故障:访问rancher.zhukang.com报错404

注意:如果使用的ingress-nginx-controller,那么就需要给helm安装的rancher修改一下ingress使用ingressclass,不然访问域名会报错404,亲测

报错如下

图片

[root@k8s-master helm]# kubectl get ingress rancher -n cattle-system -o yaml

图片

解决办法:

# 查看我们使用的ingressclass
kubectl  get ingressclass

图片

# 在spec.下添加一行ingressClassName: nginx
[root@k8s-master helm]# kubectl edit ingress rancher -n cattle-system
...
spec:
  ingressClassName: nginx
...

图片

成功访问rancher.zhukang.com!!!😁

图片

图片

图片

kubeard

posted @ 2025-08-22 19:28  kennyy  阅读(51)  评论(0)    收藏  举报