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

ubantu 24.04.4离线安装k3s

离线安装k3s。

集群规划(3 节点)

master节点,主机名:k8s-master-01,ip:172.29.128.1

工作节点1:主机名:k8s-worker-01,ip:172.29.132.68 

工作节点2:主机名:k8s-worker-02,ip:172.29.132.69 

 

一,前置统一操作(所有 3 台节点全部执行)

1.1 分别设置每台机器主机名

# master节点执行
hostnamectl set-hostname k8s-master-01# worker01节点执行
hostnamectl set-hostname k8s-worker-01# worker02节点执行
hostnamectl set-hostname k8s-worker-02

 

1.2 所有节点统一写入 /etc/hosts

cat >> /etc/hosts <<EOF
172.29.128.1    k8s-master-01
172.29.132.68   k8s-worker-01
172.29.132.69   k8s-worker-02
EOF

 

1.3. 关闭防火墙、SELinux、swap(K3s 强制要求)

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld# 关闭selinux(centos/rhel系,ubuntu可忽略)
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config# 永久关闭swap
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab

 

1.4. 内核参数(容器网络必需)

modprobe overlay
modprobe br_netfiltercat >> /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF
sysctl --systemcat >> /etc/sysctl.conf <<EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
EOF
sysctl -p

 

1.5 4. 时间同步(避免证书过期、节点失联)

yum install chrony -y || apt install chrony -y
systemctl enable --now chronyd

 

二,下载k3s离线包

下载k3s二进制:https://github.com/k3s-io/k3s/releases/download/v1.33.6+k3s1/k3s

下载airgap镜像包:https://github.com/k3s-io/k3s/releases/latest/download/k3s-airgap-images-amd64.tar

下载官方安装脚本:https://get.k3s.io

将安装脚本保存为 k3s-install.sh 文件

将下载的三个文件:k3s、k3s-airgap-images-amd64.tar、k3s-install.sh 上传到所有节点

在powershell窗口扫行:

#上传到k8s-master-01节点
scp D:\softs\k3s\k3s-airgap-images-amd64.tar root@121.40.63.235:/data/k3s
scp D:\softs\k3s\k3s-install.sh root@121.40.63.235:/data/k3s
scp D:\softs\k3s\k3s root@121.40.63.235:/data/k3s#上传到k8s-worker-01节点
scp D:\softs\k3s\k3s-airgap-images-amd64.tar root@116.62.212.143:/data/k3s
scp D:\softs\k3s\k3s-install.sh root@116.62.212.143:/data/k3s
scp D:\softs\k3s\k3s root@116.62.212.143:/data/k3s#上传到k8s-worker-02节点
scp D:\softs\k3s\k3s-airgap-images-amd64.tar root@121.199.21.41:/data/k3s
scp D:\softs\k3s\k3s-install.sh root@121.199.21.41:/data/k3s
scp D:\softs\k3s\k3s root@121.199.21.41:/data/k3s

 

在三个节点上都要查看,确保文件已上传:

image

 

 三,部署k3s (master节点)

1. 分发二进制、离线镜像、授权安装脚本

# 1. 将k3s二进制复制到系统全局PATH
cp /data/k3s/k3s /usr/local/bin/
chmod +x /usr/local/bin/k3s# 2. 创建镜像自动加载目录,拷贝离线镜像包
mkdir -p /var/lib/rancher/k3s/agent/images/
cp /data/k3s/k3s-airgap-images-amd64.tar /var/lib/rancher/k3s/agent/images/# 3. 脚本增加执行权限,校验版本
chmod +x /data/k3s/k3s-install.sh
k3s --version

 

2,Master 节点(172.29.128.1)执行安装

INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC="server \
--cluster-init \
--server https://172.29.128.1:6443 \
--tls-san 172.29.128.1 \
--airgap \
--write-kubeconfig-mode 644" \
/data/k3s/k3s-install.sh

 

3,查看 k3s 服务运行状态

systemctl status k3s
kubectl get nodes

 

4,配置 kubectl 管理凭证(在master 节点上执行)

mkdir -p ~/.kube
cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
sed -i 's/127.0.0.1/172.29.128.1/g' ~/.kube/config

 

 

image

 

image

 

四,部署k3s工作工点

1,在master节点上获取 Worker 节点接入 Token(保存,两台 worker 都要用)

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

 

 

2,两台 Worker 节点分别执行安装(替换 Token)

INSTALL_K3S_SKIP_DOWNLOAD=true \
INSTALL_K3S_EXEC="agent \
--server https://172.29.128.1:6443 \
--token 替换为你的token" \
bash /data/k3s/k3s-install.sh

 

如果输出下面的错误,说明是windows换行符导致的。

