🚀 Rancher可视化管理:让 Kubernetes 管理更简单
🖥️ 机器B中安装
Rancher是一个Kubernetes管理工具,让你能在任何地方和任何提供商上部署和运行集群。
Rancher可以创建来自Kubernetes托管服务提供商的集群,创建节点并安装Kubernetes,或者导入在任何地方运行的现有Kubernetes集群。
Rancher基于Kubernetes添加了新的功能,包括统一所有集群的身份验证和RBAC,让系统管理员从一个位置控制全部集群的访问。
此外,Rancher可以为集群和资源提供更精细的监控和告警,将日志发送到外部提供商,并通过应用商店(Application Catalog)直接集成Helm。如果你拥有外部 CI/CD 系统,你可以将其与Rancher对接。没有的话,你也可以使用Rancher提供的Fleet自动部署和升级工作负载。
Rancher是一个 全栈式 的Kubernetes 容器管理平台,为你提供在任何地方都能成功✅运行Kubernetes的工具
Helm
Helm是Kubernetes的包管理工具,类似于Linux系统中的apt或yum,用于简化Kubernetes应用的部署、管理和升级。Helm提供了一个称为Chats的打包格式,允许用户通过模板和配置文件快速定义、安装、升级、管理Kubernetes应用。
你可以通过以下步骤来安装Helm:
bash
cd /home
mkdir rancher/
cd rancher/
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
查看是否安装成功✅:
bash
helm version
Rancher安装
- 镜像准备
rancher/rancher:latestrancher/rancher-webhook:v0.6.1rancher/shell:0.3.0rancher/system-upgrade-controller:v0.14.2

- 添加
Helm repo
bash
cd /home/rancher
helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
helm pull rancher-latest/rancher --untar
cd rancher/templates

可以使用我修改好的配置: rancher-template-demo; ⚠️ 使用这个配置文件后,直接跳到第7步继续往下执行。
⚠️ 注意 :以下对模板
templates中yaml文件的修改不是必须,具体得看rancher版本和版本对应的模板。
- 编辑
service.yaml
将service.yaml中port改成变量、添加NodePort保存后并打包
bash
vim service.yaml
bash
{{ .Values.service.http.port }}
{{ .Values.service.https.port }}

- 编辑
post-delete-hook-job.yaml
编辑/home/rancher/rancher/templates/post-delete-hook-job.yaml,⚠️ 如果你本地网络能拉下来,则这一步不需要。

- 编辑
values.yaml
编辑/home/rancher/values.yaml文件(⚠️ 注意不是/home/rancher/rancher/values.yaml文件)
⚠️ 注意 :这里
ingress.enabled为false
yaml
# values.yaml
hostname: <rancher.domain>
bootstrapPassword: admin
ingress:
enabled: false
servicePort: 30003
ingressClassName: nginx
tls:
source: secret
secretName: tls-ca
rancherImage: <your-domain>/hub/rancher
rancherImageTag: latest
imagePullSecrets:
- name: harbor-k8s-secret
service:
type: NodePort
http:
port: 30003
https:
port: 30004
privateCA: true
replicas: 1
systemDefaultRegistry: <your-domain>/hub
# 移除健康检查
startupProbe: {}
livenessProbe: {}
readinessProbe: {}
fleet: ""
- 编辑
ingress.yaml
编辑/home/rancher/rancher/templates/ingress.yaml(⚠️ 注意:ingress.enabled为true时才会需要), 做如下红框修改:

- 创建
namespace
bash
kubectl create namespace cattle-system
- 创建
tls secret
自己的证书来创建 Kubernetes 密文,以供 Rancher 使用
⚠️ 注意 :名称必须为
cacerts.pem, 否则deployment.yaml中找不到(启动rancher这附近会报错:- mountPath: /etc/rancher/ssl/cacerts.pem)
bash
cd /home/rancher
mkdir certs
cd certs
cp /etc/docker/certs.d/<rancher.domain>/<rancher.domain>.pem cacerts.pem
cp /etc/docker/certs.d/<rancher.domain>/<rancher.domain>.key cacerts.key
kubectl create secret tls tls-ca --cert=/home/rancher/certs/cacerts.pem --key=/home/rancher/certs/cacerts.key --namespace=cattle-system
- 创建拉取镜像的
secret
bash
kubectl create secret docker-registry harbor-k8s-secret --docker-server=https://<your-domain> --docker-username=admin --docker-password=xxx --docker-email=xxx@qq.com -n cattle-system
- 安装
执行下面命令安装rancher
bash
helm install rancher ./rancher --namespace cattle-system --create-namespace -f values.yaml
- 卸载
rancher
bash
helm uninstall rancher -n cattle-system
- 问题追踪
kubectl logs <pod_name> -n namespace显示报错:failed to setup TLS listener: read /etc/rancher/ssl/cacerts.pem: is a directory; 解决办法:将/etc/rancher/ssl/cacerts.pem改为:/etc/rancher/ssl/,如图:

这是官网提供的模板,竟然还会有这样的错误;可能他们漏改了吧。
- 主要事项
当开启ingress时(ingress.enable=true) ,注意排查service.yaml中metadata.name的值要和ingress.yaml中backend service name保持一致。 执行命令kubectl template rancher -n cattle-system -f values.yaml可以预览所有配置文件。
执行命令kubectl get svc -n cattle-system 可以看到name的值。
防火墙需要开启30004端口
Rancher使用
浏览器访问:https://<ip>:30004,首次进入:

登录成功✅后进入首页:

Namespace
查看namespace并选择develop, (namespace需要进行权限管理,不是所有人都能看到全部的namespace):

Deployments
选择Workloads -> Deployments, 可以看到我们前面步骤创建的Deployment:

Pods
选择Workloads -> Pods, 可以看到我们前面步骤创建的Pod:

Services和Ingress
选择Service Discovery -> Services 或 Ingress可以看到我们前面步骤创建的Service和Ingress:

汉化设置:

控制副本数
控制副本数,选择Workloads -> Deployments, 点击具体的Deployment进入控制页签; 还记得我们k8s-releasefrontend.yaml中的配置的replicas: 1吗? 这里可以控制副本的数量。

查看服务日志:
