k3s 离线部署流程-sqlite 单master (内网环境)

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 即部署成功。


posted @ 2025-09-17 13:11  元贞  阅读(26)  评论(0)    收藏  举报