: invalid optionstall.sh: line 2: set: -
set: usage: set [-abefhkmnptuvxBCEHPT] [-o option-name] [--] [-] [arg ...]
: invalid option name.sh: line 3: set: noglob
/data/k3s/k3s-install.sh: line 4: $'\r': command not found
/data/k3s/k3s-install.sh: line 101: $'\r': command not found
/data/k3s/k3s-install.sh: line 105: $'\r': command not found
/data/k3s/k3s-install.sh: line 107: syntax error near unexpected token `$'\r''
'data/k3s/k3s-install.sh: line 107: `info()

解决方式:

第一步:修复 Windows 换行符(CRLF→LF,根治 \r 报错)

sed -i 's/\r$//' /data/k3s/k3s-install.sh

第二步:拷贝二进制到系统目录(必须先执行)

cp /data/k3s/k3s /usr/local/bin/
chmod +x /usr/local/bin/k3s
mkdir -p /var/lib/rancher/k3s/agent/images/
cp /data/k3s/k3s-airgap-images-amd64.tar /var/lib/rancher/k3s/agent/images/
chmod 755 /data/k3s/k3s-install.sh

第三步,重新执行:

INSTALL_K3S_SKIP_DOWNLOAD=true \
INSTALL_K3S_EXEC="agent \
--server https://172.29.128.1:6443 \
--token 替换为你的token" \
bash /data/k3s/k3s-install.sh

 

3,安装完成验证

systemctl start k3s-agent
systemctl status k3s-agent

 

4,在master节点验证

kubectl get nodes

 

image

  

五,运维启停 / 卸载命令

# Master节点操作
systemctl restart k3s
/usr/local/bin/k3s-uninstall.sh# Worker节点操作
systemctl restart k3s-agent
/usr/local/bin/k3s-agent-uninstall.sh

 

http://www.jsqmd.com/news/1289804/

相关文章:

  • PhotoRec数据恢复工具:开源免费的硬盘数据拯救专家
  • 3分钟免费解锁鸣潮120帧:WaveTools工具箱完整使用指南
  • AC自动机 学习笔记
  • 拯救消失的网页记忆:Wayback Machine浏览器扩展完全指南
  • 为什么需要人在回路?达尔文.skill独特的三层守关机制详解
  • 如何快速部署MetaTube插件:Jellyfin智能元数据刮削终极指南
  • 芯聆CLD6255(4 x 190W, 2 x 380W 或 2.1 模式 (2x190W + 1x380W ) @1% THD 数字输入 D 类音频播放器)
  • 命令行生成BIN文件并修改内容后与固件合并烧录至芯片
  • 软件测试工程师到底是做什么的?一文讲清职责、技能与成长路径
  • 揭秘XStreaming背后的WebRTC技术:打造稳定流畅的串流体验
  • 为什么说地震后的机房评估,必须把“深度除尘检测”作为前置必选项?
  • Apicurio Registry审计日志:跟踪Schema变更历史的终极指南
  • 中小企业财税数字化怎么选?业财税一体化软件推荐与亿企赢深度解析 - 速递信息
  • 【AI生成产品展示图终极指南】:20年电商视觉专家亲授,3步搞定高转化率AI图,错过再等半年!
  • KMS智能激活工具完整指南:一键永久激活Windows和Office的免费解决方案
  • Jenkins备份与恢复策略:确保你的构建历史永不丢失
  • 电销机器人为什么越来越多的初创团队选择蓝鲸智呼? - 生活动态圈
  • 从安装到实战:EventBus完整使用教程(含代码示例)
  • Home Assistant界面优化必装插件:fold-entity-row安装与使用指南
  • 开发者视角:Ninjabrain-Bot的末地城生成机制模拟与代码架构
  • 2026医疗器械零售企业品牌曝光提升指南:具备合规内容构建能力的SEO/GEO服务商大盘点 合作避坑全解析 - U渠道
  • ChatGPT语音模式:让碎片时间高效交互,比打字更直观实用!
  • 国家中小学智慧教育平台电子课本下载:3分钟搞定所有教材PDF
  • Apicurio Registry与OpenShift部署:容器平台最佳实践
  • 什么叫做强校垄断?
  • 2026广西公考机构多维度横向测评:师资、教研、智能系统谁更胜一筹? - 天涯视角
  • 2026年财税合规软件推荐:亿企赢凭什么让小微企业和代账公司都选它? - 速递信息
  • AI环境监测合规生死线:GDPR+《生态环境监测条例》双框架下数据采集、存储与模型审计强制要求(仅限首批内测机构获取)
  • 如何在Android设备上高效运行Windows应用:Winlator完整指南
  • Kritis:Kubernetes应用部署时的终极策略执行者,如何保障容器安全?