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

脱机部署k3s

离线部署 K3s 文档

1. 准备工作

  • 操作系统准备:确保服务器已安装好基础操作系统(Ubuntu、CentOS 等)。
  • 关闭防火墙或放通端口:建议关闭防火墙或确保 6443、10250 等端口已开放。
  • 准备离线资源文件:

下载地址

  • k3s-airgap-images-arm64.tar(K3s 离线镜像包)

  • k3s-arm64(K3s 二进制文件)

  • nginx.tar(需要导入的镜像文件,示例中为 nginx)

  • 确认网络信息:

    • 当前节点 IP(示例中为 10.37.129.7)
    • 默认网关 IP(示例中为 10.37.129.1)

2. 配置网络路由(针对虚拟机 Host-Only 的情况)

sudo ip route add default via 10.37.129.1

3. 准备 K3s 离线镜像目录

sudo mkdir -p /var/lib/rancher/k3s/agent/images/
sudo cp ./k3s-airgap-images-arm64.tar /var/lib/rancher/k3s/agent/images/

4. 安装 K3s 二进制文件

sudo cp k3s-arm64 /usr/local/bin/k3s
sudo chmod +x /usr/local/bin/k3s

5. 运行 K3s 安装脚本

INSTALL_K3S_EXEC="--flannel-backend=host-gw \--cluster-cidr=172.20.0.0/16 \--service-cidr=172.21.0.0/16 \--node-ip=10.37.129.7" \INSTALL_K3S_SKIP_DOWNLOAD=true ./install.sh

脚本下载地址

6. 导入额外镜像到 containerd

sudo ctr -n k8s.io images import nginx.tar

创建 nginx.yaml

apiVersion: apps/v1
kind: Deployment
metadata:name: nginxlabels:app: nginx
spec:replicas: 1selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:latestimagePullPolicy: IfNotPresentports:- containerPort: 80volumeMounts:- name: mydiskmountPath: /usr/share/nginx/htmlvolumes:- name: mydiskhostPath:path: /data/nginx-htmltype: DirectoryOrCreate---
apiVersion: v1
kind: Service
metadata:name: nginx
spec:selector:app: nginxtype: NodePortports:- port: 80targetPort: 80nodePort: 30080

运行服务

kubectl apply -f nginx.yaml

7. 验证服务状态与集群健康

systemctl status k3s## 查看Pods
kubectl get pods -A## 查看事件
kubectl events --for pod/coredns-645bdb8675-4wxvd -n kube-system

附加说明

  • 本文档基于 ARM64 架构,如需其他架构,请替换对应二进制文件和镜像包。
  • 离线镜像包和二进制文件需提前准备。
  • 网络参数根据实际环境调整。
http://www.lryc.cn/news/613219.html

相关文章:

  • Python 常用内置高阶函数
  • OO SALV的栏位功能
  • 大屏数据展示页面,数据可视化可以用到的框架和插件
  • 阿里云部署若依后,浏览器能正常访问,但是apifox和小程序访问后报错链接被重置
  • day27 同步互斥
  • IDEA-Research推出的一系列检测、分割模型:从DINO(改进版DETR)、Grounding Dino、DINO-X到Grounded SAM2
  • 【SPIE出版| 前4届均已完成EI检索】第五届算法、高性能计算与人工智能国际学术会议(AHPCAI 2025)
  • 解决GitHub push失败-Failed to connect to github.com port 443: Timed out
  • YooAsset为什么要分组
  • 《深入Java包装类体系:类型转换原理与Integer缓存实战指南》
  • jetson上使用opencv的gstreamer进行MIPI和USB摄像头的连接以及udp推流
  • PyTorch RNN 名字分类器
  • 解决 npm i node-sass@4.12.0 安装失败异常 npm i node-sass异常解决
  • QT的拖拽功能
  • vue-plugin-hiprint 打印模版使用
  • DicomObjects COM 8.XX
  • 云平台运维工具 ——AWS 原生工具
  • 008 前端vue
  • 解决React白板应用中的画布内容丢失问题
  • [盛最多水的容器]
  • 【关于Java中==和equals( )和hashCode( )三者异同】
  • Java中接口与抽象类
  • 国内使用 npm 时配置镜像源
  • 2025年 IT 服务管理(ITSM)工具市场分析:选型逻辑与企业适配趋势报告
  • Spring Cloud系列—LoadBalance负载均衡
  • 边缘算力×AI应用:如何在2025年实现爆发式增长
  • 酉矩阵(Unitary Matrix)和随机矩阵
  • “认知裂缝边缘”地带
  • PyTorch LSTM文本生成
  • 基于深度学习的污水新冠RNA测序数据分析系统