在裸机云中使用 K3S 启动 Kubernetes 集群

在裸机实例上运行容器相比在虚拟机上运行有许多优势,例如通过移除虚拟机层减少软件堆栈,简化网络配置,无需虚拟机桥接或转换。

Kubernetes 是一个开源容器编排平台,而 K3S 则旨在成为轻量级的 Kubernetes,具有更小的占用空间,能够在 Intel x86 和 ARM CPU 上运行。

K3S 是什么?

K3S 具有以下特点:

  • 轻量级 Kubernetes

  • 单个二进制文件(约 50MB)

  • 低内存/CPU 占用

  • CNCF 认证发行版

  • 适用于生产环境

  • 支持 ARM

  • 非常适合边缘计算

Kubernetes 集群包括一个主节点和一个或多个工作节点。它们的功能如下:

  • 主节点 – 控制集群、处理 API 调用等。

  • 工作节点 – 部署 pod 并运行应用程序。可以根据需求添加或移除工作节点。

要设置一个 K3S 集群,我们需要至少两台主机,一个主节点和一个工作节点。在本示例中,我们将使用来自 Zenlayer 裸机云(BMC)产品的两台主机。

Zenlayer BMC 提供多种服务器类型选择,通常包括 S/M/L 类型及其变体。在本示例中,我们选择了 S 类型,因为 K3S 在 16G 内存配置下也能表现出色。

实例配置

在 zenConsole 上 创建一个裸机实例

选择在实例中安装 Ubuntu 20.04,并启用 SSH 密钥访问。

实例将在几分钟内准备好,我们可以使用无密钥 SSH 访问它。

K3S 安装

访问 K3S.io 并从 这里 下载二进制文件。使用 'chmod +x k3s' 命令使其可执行。

  • 在主节点上,运行以下命令:

sudo k3s server &
# Kubeconfig 写入 /etc/rancher/k3s/k3s.yaml。
# 通过运行以下命令检查主节点:
sudo k3s kubectl get node

我们应该能看到类似以下的输出:

代码结果

从主节点中,在 /var/lib/rancher/k3s/server/node-token 找到 NODE_TOKEN

  • 在工作节点上,运行以下命令:

sudo k3s agent --server https://${Ipaddress_of_master_node}:6443 --token ${NODE_TOKEN}

我们将看到来自两个实例的大量日志信息。不久后,我们运行 '.k3s kubectl get node' 命令,应该能看到两个节点都已准备好。从此处我们可以运行其他 Kubernetes 命令。

运行 Kubernetes 命令

最后更新于