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
前提条件:
- 已安装
kubectl和helm
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!!!😁



浙公网安备 33010602011771号