离线安装
#
概述你可以使用两种不同的方法在离线环境中安装 K3s。离线环境是不直接连接到 Internet 的任何环境。你可以部署一个私有镜像仓库,或者你可以手动部署镜像,比如用于小型集群。
离线安装的过程主要分为以下两个步骤:
步骤 1:部署镜像,本文提供了两种部署方式,分别是部署私有镜像仓库和手动部署镜像。请在这两种方式中选择一种执行。
步骤 2:安装 K3s,本文提供了两种安装方式,分别是单节点安装和高可用安装。完成镜像部署后,请在这两种方式中选择一种执行。
离线升级 K3s 版本:完成离线安装 K3s 后,您还可以通过脚本升级 K3s 版本,或启用自动升级功能,以保持离线环境中的 K3s 版本与最新的 K3s 版本同步。
请按照下文的操作指导进行离线安装和升级。
#
部署私有镜像仓库#
前提条件本文档假设您已经在离线环境中创建了节点,并且在您的堡垒机上有一个 Docker 私有镜像仓库。
如果你还没有建立私有的 Docker 镜像仓库,请参考Docker 官方文档建立私有的 Docker 镜像仓库。
#
创建镜像仓库 YAML请按照私有镜像仓库配置指南 创建并配置registry.yaml
文件。
完成后,现在可以转到下面的安装 K3s部分,开始安装 K3s。
#
手动部署镜像#
前提条件我们假设您已经在离线环境中创建了节点。这种方法需要您手动将必要的镜像部署到每个节点,适用于运行无法部署镜像仓库的边缘部署场景。
#
操作步骤请按照以下步骤准备镜像目录和 K3s 二进制文件。
从K3s GitHub Release页面获取你所运行的 K3s 版本的镜像 tar 文件。
将 tar 文件放在
images
目录下,例如:将 k3s 二进制文件放在
/usr/local/bin/k3s
路径下,并确保拥有可执行权限。完成后,现在可以转到下面的安装 K3s部分,开始安装 K3s。
#
安装 K3s#
前提条件- 在安装 K3s 之前,完成上面的部署私有镜像仓库或手动部署镜像,导入安装 K3s 所需要的镜像。
- 从 release 页面下载 K3s 二进制文件,K3s 二进制文件需要与离线镜像的版本匹配。将二进制文件放在每个离线节点的
/usr/local/bin
中,并确保这个二进制文件是可执行的。 - 下载 K3s 安装脚本:https://get.k3s.io 。将安装脚本放在每个离线节点的任意地方,并命名为
install.sh
。
当使用 INSTALL_K3S_SKIP_DOWNLOAD
环境变量运行 K3s 脚本时,K3s 将使用本地的脚本和二进制。
#
在离线环境中安装 K3s您可以在离线环境中执行单节点安装,在一个 server(节点)上安装 K3s,或高可用安装,在多个 server(节点)上安装 K3s。
- 单节点安装
- 高可用安装
要在单个服务器上安装 K3s,只需在 server 节点上执行以下操作:
然后,要选择添加其他 agent,请在每个 agent 节点上执行以下操作。注意将 myserver
替换为 server 的 IP 或有效的 DNS,并将 mynodetoken
替换 server 节点的 token,通常在/var/lib/rancher/k3s/server/node-token
。
您需要调整安装命令,以便指定INSTALL_K3S_SKIP_DOWNLOAD=true
并在本地运行安装脚本。您还将利用INSTALL_K3S_EXEC='args'
为 k3s 提供其他参数。
例如,使用外部数据库实现高可用安装指南的第二步提到了以下内容:
由于在离线环境中无法使用curl
命令进行安装,所以您需要参考以下示例,将这条命令行修改为离线安装:
注意
K3s 还为 kubelets 提供了一个--resolv-conf
标志,这可能有助于在离线网络中配置 DNS。
#
升级 K3s#
通过脚本升级离线环境的升级可以通过以下步骤完成:
- 从K3s GitHub Release页面下载要升级到的 K3s 版本。将 tar 文件放在每个节点的
/var/lib/rancher/k3s/agent/images/
目录下。删除旧的 tar 文件。 - 复制并替换每个节点上
/usr/local/bin
中的旧 K3s 二进制文件。复制https://get.k3s.io 的安装脚本(因为它可能在上次发布后发生了变化)。再次运行脚本。 - 重启 K3s 服务。
#
启用自动升级功能除了可以通过脚本升级 K3s 以外,您还可以启用自动升级功能,以保持离线环境中的 K3s 版本与最新的 K3s 版本同步。
从 v1.17.4+k3s1 开始,K3s 支持自动升级。要在离线环境中启用此功能,您必须确保所需镜像在您的私有镜像仓库中可用。
你将需要与你打算升级到的 K3s 版本相对应的 rancher/k3s-upgrade 版本。注意,镜像标签将 K3s 版本中的
+
替换为-
,因为 Docker 镜像不支持+
。你还需要在你要部署的
system-upgrad-controller manifest
YAML 中指定的system-upgrad-controller
和kubectl
的版本。在这里检查 system-upgrad-controller 的最新版本,并下载system-upgrad-controller.yaml
来确定你需要推送到私有镜像仓库的版本。例如,在system-upgrade-controller
的 v0.4.0 版本中,在 manifest YAML 中指定了这些镜像:将必要的 rancher/k3s-upgrade、rancher/system-upgrade-controller 和 rancher/kubectl 镜像添加到您的私有镜像仓库中以后 ,就可以按照K3s 自动升级指南进行操作。