千家信息网

单节点Rancher离线安装的示例分析

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章将为大家详细讲解有关单节点Rancher离线安装的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言Rancher 从 v2.5.x 开始,单节点
千家信息网最后更新 2026年11月02日单节点Rancher离线安装的示例分析

这篇文章将为大家详细讲解有关单节点Rancher离线安装的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

前言

Rancher 从 v2.5.x 开始,单节点 Rancher Server 内置了 K3s 作为 local 集群,该 local 集群除了支撑 Rancher Server 运行以外,还将运行 fleet、rancher-webhook、gitjob、coredns 等组件。下图为 Rancher v2.5.8 内置 K3s 集群默认启动的组件和所需的镜像:

其中,docker.io/rancher/coredns-coredns 和 docker.io/rancher/pause 为 Rancher Server 内置的镜像,其他镜像需要在 Rancher Server 启动后到 dockerhub 去在线下载。

如果你的环境是离线环境,并且是通过 docker run 的方式启动 Rancher Server,会报一些镜像下载失败的日志:

E0511 08:39:56.060906      28 pod_workers.go:191] Error syncing pod d0f83155-f023-4ff6-9164-11b6b63ef4d6 ("helm-operation-t8mtl_cattle-system(d0f83155-f023-4ff6-9164-11b6b63ef4d6)"), skipping: [failed to "StartContainer" for "helm" with ImagePullBackOff: "Back-off pulling image \"rancher/shell:v0.1.6\"", failed to "StartContainer" for "proxy" with ImagePullBackOff: "Back-off pulling image \"rancher/shell:v0.1.6\""]

