当前位置: 首页 > news >正文

k3s 离线部署流程(内网环境)

k3s 离线部署流程(内网环境)

一、准备工作

1. 下载 k3s 安装相关文件(在有外网的跳板机上)

  • k3s 安装脚本
    curl -sfL https://get.k3s.io -o install_k3s.sh
    
  • k3s 二进制文件
    curl -LO https://github.com/k3s-io/k3s/releases/download/<k3s版本>/k3s
    
  • k3s 镜像包
    wget https://github.com/k3s-io/k3s/releases/download/<k3s版本>/k3s-airgap-images-amd64.tar.gz
    

2. 导入镜像并推送到内网 Harbor 仓库(如有)

  • 登录 Harbor
  • 导入镜像
    docker load -i k3s-airgap-images-amd64.tar.gz
    
  • 标记并推送到 Harbor(可选)

3. 打包所有安装文件

tar czvf k3s_offline_package.tar.gz install_k3s.sh k3s k3s-airgap-images-amd64.tar.gz

二、文件分发

  • 使用 scp 或 ansible 将安装包分发到所有目标节点

三、节点初始化

1. 解压安装包

tar xzvf k3s_offline_package.tar.gz -C /tmp/

2. 导入镜像

docker load -i /tmp/k3s-airgap-images-amd64.tar.gz

3. 分发 k3s 二进制和安装脚本

cp /tmp/k3s /usr/local/bin/k3s
cp /tmp/install_k3s.sh /usr/local/bin/install_k3s.sh
chmod +x /usr/local/bin/k3s /usr/local/bin/install_k3s.sh

4. 配置镜像仓库(可选)

/etc/rancher/k3s/registries.yaml 配置内网 Harbor 仓库:

mirrors:"<内网仓库地址>":endpoint:- "https://<内网仓库地址>"

四、集群安装

1. 安装 master 节点

INSTALL_K3S_SKIP_DOWNLOAD=true \
K3S_KUBECONFIG_MODE="644" \
INSTALL_K3S_EXEC="server --docker" \
/usr/local/bin/install_k3s.sh

2. 获取集群 token

cat /var/lib/rancher/k3s/server/node-token

3. 安装 worker 节点

INSTALL_K3S_SKIP_DOWNLOAD=true \
K3S_URL="https://<master节点地址>:6443" \
K3S_TOKEN="<master节点token>" \
INSTALL_K3S_EXEC="agent --docker" \
/usr/local/bin/install_k3s.sh

五、常见问题与排查

  • 节点 NotReady:检查 Docker 是否启动、镜像是否导入、网络是否畅通。
  • k3s-agent 启动失败:确认 /usr/local/bin/k3s 存在且有执行权限,Docker 服务已启动。
  • 镜像拉取失败:检查 registries.yaml 配置和 Harbor 仓库访问权限。

六、集群验证

在 master 节点执行:

kubectl get node

所有节点 Ready 即部署成功。


http://www.wxhsa.cn/company.asp?id=6550

相关文章:

  • GPS简单模拟
  • C# Avalonia 15- Animation- XamlAnimation
  • 多个表格汇总到一个表格不同的sheet,vba宏
  • python读取Excel表合并单元格以及清除空格符
  • 算法作业第一周
  • 域名购买方案
  • Anby_の模板题集
  • AI 编程的“最后一公里”:当强大的代码生成遇上模糊的需求
  • ctfshowWeb应用安全与防护(第四章)wp
  • 创建sshkey并链接git
  • 使用bash脚本检测网站SSL证书是否过期 - sherlock
  • Python 2025:低代码开发与自动化运维的新纪元 - 教程
  • 为什么Claude Code放弃代码索引,使用50年前的grep技术
  • 【QT】使用QT编写一款自己的串口助手
  • 一句话让AI帮你搞营销?火山引擎Data Agent说:这事儿可以的~
  • debian11 使用 podman 部署 n8n
  • 网络安全反模式:无效工作生成器的根源与解决方案
  • Excel处理控件Aspose.Cells教程:如何将Excel区域转换为Python列表
  • alpine安装docker以及docker-compose
  • 运筹学
  • [CF848D] Shake It!
  • 国产化Excel开发组件Spire.XLS教程:使用 Python 设置 Excel 格式,从基础到专业应用
  • 计算机辅助筛选抗菌/抗病毒肽:以SARS-CoV-2为例,解析靶标突破与筛选策略
  • c++国外学习视频心得4-opengl
  • LOJ #3835. 「IOI2022」千岛 题解
  • (附源码)高校拼车管理系统的设计与实现 - 实践
  • Ubuntu取消vim自动对齐
  • AI产品测试学习路径全解析:从业务场景到代码实践
  • 代码随想录算法训练营第一天 | leetcode 704 27 977
  • 中文医学基准测试题库数据集:28万条标准化JSON格式医师考试题目与临床案例分析,覆盖28个医学专业领域,用于医学AI模型训练、临床决策支持系统开发、医学知识问答系统构建、医学教育辅助工具优化