DC娱乐网

国内使用 Rancher v2.14.3 版本,支持K8s v1.35.6

Rancher是一款开源的Kubernetes集群管理平台,可以帮助用户快速部署和管理Kubernetes集群。Ranc

Rancher是一款开源的Kubernetes集群管理平台,可以帮助用户快速部署和管理Kubernetes集群。Rancher 在 v2.14.3 版本,支持 Kuberentes v1.35.6

但是在国内使用 Rancher 时,镜像拉取速度慢一直是个痛点问题。除了 Rancher 自身的镜像,还有是 Kubernetes 等相关的镜像。Github Release 中提供了版本相关的所有的镜像列表和镜像缓存迁移工具。

rancher-images.txt[1] 提供了rancher和集群运行管理的所有 856 个相关镜像。

rancher-save-images.sh[2] 将 rancher-images.txt 中的镜像保存到本地

rancher-load-images.sh[3] 将导出的镜像包导入到私有的镜像仓库

藏云阁镜像仓库[4] 已经全部同步rancher-images.txt 中的全部镜像的 ARM64/AMD64 版本,在国内可以高速拉取镜像。

安装启动Rancher

Rancher 有多种安装方式,官方推荐基于 HelmChart 的方式安装到 Kubernetes 集群中。

体验和测试等可以使用 Docker 的方式启动 Rancher 容器,方便快速体验。 由于添加了一些参数,使用docker命令管理不方便,我习惯上使用 Docker Compose 的方式进行管理。

docker-compose.yml 文件如下:

services:  rancher:    image:registry.cncfstack.com/docker.io/rancher/rancher:v2.14.3    container_name:rancher    privileged:true    environment:      -CATTLE_SYSTEM_DEFAULT_REGISTRY=registry.cncfstack.com/docker.io      -CATTLE_SYSTEM_CATALOG=bundled      # 设置rancher管理平台页面中注册中心配置      -CATTLE_BASE_REGISTRY=registry.cncfstack.com/docker.io      -CATTLE_CLUSTER_REGISTRY=registry.cncfstack.com/docker.io      -CATTLE_BOOTSTRAP_PASSWORD=PWD_changeme666      # 第一次安装成功时让确认的的访问地址      -CATTLE_SERVER_URL=https://rancher.cncfstack.com      # 禁用虚拟化      -CATTLE_FEATURES=harvester=false      -CATTLE_DEV_MODE="yes"      # Rancher证书验证,为strict时只认可挂载制定的cacerts证书,设置为system-store则认可操作系统的ca      # - CATTLE_AGENT_TLS_MODE="system-store"    ports:      -"80:80"      -"443:443"    restart:always    # command: '--no-cacerts' 在自签名时不需要    #command: '--no-cacerts'    volumes:      -/etc/timezone:/etc/timezone:ro      -/etc/localtime:/etc/localtime:ro      -./config/k8s-registries.yaml:/etc/rancher/k3s/registries.yaml      -/data/rancher/rancher:/var/lib/rancher      -/data/rancher/pods-logs:/var/log/pods​# - /data/cloud-services/nginx/ssl/cncfstack.com_ecc/fullchain.cer:/etc/rancher/ssl/cert.pem      # - /data/cloud-services/nginx/ssl/cncfstack.com_ecc/cncfstack.com.key:/etc/rancher/ssl/key.pem

Rancher 运行需要通过 https:// , 默认会自动签发一个自签名证书。也可以配置合法的证书,但需要注意添加 command: '--no-cacerts' 和 CATTLE_AGENT_TLS_MODE="system-store",并且目标的证书和私钥路径和名称是固定的。

CATTLE_SYSTEM_DEFAULT_REGISTRY、CATTLE_BASE_REGISTRY 和 CATTLE_CLUSTER_REGISTRY 都是为了指定 Rancher 运行时容器镜像的仓库地址,在国内网络和企业私有网络需要进行配置。

并且 rancher 容器在启动时挂载了一个 config/k8s-registries.yaml 文件,这是 K3s 运行的配置文件,也是用于配置 k8s 的镜像仓库,

mirrors:  docker.io:    endpoint:      -"https://registry.cncfstack.com"    rewrite:      "^rancher/(.*)":"docker.io/rancher/$1"

命令行访问 K8s(k3s )集群

rancher 启动后默认有一套 k3s 集群,它具有 Kuberentes 大部分的功能,可以满足日常学习使用。

访问 Rancher 默认提供的 Kuberentes 集群可以进入到容器内部,容器内相关的 kubectl 命令和配置文件都已经就绪,可以直接使用:

dockerexec -it rancher bashkubectl get pod -A

访问 Web 页面

安装完成后打开 Web UI 页面。在 docker compose 中配置了默认访问域名 CATTLE_SERVER_URL 和密码 CATTLE_BOOTSTRAP_PASSWORD ,如果配置的是域名需要注意域名的 DNS 解析。

异常问题分析

正常情况下有了配置文件和 docker-compose.yml 文件,只需要执行 docker-compose up -d 就可以启动 Rancher 容器了。可能由于网络带宽导致服务启动慢多等一会,或者超时 docker compose restart 重启一下就行。

如果启动后,页面无法访问,可以通过 docker compose logs -f rancher 或者 docker logs -f rancher 查看日志,这里会显示容器的标准输出日志。

有时直接通过 rancher 标准输出的日志不足以解决问题时,还可以通过 k3s 的日志来查看。

Rancher 容器运行方案是在 Docker-In-Docker 的容器运行 k3s 集群。k3s 集群分为 server 端和 agent 端, server 类似 k8s 集群的 master 节点, agent 类似 k8s 集群的 worker/node 节点。

• server: /data/rancher/rancher/k3s/server

• agent: /data/rancher/rancher/k3s/agent

在 Docker Compose 中已经将容器中的目录挂载到宿主机 /data/rancher 目录。

k3s 服务端运行主要通过 k3s.log 日志文件,agent 端运行主要通过 containerd.log 日志文件。

tail -f /data/rancher/rancher/k3s.logtail -f /data/rancher/rancher/k3s/agent/containerd/containerd.log

页面功能

Rancher 提供了丰富的多Kubernetes集群管理功能。并对每个集群提供了相关的管理功能。

管理员可以接入已有的 Kubernetes 集群,如公有云的集群或自建的集群,也可以创建新的 Kubernetes 集群。

引用链接

[1] rancher-images.txt: https://github.com/rancher/rancher/releases/download/v2.14.3/rancher-images.txt[2] rancher-save-images.sh: https://github.com/rancher/rancher/releases/download/v2.14.3/rancher-save-images.sh[3] rancher-load-images.sh: https://github.com/rancher/rancher/releases/download/v2.14.3/rancher-load-images.sh[4] 藏云阁镜像仓库: https://www.cncfstack.com/images