找回密码
 立即注册
首页 业界区 业界 openEuler 安装 K3S

openEuler 安装 K3S

阙忆然 2026-1-14 04:15:00
openEuler 安装 K3S

参考文献:
K3S官方:https://www.rancher.cn/k3s/
K3S官方中文文档:https://docs.rancher.cn/k3s/
下载网址:https://github.com/k3s-io/k3s/releases/tag/v1.35.0+k3s1
安装要求介绍

K3s 非常轻巧,但有一些最低要求,如下所述。
无论您是将 K3s 集群配置为在 Docker 还是 Kubernetes 设置中运行,运行 K3s 的每个节点都应该满足以下最低要求。你可能需要更多的资源来满足你的需求。
先决条件

-两个节点不能有相同的主机名。如果您的所有节点都有相同的主机名,请使用--with-node-id选项为每个节点添加一个随机后缀,或者为您添加到集群的每个节点设计一个独特的名称,用--node-name或$K3S_NODE_NAME传递。
操作系统

K3s 有望在大多数现代 Linux 系统上运行。
有些操作系统有特定要求:

  • 如果您使用的是Raspbian Buster,请按照这些步骤切换到传统的 iptables。
  • 如果您使用的是Alpine Linux,请按照这些步骤进行额外设置。
  • 如果您使用的是Red Hat/CentOS,请按照这些步骤进行额外设置。
关于 Rancher 管理的 K3s 集群测试了哪些操作系统的更多信息,请参考Rancher 支持和维护条款。
硬件

硬件要求根据您部署的规模而变化。这里列出了最低建议。
CPU 和内存


  • CPU: 最低 1
  • 内存: 最低 512MB(建议至少为 1GB)
本节的测试结果是为了确定 K3s agent、具有工作负载的 K3s server 和具有一个 agent 的 K3s server 的最低资源要求。它还包含了有关对 K3s server 和 agent 利用率产生最大影响的分析,以及如何保护集群数据存储免受 agent 和工作负载的干扰。
磁盘

K3s 的性能取决于数据库的性能。为了确保最佳速度,我们建议尽可能使用 SSD。在使用 SD 卡或 eMMC 的 ARM 设备上,磁盘性能会有所不同。
网络