官网文档单节点离线安装 Rancher Server(http://docs.rancher.cn/docs/rancher2.5/installation/other-installation-methods/air-gap/install-rancher/_index/#单节点安装)章节中指出了可以通过CATTLE_SYSTEM_DEFAULT_REGISTRY参数指定从私有镜像仓库去获取 Rancher Server 所需的镜像,但如果你的私有镜像仓库是启用 TLS或有认证的情况,CATTLE_SYSTEM_DEFAULT_REGISTRY是无法满足你的需求的。

针对上述场景,我们可以将内置 k3s 集群的**/etc/rancher/k3s/registries.yaml** 映射到宿主机上,然后通过修改registries.yaml来实现启用 TLS或有认证 等更复杂的场景,关于 k3s 配置私有仓库,可参考k3s 官网(http://docs.rancher.cn/docs/k3s/installation/private-registry/_index/).

单节点 Rancher Server 配置私有镜像仓库

以下章节将指导大家如何通过私有镜像仓库在离线环境下安装单节点 Rancher Server,针对镜像仓库类型的不同,分为以下几种场景:

  • 私有仓库为 SSL 证书颁发机构颁发的证书(https),有认证

  • 私有仓库为自签名证书(https),有认证

  • 私有仓库不使用 SSL(使用 http),有认证

私有仓库为 SSL 证书颁发机构颁发的证书(https),有认证

私有仓库中已经提前上传了 Rancher Server 所需要的镜像,如何同步镜像到私有镜像仓库可以参考官方文档(http://docs.rancher.cn/docs/rancher2.5/installation/other-installation-methods/air-gap/populate-private-registry/_index).

1.配置 K3s registries.yaml

root@ip-172-31-14-159:~# cat /opt/registries.yamlmirrors:  # 私有仓库域名  harbor.kingsd.top:    endpoint:      - "https://harbor.kingsd.top"configs:  "harbor.kingsd.top":    auth:      username: admin  # 这是私有镜像仓库的用户名      password: Password  # 这是私有镜像仓库的密码

2.启动单节点 Rancher Server

root@ip-172-31-14-159:~# docker run -itd --privileged \>     --restart=unless-stopped \>     -p 80:80 -p 443:443 \>     -e CATTLE_SYSTEM_DEFAULT_REGISTRY=harbor.kingsd.top \ # 设置私有仓库域名>     -v /opt/registries.yaml:/etc/rancher/k3s/registries.yaml \ # 将宿主机`registries.yaml`映射到容器内>     rancher/rancher:v2.5.8

3.验证

等待 Rancher Server 启动成功后,我们可以 exec 到容器内确认所需要的组件是否启动:

root@3fd636aa513e:/var/lib/rancher# kubectl get pods -ANAMESPACE                 NAME                                READY   STATUS      RESTARTS   AGEcattle-system             helm-operation-5w49g                0/2     Completed   0          3m21scattle-system             helm-operation-gclkp                0/2     Completed   0          3m3scattle-system             helm-operation-jt948                0/2     Completed   0          3m13scattle-system             helm-operation-l76g6                0/2     Completed   0          3m41scattle-system             helm-operation-zmm6f                0/2     Completed   0          3m28scattle-system             rancher-webhook-58b8d9f6c6-bxmns    1/1     Running     0          3m24sfleet-system              fleet-agent-7c7d457b6d-x4kvf        1/1     Running     0          2m33sfleet-system              fleet-controller-5ddfd96f5c-lxbnt   1/1     Running     0          3m10sfleet-system              gitjob-7b4ddfcbf7-6hx52             1/1     Running     0          3m10skube-system               coredns-66c464876b-hfjqk            1/1     Running     0          4m1srancher-operator-system   rancher-operator-5cbfb5d6d7-kq29z   1/1     Running     0          3m32sroot@3fd636aa513e:/var/lib/rancher# k3s crictl imagesIMAGE                                        TAG                 IMAGE ID            SIZEdocker.io/rancher/coredns-coredns            1.6.9               4e797b3234604       43.3MBdocker.io/rancher/pause                      3.1                 da86e6ba6ca19       746kBharbor.kingsd.top/rancher/fleet-agent        v0.3.5              2a0c55d5db357       55.9MBharbor.kingsd.top/rancher/fleet              v0.3.5              981b7123a405f       23.9MBharbor.kingsd.top/rancher/gitjob             v0.1.15             dac9b6c58fe07       24.8MBharbor.kingsd.top/rancher/rancher-operator   v0.1.4              c18d03bea7c6f       14.5MBharbor.kingsd.top/rancher/rancher-webhook    v0.1.0              aec2ca2e747d7       12.6MBharbor.kingsd.top/rancher/shell              v0.1.6              2e550736e6a49       46.8MB

可以看到,除了 Rancher Server 内置的 rancher/coredns-coredns 和 rancher/pause 镜像以外,其他的镜像都是从 harbor.kingsd.top 拉取。

私有仓库为自签名证书(https),有认证

Rancher Server 连接自签名证书的私有仓库和 SSL 证书颁发机构的私有仓库配置的区别主要在于连接自签名证书的私有仓库时需要在 k3s 的registries.yaml中指定私有镜像仓库的自签名证书。

1.配置 K3s registries.yaml

root@ip-172-31-14-159:~# cat /opt/registries.yamlmirrors:  # 私有仓库域名  harbor.kingsd.top:    endpoint:      - "https://harbor.kingsd.top"configs:  "harbor.kingsd.top":    auth:      username: admin  # 这是私有镜像仓库的用户名      password: Password  # 这是私有镜像仓库的密码    tls:      ca_file: /opt/certs/ca.crt # 镜像仓库中使用的ca文件的路径。      cert_file: /opt/certs/harbor.kingsd.top.cert  # 镜像仓库中使用的cert文件的路径。      key_file: /opt/certs/harbor.kingsd.top.key # 镜像仓库中使用的key文件的路径。

2.启动单节点 Rancher Server

root@ip-172-31-14-159:~# docker run -itd --privileged \>     --restart=unless-stopped \>     -p 80:80 -p 443:443 \>     -e CATTLE_SYSTEM_DEFAULT_REGISTRY=harbor.kingsd.top \   # 设置私有仓库域名>     -v /opt/registries.yaml:/etc/rancher/k3s/registries.yaml \  # 将宿主机`registries.yaml`映射到容器内>     -v /opt/certs:/opt/certs \  # 将证书映射到容器内>     rancher/rancher:v2.5.8

3.验证

等待 Rancher Server 启动成功后,我们可以 exec 到容器内确认所需要的组件是否启动:

root@381b5d2c26d9:/var/lib/rancher# kubectl get pods -ANAMESPACE                 NAME                                READY   STATUS      RESTARTS   AGEcattle-system             helm-operation-b5mvm                0/2     Completed   0          6m27scattle-system             helm-operation-cdlc8                0/2     Completed   0          5m57scattle-system             helm-operation-hcxmj                0/2     Completed   0          5m47scattle-system             helm-operation-vqz9z                0/2     Completed   0          6m4scattle-system             helm-operation-wqgz9                0/2     Completed   0          6m12scattle-system             rancher-webhook-58b8d9f6c6-z68ps    1/1     Running     0          6m18sfleet-system              fleet-agent-7c7d457b6d-zznvd        1/1     Running     0          5m25sfleet-system              fleet-controller-5ddfd96f5c-kcqmq   1/1     Running     0          5m53sfleet-system              gitjob-7b4ddfcbf7-99l46             1/1     Running     0          5m53skube-system               coredns-66c464876b-mflfv            1/1     Running     0          6m49srancher-operator-system   rancher-operator-5cbfb5d6d7-prsqh   1/1     Running     0          6m9sroot@381b5d2c26d9:/var/lib/rancher# k3s crictl imagesIMAGE                                        TAG                 IMAGE ID            SIZEdocker.io/rancher/coredns-coredns            1.6.9               4e797b3234604       43.3MBdocker.io/rancher/pause                      3.1                 da86e6ba6ca19       746kBharbor.kingsd.top/rancher/fleet-agent        v0.3.5              2a0c55d5db357       55.9MBharbor.kingsd.top/rancher/fleet              v0.3.5              981b7123a405f       23.9MBharbor.kingsd.top/rancher/gitjob             v0.1.15             dac9b6c58fe07       24.8MBharbor.kingsd.top/rancher/rancher-operator   v0.1.4              c18d03bea7c6f       14.5MBharbor.kingsd.top/rancher/rancher-webhook    v0.1.0              aec2ca2e747d7       12.6MBharbor.kingsd.top/rancher/shell              v0.1.6              2e550736e6a49       46.8MB

可以看到,除了 Rancher Server 内置的 rancher/coredns-coredns 和 rancher/pause 镜像以外,其他的镜像都是从 harbor.kingsd.top 拉取。

私有仓库不使用 SSL(使用 http),有认证

针对 HTTP 的私有仓库,只需要将 registries.yaml 里的 mirrors.endpoint 配置修改为http 开头即可。

1.配置 K3s registries.yaml

root@ip-172-31-14-159:~# cat cat /opt/registries.yamlcat: cat: No such file or directorymirrors:  # 私有仓库IP  3.96.56.137:    endpoint:      - "http://3.96.56.137"configs:  "3.96.56.137":    auth:      username: admin  # 这是私有镜像仓库的用户名      password: Password  # 这是私有镜像仓库的密码

2.启动单节点 Rancher Server

root@ip-172-31-14-159:~# docker run -itd --privileged \>     --restart=unless-stopped \>     -p 80:80 -p 443:443 \>     -e CATTLE_SYSTEM_DEFAULT_REGISTRY=3.96.56.137 \  # 设置私有仓库IP>     -v /opt/registries.yaml:/etc/rancher/k3s/registries.yaml \  # 将宿主机`registries.yaml`映射到容器内>     rancher/rancher:v2.5.8

3.验证

root@cb018bb70446:/var/lib/rancher# kubectl get pods -ANAMESPACE                 NAME                                READY   STATUS      RESTARTS   AGEcattle-system             helm-operation-44tb7                0/2     Completed   0          77scattle-system             helm-operation-cwpvz                0/2     Completed   0          66scattle-system             helm-operation-f898m                0/2     Completed   0          58scattle-system             helm-operation-fc4tj                0/2     Completed   0          51scattle-system             helm-operation-qq4kz                0/2     Completed   0          42scattle-system             rancher-webhook-c49756c7f-rjwdj     1/1     Running     0          63sfleet-system              fleet-agent-55865c8959-rz8p2        1/1     Running     0          21sfleet-system              fleet-controller-797ff98bfd-xj48k   1/1     Running     0          47sfleet-system              gitjob-58bdfc4c69-mp84z             1/1     Running     0          47skube-system               coredns-66c464876b-dbm8v            1/1     Running     0          96srancher-operator-system   rancher-operator-578b4c64d4-4ptq9   1/1     Running     0          69sroot@cb018bb70446:/var/lib/rancher# k3s crictl imagesIMAGE                                  TAG                 IMAGE ID            SIZE3.96.56.137/rancher/fleet-agent        v0.3.5              2a0c55d5db357       55.9MB3.96.56.137/rancher/fleet              v0.3.5              981b7123a405f       23.9MB3.96.56.137/rancher/gitjob             v0.1.15             dac9b6c58fe07       24.8MB3.96.56.137/rancher/rancher-operator   v0.1.4              c18d03bea7c6f       14.5MB3.96.56.137/rancher/rancher-webhook    v0.1.0              aec2ca2e747d7       12.6MB3.96.56.137/rancher/shell              v0.1.6              2e550736e6a49       46.8MBdocker.io/rancher/coredns-coredns      1.6.9               4e797b3234604       43.3MBdocker.io/rancher/pause                3.1                 da86e6ba6ca19       746kB

可以看到,除了 Rancher Server 内置的 rancher/coredns-coredns 和 rancher/pause 镜像以外,其他的镜像都是从 3.96.56.137 拉取。

关于"单节点Rancher离线安装的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

仓库 私有 镜像 证书 节点 认证 配置 容器 这是 域名 宿主 组件 集群 场景 宿主机 密码 文件 机构 环境 用户 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网巨头反垄断金融科技 金融科技 互联网金融 互联网科技公司发展 远拓互联网科技 掌上梦互联网科技 互联网科技大会 中国最先进互联网科技公司 科技互联网的估值 须眉科技是互联网公司吗 互联网科技与管理 昭通互联网科技选哪家 知域互联网科技有限公司大骗子 燊美集互联网科技有限公司 洛阳共同富裕互联网科技有限公司 广州千川互联网科技有限公司 本届互联网大会上的黑科技 互联网科技职业技能培训学校 玉溪新华互联网科技怎么选 瑞安市蟠桃会互联网科技有限公司 互联网高科技绘画 上游互联网科技 福建科技产业互联网发展 科技类公司包括互联网吗 明优互联网科技有限公司 特约风豹互联网科技为什么扣费 雨阳互联网卡科技有限公司 上海互联网科技公司ppt 扫呗互联网科技有限公司 艺电能源互联网科技有限公司招聘 中国互联网公司的科技投入
0