K3S离线部署

我们这里是docker安装,所以需要提前安装好docker

  • 修改服务器名称为master

hostnamectl set-hostname master

  • 关闭防火墙 (已关闭的不需要操作)

systemctl stop firewalld

systemctl disable firewalld

  • 关闭selinux

sed -i 's/enforcing/disabled/' /etc/selinux/config

  • docker 安装k3s

首先下载离线资源

  install.sh:https://github.com/k3s-io/k3s/blob/v1.25.16%2Bk3s4/install.sh

  k3s:Release v1.25.16+k3s4 · k3s-io/k3s · GitHub

  镜像k3s-airgap-images-amd64.tar.gz:Release v1.25.16+k3s4 · k3s-io/k3s · GitHub</

<think> 嗯,用户需要查找rancher离线部署k3s集群的详细步骤。结合提供的引用内容来看,用户已经收集了部分安装流程片段,但需要系统化的指导。 用户引用的资料里包含了几个关键点:需要准备k3s二进制文件、离线镜像包和安装脚本;安装前要设置文件权限;主节点安装时需要指定数据库地址;kubectl配置方法。这些确实都是离线部署的核心要素,但引用内容略显零散,需要整合。 仔细分析用户需求,可能有三个深层诉求:一是需要完整的操作流程,二是要解决网络隔离环境下的特殊配置,三是避免踩常见坑。用户可能正在实施企业级私有化部署,这类场景通常对稳定性和可重复性要求很高。 准备在回复时将步骤分为六个阶段:环境准备、文件分发、主节点安装、增加控制节点、工作节点加入和验证。需要特别注意几个技术细节:1) INSTALL_K3S_SKIP_DOWNLOAD=true这个标志对离线安装至关重要;2) 数据库配置必须严格遵循mysql://username:password@tcp(ip:port)/dbname的格式;3) node-token的获取位置容易出错。 考虑到用户可能需要高可用方案,会在控制平面部署部分强调etcd或外部数据库的选择。另外从引用[3]看,用户遇到过kubectl环境变量配置问题,这点要特别提醒。 最后设计的注意事项模块专门针对常见故障点:selinux状态、端口开放、数据库权限、镜像路径权限。这些坑在离线环境中排查起来特别麻烦,提前预警能帮用户节省大量时间。 </think> 以下是 Rancher 离线部署 K3s 集群的详细步骤(整合多篇引用要点): --- ### **离线部署 K3s 集群步骤** #### 1. **环境准备(所有节点)** - **下载离线资源包**(需提前在有网络环境下载): - K3s 二进制文件:`k3s`(对应版本,如 `v1.18.20+k3s1`) - 离线镜像包:`k3s-airgap-images-amd64.tar`(或匹配架构) - 安装脚本:`install.sh` - **创建镜像目录**: ```bash sudo mkdir -p /var/lib/rancher/k3s/agent/images/ sudo cp k3s-airgap-images-amd64.tar /var/lib/rancher/k3s/agent/images/ # [^4] ``` - **放置可执行文件**: ```bash sudo cp k3s /usr/local/bin/ sudo chmod a+x /usr/local/bin/k3s # [^1][^2] ``` #### 2. **主节点安装(第一个控制平面)** ```bash # 设置高可用数据库(如 MySQL) export K3S_DATASTORE_ENDPOINT=&#39;mysql://<用户名>:<密码>@tcp(<数据库IP>:端口)/<数据库名>&#39; # [^2] # 执行离线安装(跳过下载) INSTALL_K3S_SKIP_DOWNLOAD=true ./install.sh # [^2][^4] ``` #### 3. **添加控制平面节点(高可用)** ```bash # 获取主节点 Token(在主节点执行) cat /var/lib/rancher/k3s/server/node-token # [^2] # 在另一节点执行(替换实际参数) K3S_URL=https://<主节点IP>:6443 \ INSTALL_K3S_SKIP_DOWNLOAD=true \ K3S_TOKEN=<主节点Token> \ ./install.sh --server # [^2] ``` #### 4. **工作节点加入(可选)** ```bash K3S_URL=https://<主节点IP>:6443 \ INSTALL_K3S_SKIP_DOWNLOAD=true \ K3S_TOKEN=<主节点Token> \ ./install.sh # [^2] ``` #### 5. **配置 kubectl** ```bash # 添加 kubeconfig 路径 echo "export KUBECONFIG=/etc/rancher/k3s/k3s.yaml" >> /etc/profile source /etc/profile # [^3] # 验证节点 kubectl get nodes # [^3] ``` --- ### **注意事项** 1. **权限问题**: - 确保所有脚本可执行:`chmod +x install.sh` [^2] - 镜像目录权限:`/var/lib/rancher/k3s/agent/images/` 需可读 [^4] 2. **数据库配置**: - 高可用部署需提前部署 MySQL/etcd [^1][^2] - 数据库需允许 K3s 节点 IP 访问 3. **网络要求**: - 节点间需开放 6443(API)、8472(Flannel VXLAN)等端口 [^1] 4. **离线镜像**: - 镜像包必须与 K3s 版本严格匹配 [^4] --- ### **常见问题解决** - **节点状态异常**: - 检查防火墙/SELinux:禁用或配置规则 - 确认数据库连接正常:`mysql -u<用户> -p -h<IP>` - **kubectl 命令报错**: - 验证 `KUBECONFIG` 路径:`ls /etc/rancher/k3s/k3s.yaml` [^3] - 复制配置文件:`cp /etc/rancher/k3s/k3s.yaml ~/.kube/config` > 引用说明:本文整合了离线安装的关键步骤 [^1][^2][^3][^4],具体操作需根据实际环境调整参数。 --- ### **相关问题** 1. **如何验证 K3s 离线镜像包的完整性?** 2. **高可用集群中数据库(如 etcd)的部署配置有哪些?** 3. **离线环境下如何添加自定义 Helm Chart?** 4. **K3s 集群升级的离线操作流程是什么?**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值