首页 > 其他分享 >解决rancher部署k8s集群问题

解决rancher部署k8s集群问题

时间:2024-08-30 11:14:30浏览次数:10  
标签:tar k3s 映射 Rancher images 集群 rancher k8s

一.问题概述

国内网络使用docker部署,local集群会报错,并在创建rke2自定义集群时不成功,会卡住;

image

image

二.问题分析

这个问题主要是由于在使用docker run命令启动Rancher容器时,错误地映射了数据目录/var/lib/rancher到宿主机所导致的。下面是详细的问题分析和解决方案整理:

1.内置镜像的tar包

因为通过 docker run 启动的 Rancher 镜像中内置了 rancher/mirrored-coredns-coredns 和 rancher/mirrored-pause 这两个镜像的 tar 包,这样在离线环境上也能自动启动这两个服务。

但是这两个镜像的离线 tar 包默认存储在了 /var/lib/rancher/k3s/agent/images/k3s-airgap-images.tar。

2.数据目录映射

当通过docker run命令启动Rancher容器,并使用-v选项将/var/lib/rancher目录映射到宿主机上时,容器内部的/var/lib/rancher目录将不再指向其原始的、包含tar包的位置,而是指向了宿主机上的一个(可能是空的)目录。

3.离线tar包缺失

由于数据目录的映射,新启动的Rancher容器内缺少了必要的离线tar包(k3s-airgap-images.tar),导致无法自动加载rancher/mirrored-coredns-coredns和rancher/mirrored-pause等镜像。

4.环境限制

在国内网络环境下,使用Docker Hub拉取镜像可能存在问题,而CATTLE_SYSTEM_DEFAULT_REGISTRY环境变量对这些特定pod(由tar包中的镜像启动)不生效,进一步加剧了问题。

三.解决方案

1.取消目录映射

最简单的解决方案是取消-v选项对数据目录/var/lib/rancher的映射,让Rancher容器使用其内置的数据和tar包来启动服务。

2.手动传输tar包:

如果需要映射数据目录,可以手动从Rancher镜像中提取k3s-airgap-images.tar文件,并将其复制到宿主机上的对应目录(如/data/rancher/k3s/agent/images/)。
步骤1:创建映射路径:

mkdir -p /data/rancher/k3s/agent/images/

步骤2:使用Docker命令从Rancher镜像中提取tar包:

docker run --rm --entrypoint "" -v $(pwd):/output rancher/rancher:<version> cp /var/lib/rancher/k3s/agent/images/k3s-airgap-images.tar /output/

步骤3:将提取的tar包复制到宿主机上的目标目录:

mv k3s-airgap-images.tar /data/rancher/k3s/agent/images/

步骤4:使用修改后的docker run命令启动Rancher容器,并确保/var/lib/rancher目录正确映射到宿主机:

docker run -d --restart=unless-stopped --privileged -p 80:80 -p 443:443 -e TZ=Asia/Shanghai -e CATTLE_SYSTEM_DEFAULT_REGISTRY=registry.cn-hangzhou.aliyuncs.com -e CATTLE_BOOTSTRAP_PASSWORD=rancher -v /data/rancher:/var/lib/rancher rancher/rancher:<version>

通过以上任一方法,都可以解决因数据目录映射不当导致的Rancher服务启动问题。

参考链接:https://forums.rancher.cn/t/docker-run-rancher-rancher-mirrored-pause/3546/2

标签:tar,k3s,映射,Rancher,images,集群,rancher,k8s
From: https://www.cnblogs.com/you-fish/p/18388337

相关文章

  • Kafka分布式集群部署实战:跨越理论,直击生产环境部署难题与解决方案,性能调优、监控与管
    本文介绍kafka的集群如何部署和安装,1-4章理论知识,第5章详解集群的部署,部署Kafka之前需要先部署好分布式的Zookeeper,不喜欢理论的可以直接看第5章,欢迎大家一起探讨技术!Zookeeper集群部署参考文章:精通Zookeeper:详解分布式集群部署全程,掌握数据一致性、选举机制与集群容错能力-......
  • k8s的组件以及安装
    目录概念k8s的使用场景k8s的特点核心组件master主组件1.kube-apiserver2.etcd3.kube-controller-manager控制器4.kube-schedulernode从节点组件1.kubelet2.kube-proxy3.docker总结k8s的核心概念安装k8s架构安装步骤实验:创建pod概念全写:Kubernetsk8s作......
  • 招联金融基于 Apache Doris 数仓升级:单集群 QPS 超 10w,存储成本降低 70%
    在竞争激烈的消费金融市场中,有效利用海量数据、提升业务运营效率是赢得市场的关键。早期招联采用典型的Lambda架构提供业务报表、数据运营、个性推荐、风险控制等数据服务,而Lambda过多的技术栈也引发了数据孤岛、查询效率不足、代码复用性差以及开发运维成本高昂等诸多问题。因......
  • OpenShift 与 Rancher
    ......
  • k8S 高可用部署,超详细
    ......
  • 【云原生之kubernetes实战】k8s环境中部署Nginx服务
    【云原生之kubernetes实战】k8s环境中部署Nginx服务一、Nginx介绍1.1Nginx简介1.2Nginx特点1.3Nginx使用场景二、本次实践介绍2.1本次实践简介2.2本次环境规划三、检查k8s环境3.1检查工作节点状态3.2检查系统pod状态四、部署storageclass(......
  • openGauss-资源池化主备双集群容灾
    openGauss-资源池化主备双集群容灾特性简介本特性实现主备双集群的xlog日志同步,保证主备双集群的xlog一致性,从而增强主备双集群的容灾能力,降低存储空间,并保证主备集群内节点切换、主备集群间切换功能正常。本特性分为两种模式:基于网络的流复制模式:资源池化网络双集群部署......
  • 基于Ubuntu部署企业级kubernetes集群---k8s集群容器运行时Containerd准备
    1.Containerd部署文件获取1.下载 Containerd文件wgethttps://github.com/containerd/containerd/releases/download/v1.7.21/cri-containerd-1.7.21-linux-amd64.tar.gz2.查看下载的文件 3.解压到当前文件到根目录下tarxfcri-containerd-1.7.21-linux-amd64.tar.g......
  • 为什么k8s节点要保持配置一致
            Kubernetes(简称为K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。K8s集群包含了多个节点,其中每个节点运行着Kubernetes代理(kubelet)和容器运行时(如Docker)。为了确保K8s集群的正常运行和高可用性,节点需要保持配置一致,这有以下几个原因:......
  • 基于Ubuntu部署企业级kubernetes集群
    1.主机名配置由于本次使用3台主机完成kubernetes集群部署,其中1台为master节点,名称为k8s-master01;其中2台为workoer节点,名称分别为:k8s-worker01及k8s-worker02master节点hostnamectlset-hostnamek8s-master01Worker01节点hostnamectlset-hostnamek8s-worker01Work......