k3s主从节点设置详细流程

在 K3s 中,设置主节点(控制平面)和从节点(worker 节点)相对简单。K3s 是一种轻量级的 Kubernetes 发行版,特别适合资源有限的环境。以下是详细的步骤来设置主节点和从节点。

步骤 1:设置主节点(控制平面)

  1. 在主节点上安装 K3s

    首先,在你想用作主节点的服务器上运行以下命令来安装 K3s:

    bash 复制代码
    curl -sfL https://get.k3s.io | sh -

    这将自动安装 K3s,并将其作为控制平面运行。安装完成后,K3s 控制平面将自动启动并运行。

  2. 获取 node-token

    安装完成后,你可以通过以下命令获取用于加入从节点的 node-token

    bash 复制代码
    sudo cat /var/lib/rancher/k3s/server/node-token

    你将在后续步骤中使用这个 node-token 来让从节点加入集群。

  3. 查看集群状态

    你可以通过 kubectl 来检查集群状态:

    bash 复制代码
    sudo kubectl get nodes

    此时,主节点应该会出现在列表中。

步骤 2:设置从节点(worker 节点)

接下来,在每个你想作为从节点的服务器上进行以下操作。

  1. 安装 K3s 并指定主节点

    在从节点上,运行以下命令以加入主节点。假设你的主节点 IP 是 192.168.2.100,并使用你在步骤 1.2 中获取的 node-token

    bash 复制代码
    curl -sfL https://get.k3s.io | K3S_URL=https://192.168.2.100:6443 K3S_TOKEN=<node-token> sh -

    在这条命令中:

    • K3S_URL 是主节点的地址和 API 端口(默认是 6443)。
    • K3S_TOKEN 是从主节点获取的 node-token

    安装完成后,该节点将作为工作节点加入集群。

  2. 验证节点加入

    在主节点上,运行以下命令查看是否成功加入新的从节点:

    bash 复制代码
    sudo kubectl get nodes

    你应该能够看到主节点和所有从节点的列表。输出可能类似于:

    bash 复制代码
    NAME          STATUS   ROLES                  AGE   VERSION
    master-node   Ready    control-plane,master   10m   v1.21.0
    worker-node1  Ready    <none>                 5m    v1.21.0
    worker-node2  Ready    <none>                 5m    v1.21.0

设置从节点为work节点,参考博客:k8s设置从节点为work节点

bash 复制代码
 kubectl label node ainode02 node-role.kubernetes.io/worker=worker

步骤 3:配置高可用性(可选)

如果你想要配置多主节点的高可用集群,可以在额外的主节点上运行相同的安装命令,并使用相同的 K3S_URLK3S_TOKEN。K3s 将自动处理负载均衡和故障切换。

步骤 4:安装网络插件(如 Flannel)

如果你没有特定的要求,K3s 默认已经使用了 Flannel 网络插件来管理 Pod 网络,所以你不需要额外操作。如果你想使用其他网络插件,可以参考相关文档来进行安装和配置。

总结

  • 主节点 :运行 curl -sfL https://get.k3s.io | sh - 安装 K3s,自动将该节点设置为主节点(控制平面)。
  • 从节点 :使用 curl -sfL https://get.k3s.io | K3S_URL=https://<master-ip>:6443 K3S_TOKEN=<node-token> sh - 命令将从节点加入集群。
  • 高可用性:通过为多个控制平面节点运行相同的命令来实现。
  • 验证集群 :使用 kubectl get nodes 命令来查看集群中所有节点的状态。
相关推荐
维克兜率天2 小时前
【维克】ARMA模型:AR与MA的完美结合
后端·restful
是未才3 小时前
从输入 URL 到页面返回:DNS、路由、TLS 与 HTTP 完整链路
java·后端·计算机网络
上海安当技术4 小时前
半天接入:USBKey RESTful API + C 动态库,Web 和 C/S 两套集成路径实战
前端·后端·restful·集成·usbkey
DevUI团队4 小时前
从“即兴创作”到“规格先行”,华为云码道(CodeArts)代码智能体持续深耕企业级规范驱动开发能力
前端·人工智能·后端
weixin_431600445 小时前
NestJS 入门(3):Guard 如何挡住未登录请求?
前端·后端·学习·nest.js
IT_陈寒6 小时前
JavaScript类型转换把我坑惨了,这破玩意真该早点搞明白
前端·人工智能·后端
用户938515635076 小时前
手写一个 LLM Harness 框架:用工程化手段把大模型幻觉踩在脚下
javascript·人工智能·后端
wei_shuo7 小时前
KES 云原生部署与弹性扩展:容器化、Kubernetes编排与自动伸缩
后端
一木之林7 小时前
Python.五.(一)--1. 并发编程、异步IO与多进程
后端
feng尘7 小时前
# 彻底搞懂 ReentrantLock 与 tryLock:从秒杀实战到 AQS 独占模式源码剖析
后端