K3s server 需要 6443 端口才能被所有节点访问。
当使用 Flannel VXLAN 时,节点需要能够通过 UDP 端口 8472 访问其他节点,或者当使用 Flannel Wireguard 后端时,节点需要能够通过 UDP 端口 51820 和 51821(使用 IPv6 时)访问其他节点。该节点不应侦听任何其他端口。 K3s 使用反向隧道,以便节点与服务器建立出站连接,并且所有 kubelet 流量都通过该隧道运行。但是,如果你不使用 Flannel 并提供自己的自定义 CNI,那么 K3s 不需要 Flannel 所需的端口。
如果要使用metrics server,则需要在每个节点上打开端口 10250 端口。
如果计划使用嵌入式 etcd 实现高可用性,则 server 节点必须在端口 2379 和 2380 上可以相互访问。
重要
节点上的 VXLAN 端口不应公开暴露,因为它公开了集群网络,任何人都可以访问它。应在禁止访问端口 8472 的防火墙/安全组后面运行节点。
警告: Flannel 依靠 Bridge CNI plugin 来创建一个可以交换流量的 L2 网络。具有 NET_RAW 功能的 Rogue pod 可以滥用该 L2 网络来发动攻击,如 [ARP 欺骗](https://static.sched.com/hosted_files/kccncna19/72/ARP DNS spoof.pdf)。因此,正如 kubernetes 文档中记载的那样,请设置一个受限配置文件,在不可信任的 pod 上禁用 NET_RAW。
K3s Server 节点的入站规则如下:
协议端口源描述TCP6443K3s agent 节点Kubernetes API ServerUDP8472K3s server 和 agent 节点仅对 Flannel VXLAN 需要UDP51820K3s server 和 agent 节点只有 Flannel Wireguard 后端需要UDP51821K3s server 和 agent 节点只有使用 IPv6 的 Flannel Wireguard 后端才需要TCP10250K3s server 和 agent 节点Kubelet metricsTCP2379-2380K3s server 节点只有嵌入式 etcd 高可用才需要通常情况下,所有出站流量都是允许的。
安装选项介绍

使用脚本安装的选项

正如快速启动指南中提到的那样,你可以使用https://get.k3s.io 提供的安装脚本在基于 systemd 和 openrc 的系统上安装 K3s 作为服务。
该命令的最简单形式如下:
  1. curl -sfL https://get.k3s.io | sh -
复制代码
使用此方法安装 K3s 时,可使用以下环境变量来配置安装:
Environment VariableDescriptionINSTALL_K3S_SKIP_DOWNLOAD如果设置为 "true "将不会下载 K3s 的哈希值或二进制。INSTALL_K3S_SYMLINK默认情况下,如果路径中不存在命令,将为 kubectl、crictl 和 ctr 二进制文件创建符号链接。如果设置为'skip'将不会创建符号链接,而'force'将覆盖。INSTALL_K3S_SKIP_ENABLE如果设置为 "true",将不启用或启动 K3s 服务。INSTALL_K3S_SKIP_START如果设置为 "true "将不会启动 K3s 服务。INSTALL_K3S_VERSION从 Github 下载 K3s 的版本。如果没有指定,将尝试从"stable"频道下载。INSTALL_K3S_BIN_DIR安装 K3s 二进制文件、链接和卸载脚本的目录,或者使用/usr/local/bin作为默认目录。INSTALL_K3S_BIN_DIR_READ_ONLY如果设置为 true 将不会把文件写入INSTALL_K3S_BIN_DIR,强制设置INSTALL_K3S_SKIP_DOWNLOAD=true。INSTALL_K3S_SYSTEMD_DIR安装 systemd 服务和环境文件的目录,或者使用/etc/systemd/system作为默认目录。INSTALL_K3S_EXEC带有标志的命令,用于在服务中启动 K3s。如果未指定命令,并且设置了K3S_URL,它将默认为“agent”。如果未设置K3S_URL,它将默认为“server”。要获得帮助,请参考此示例。INSTALL_K3S_NAME要创建的 systemd 服务名称,如果以服务器方式运行 k3s,则默认为'k3s';如果以 agent 方式运行 k3s,则默认为'k3s-agent'。如果指定了服务名,则服务名将以'k3s-'为前缀。INSTALL_K3S_TYPE要创建的 systemd 服务类型,如果没有指定,将默认使用 K3s exec 命令。INSTALL_K3S_SELINUX_WARN如果设置为 true,则在没有找到 k3s-selinux 策略的情况下将继续。INSTALL_K3S_SKIP_SELINUX_RPM如果设置为 "true "将跳过 k3s RPM 的自动安装。INSTALL_K3S_CHANNEL_URL用于获取 K3s 下载网址的频道 URL。默认为 https://update.k3s.io/v1-release/channels 。INSTALL_K3S_CHANNEL用于获取 K3s 下载 URL 的通道。默认值为 "stable"。选项包括:stable, latest, testing。K3S_CONFIG_FILE指定配置文件的位置。默认目录为/etc/rancher/k3s/config.yaml。K3S_TOKEN用于将 server 或 agent 加入集群的共享 secret。K3S_TOKEN_FILE指定 cluster-secret,token 的文件目录。这个例子介绍了如何使用上述的环境变量(在管道之后):
  1. curl -sfL https://get.k3s.io | INSTALL_K3S_CHANNEL=latest sh -
复制代码
以 "K3S_"开头的环境变量将被保留,供 systemd 和 openrc 服务使用。
在没有明确设置 exec 命令的情况下设置K3S_URL,会将命令默认为 "agent"。
运行 agent 时还必须设置K3S_TOKEN。
从二进制安装的选项

如上所述,安装脚本主要是配置 K3s 作为服务运行。如果你选择不使用脚本,你可以通过从我们的发布页面下载二进制文件,将其放在你的路径上,然后执行它来运行 K3s。K3s 二进制支持以下命令:
命令描述k3s server运行 K3s server,它还将启动 Kubernetes control-plane 组件,如 API server, controller-manager, 和 scheduler。k3s agent运行 K3s agent 节点。这将使 K3s 作为工作节点运行,启动 Kubernetes 节点服务kubelet和kube-proxy。k3s kubectl运行嵌入式kubectl CLI。如果没有设置KUBECONFIG环境变量,当启动 K3s 服务器节点时,将自动尝试使用在/etc/rancher/k3s/k3s.yaml创建的配置文件。k3s crictl运行一个嵌入式crictl。这是一个用于与 Kubernetes 的容器运行时接口(CRI)交互的 CLI。对调试很有用。k3s ctr运行一个嵌入式的ctr。这是为 containerd(K3s 使用的容器守护进程)提供的 CLI。对调试很有用。k3s help显示一个命令的命令列表或帮助。k3s server 和 k3s agent 命令有额外的配置选项,可以通过 k3s server --help 或 k3s agent --help 查看.
正式安装

本文安装选择为二进制文件安装,原因为安装环境不可联网
下载链接:https://github.com/k3s-io/k3s/releases
下载安装文件
1.png

步骤1:配置目录结构
  1. # 创建必要的目录
  2. sudo mkdir -p /var/lib/rancher/k3s/agent/images/
  3. sudo mkdir -p /usr/local/bin/
  4. # 将离线镜像复制到正确位置
  5. sudo cp /tmp/k3s-airgap-images-amd64.tar.gz /var/lib/rancher/k3s/agent/images/
  6. # 安装 k3s 二进制文件
  7. sudo cp /tmp/k3s /usr/local/bin/
  8. sudo chmod +x /usr/local/bin/k3s
复制代码
步骤2:导入容器镜像
  1. # 方法1:使用 k3s ctr 命令导入(推荐)
  2. sudo k3s ctr images import /var/lib/rancher/k3s/agent/images/k3s-airgap-images-amd64.tar.gz
  3. # 方法2:如果已安装 K3s,使用 k3s 命令导入
  4. sudo k3s ctr images import /var/lib/rancher/k3s/agent/images/k3s-airgap-images-amd64.tar.gz
复制代码
步骤3:安装 K3s(离线模式)

方法A:使用离线安装脚本
  1. # 1. 下载安装脚本(在能联网的机器上)
  2. curl -sfL https://get.k3s.io > install.sh
  3. chmod +x install.sh
  4. # 2. 传输到 openEuler 并安装
  5. INSTALL_K3S_SKIP_DOWNLOAD=true \
  6. INSTALL_K3S_EXEC="server" \
  7. ./install.sh
复制代码
方法B:手动安装
[code]# 创建配置文件sudo tee /etc/systemd/system/k3s.service

相关推荐

2026-1-20 16:33:30

举报

懂技术并乐意极积无私分享的人越来越少。珍惜
2026-1-21 20:01:56

举报

2026-1-23 08:52:50

举报

2026-2-7 22:14:53

举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册