zhangxibin
发布于 2025-09-06 / 1 阅读
0
0

Ubuntu环境下的K3S集群搭建

一、Master节点

K3s 提供了一个安装脚本,可以方便地将其作为服务安装在基于 systemd 或 openrc 的系统上。该脚本可在 https://get.k3s.io 获得。要使用这种方法安装 K3s,只需运行:

curl -sfL https://get.k3s.io | sh -

AI生成项目

bash

中国用户,可以使用以下方法加速安装:

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -

AI生成项目

bash

运行此安装后:

K3s 服务将被配置为在节点重启后或进程崩溃或被杀死时自动重启。

将安装其他实用程序,包括 kubectl、crictl、ctr、k3s-killall.sh 和 k3s-uninstall.sh。

kubeconfig 文件将写入到 /etc/rancher/k3s/k3s.yaml,由 K3s 安装的 kubectl 将自动使用该文件。

单节点 Server 安装是一个功能齐全的 Kubernetes 集群,它包括了托管工作负载 pod 所需的所有数据存储、control plane、kubelet 和容器运行时组件。除非你希望向集群添加容量或冗余,否则没有必要添加额外的 Server 或 Agent 节点。

二、Node节点

要安装其他 Agent 节点并将它们添加到集群,请使用 K3S_URL 和 K3S_TOKEN 环境变量运行安装脚本。以下示例演示了如何添加 Agent 节点:

curl -sfL https://get.k3s.io | K3S_URL=https://myserver:6443 K3S_TOKEN=mynodetoken sh -

AI生成项目

bash

中国用户,可以使用以下方法加速安装:

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://myserver:6443 K3S_TOKEN=mynodetoken sh -

AI生成项目

bash

上面有两个参数,分别是myserver和mynodetoken:

myserver:Master节点的IP地址

mynodetoken:Master节点的Token

查看Master节点Token的方式如下:

cat /var/lib/rancher/k3s/server/token

AI生成项目

bash

K3S_URL 参数会导致安装程序将 K3s 配置为 Agent 而不是 Server。K3s Agent 将注册到在 URL 上监听的 K3s Server。K3S_TOKEN 使用的值存储在 Server 节点上的 /var/lib/rancher/k3s/server/enode-tokn 中。

备注:每台主机必须具有唯一的主机名。如果你的计算机没有唯一的主机名,请传递 K3S_NODE_NAME 环境变量,并为每个节点提供一个有效且唯一的主机名。

国内用户包含自定义名称的安装方式如下(注意自定义名称不要带有下划线等特殊字符):

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://myserver:6443 K3S_TOKEN=mynodetoken K3S_NODE_NAME=diyname sh -

AI生成项目

bash

三、验证安装

安装完成后,K3s会自动启动,并且Kubeconfig文件会默认放在/etc/rancher/k3s/k3s.yaml路径下。

k3s kubectl get nodes

AI生成项目

bash

四、管理和卸载

4.1、常用管理命令

设置k3s开机自启动

sudo systemctl enable k3s

AI生成项目

bash

启动K3s服务

sudo systemctl start k3s

AI生成项目

bash

停止K3s服务

sudo systemctl stop k3s

AI生成项目

bash

查看K3s状态

sudo systemctl status k3s

AI生成项目

bash

4.2、卸载K3S

如果使用安装脚本安装了 K3s,那么在安装过程中会生成一个卸载 K3s 的脚本。卸载 K3s 会删除集群数据和所有脚本。

从 server 节点卸载K3s

sudo /usr/local/bin/k3s-uninstall.sh

AI生成项目

bash

从 agent 节点卸载 K3s

sudo /usr/local/bin/k3s-agent-uninstall.sh

AI生成项目

bash

4.3、可视化管理面板Kuboard

Kuboard是一个优秀的 Kubernetes 管理面板。

安装 Kuboard v3,前提是该机器上的 docker 版本不低于 19.03。国内用户可以使用镜像地址。

sudo docker run -d \

--restart=unless-stopped \

--name=kuboard \

-p 80:80/tcp \

-p 10081:10081/tcp \

-e KUBOARD_ENDPOINT="http://内网IP:80" \

-e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \

-v /root/kuboard-data:/data \

eipwork/kuboard:v3

AI生成项目

bash

注意:

如果上述命令出现报错docker: Error response from daemon,也可以使用镜像swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3 ,可以更快地完成镜像下载;

请不要使用 127.0.0.1 或者 localhost 作为内网 IP;

Kuboard 不需要和 K8S 在同一个网段,Kuboard Agent 甚至可以通过代理访问 Kuboard Server。

参数解释

建议将此命令保存为一个 shell 脚本,例如 start-kuboard.sh,后续升级 Kuboard 或恢复 Kuboard 时,需要通过此命令了解到最初安装 Kuboard 时所使用的参数;

第 4 行,将 Kuboard Web 端口 80 映射到宿主机的 80 端口(您可以根据自己的情况选择宿主机的其他端口);

第 5 行,将 Kuboard Agent Server 的端口 10081/tcp 映射到宿主机的 10081 端口(您可以根据自己的情况选择宿主机的其他端口);

第 6 行,指定 KUBOARD_ENDPOINT 为 http://内网IP,如果后续修改此参数,需要将已导入的 Kubernetes 集群从 Kuboard 中删除,再重新导入;

第 7 行,指定 KUBOARD_AGENT_SERVER 的端口为 10081,此参数与第 5 行中的宿主机端口应保持一致,修改此参数不会改变容器内监听的端口 10081,例如,如果第 5 行为 -p 30081:10081/tcp 则第 7 行应该修改为 -e KUBOARD_AGENT_SERVER_TCP_PORT="30081";

第 8 行,将持久化数据 /data 目录映射到宿主机的 /root/kuboard-data 路径,请根据您自己的情况调整宿主机路径;

在浏览器输入http://your-host-ip:80 即可访问 Kuboard v3.x 的界面,登录方式:

用户名: admin

密 码: Kuboard123

参考链接

1、K3S官网文档 K3s - 轻量级 Kubernetes | K3s

2、Kuboard官网文档 安装 Kubernetes 多集群管理工具 - Kuboard v3 | Kuboard

————————————————

版权声明:本文为CSDN博主「帅帅气气的黑猫警长」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/Hao_ge_666/article/details/149349299


评论