企业级Devops— 打造完整 CICD 实践指南(十一):Rancher可视化管理

🚀 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安装

  1. 镜像准备
  • rancher/rancher:latest
  • rancher/rancher-webhook:v0.6.1
  • rancher/shell:0.3.0
  • rancher/system-upgrade-controller:v0.14.2
  1. 添加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版本和版本对应的模板。

  1. 编辑service.yaml

将service.yaml中port改成变量、添加NodePort保存后并打包

bash 复制代码
vim service.yaml
bash 复制代码
{{ .Values.service.http.port }}
{{ .Values.service.https.port }}
  1. 编辑post-delete-hook-job.yaml

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

  1. 编辑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: ""
  1. 编辑ingress.yaml

编辑/home/rancher/rancher/templates/ingress.yaml(⚠️ 注意:ingress.enabled为true时才会需要), 做如下红框修改:

  1. 创建namespace
bash 复制代码
kubectl create namespace cattle-system
  1. 创建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
  1. 创建拉取镜像的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
  1. 安装

执行下面命令安装rancher

bash 复制代码
helm install rancher ./rancher --namespace cattle-system --create-namespace -f values.yaml
  1. 卸载rancher
bash 复制代码
helm uninstall rancher -n cattle-system
  1. 问题追踪

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/,如图:

这是官网提供的模板,竟然还会有这样的错误;可能他们漏改了吧。

  1. 主要事项

当开启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吗? 这里可以控制副本的数量。

查看服务日志:

相关推荐
Ikalus19881 天前
假成功有四种形状:给 AI 写自动化工具的自检清单
自动化运维
johnsmithCA1 天前
给搜索的法规条文做了个「版本核验」流程:怎么确认手上的条文还是现行有效版
人工智能·自动化运维
liangshanbo12152 天前
面试题:AI 对话上下文超限怎么办?
面试·webpack·devops
海海不掉头发5 天前
软件项目管理学习笔记-从软件危机到敏捷与DevOps
笔记·学习·devops
效率工作实验室5 天前
AI Agent 管理平台如何与现有 DevOps 和 ITSM 体系集成?
ai·agent·devops·集成·管理平台
极小狐5 天前
CI 作业里 kubectl 连不上集群?用 Kubernetes Agent 打通部署链路的 7 个步骤
ci/cd·kubernetes·gitlab·devops·k8s部署
天天喝旺仔5 天前
CI/CD 实战:GitHub Actions 自动化构建、测试与发布流水线
ci/cd·自动化·github·devops·持续集成
小稀土1235 天前
内网私有化部署 DevOps 软件落地指南:8 个坑、6 个步骤,一次讲清
devops
cakeism8255 天前
金融行业 DevOps 平台推荐:2026年主流方案对比与 Gitee 选型解析
金融·gitee·devops
智能运维指南6 天前
研发效能平台建设路径:从工具堆砌到价值流驱动的效能革命
devops·研发效能度量·嘉为蓝鲸·研发效能平台