企业级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

HelmKubernetes的包管理工具,类似于Linux系统中的aptyum,用于简化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步继续往下执行

⚠️ 注意 :以下对模板templatesyaml文件的修改不是必须,具体得看rancher版本和版本对应的模板。

  1. 编辑service.yaml

service.yamlport改成变量、添加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.enabledfalse

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.enabledtrue时才会需要), 做如下红框修改:

  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.yamlmetadata.name的值要和ingress.yamlbackend 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 -> ServicesIngress可以看到我们前面步骤创建的ServiceIngress

汉化设置:

控制副本数

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

查看服务日志:

相关推荐
易样2 小时前
企业级Devops— 打造完整 CICD 实践指南(六):Kubernetes集群搭建
自动化运维·devops
易样2 小时前
企业级Devops— 打造完整 CICD 实践指南(四):Gitlab代码仓库搭建
自动化运维·devops
易样2 小时前
企业级Devops— 打造完整 CICD 实践指南(三):Jenkins搭建
自动化运维·devops
易样2 小时前
企业级Devops— 打造完整 CICD 实践指南(一):手册核心内容亮点
devops
易样2 小时前
企业级DevOps——打造完整CICD实践指南(二):环境准备
自动化运维·devops
数聚天成DeepSData13 小时前
数聚天成 DeepSData 数据价值落地实战指南
java·maven·devops
热爱运维的小七1 天前
算力下沉时代,如何攻克“边缘”与“雾”计算的监控难题?
it运维·devops·服务器监控
薛少杰1 天前
什么是阿里云 CLI
自动化运维·命令行工具·插件化架构·阿里云cli·生态协作
龙智DevSecOps解决方案3 天前
ITSM选型指南 | Jira Service Management Standard vs Cloud Premium 版本对比与升级指导
atlassian·devops·aiops·jira·itsm·智能运维