当前位置: 首页 > news >正文

Ubuntu环境下的K3S集群搭建

一、Master节点

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

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

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

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

运行此安装后:

  • K3s 服务将被配置为在节点重启后或进程崩溃或被杀死时自动重启。
  • 将安装其他实用程序,包括 kubectlcrictlctrk3s-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 -

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

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

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

    • myserver:Master节点的IP地址
    • mynodetoken:Master节点的Token

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

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

    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 -

    三、验证安装

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

    k3s kubectl get nodes

    四、管理和卸载

    4.1、常用管理命令

    • 设置k3s开机自启动
    sudo systemctl enable k3s
    • 启动K3s服务
    sudo systemctl start k3s
    • 停止K3s服务
    sudo systemctl stop k3s
    • 查看K3s状态
    sudo systemctl status k3s

    4.2、卸载K3S

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

    • 从 server 节点卸载K3s
    sudo /usr/local/bin/k3s-uninstall.sh
    • 从 agent 节点卸载 K3s 
    sudo /usr/local/bin/k3s-agent-uninstall.sh

    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
    

    注意: 

    • 如果上述命令出现报错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

    http://www.lryc.cn/news/588905.html

    相关文章:

  • 一文读懂语义解析技术:从规则到神经网络的演进与挑战
  • DGNNet:基于双图神经网络的少样本故障诊断学习模型
  • 暑期算法训练.1
  • Linux下调试器gdb/cgdb的使用
  • 只解析了CHAME记录,如何申请免费的SSL证书
  • Linux 命令:passwd
  • WPF中ListView控件详解
  • 牛客:HJ23 删除字符串中出现次数最少的字符[华为机考][字符串]
  • Linux部署Python服务
  • langchain教程10:LCEL
  • 阿里云 Kubernetes 的 kubectl 配置
  • 深入理解设计模式之外观模式:简化复杂系统的艺术
  • 企业培训视频如何做内容加密防下载防盗录(功能点整理)
  • 优雅的Java:01.数据更新如何更优雅
  • 2025开放原子开源生态大会 | openKylin的技术跃迁和全球协作
  • 2025阿里云黑洞恢复全指南:从应急响应到长效防御的实战方案
  • CentOS服务器安装Supervisor使队列可以在后台运行
  • 2.3 数组与字符串
  • QGIS新手教程9:字段计算器进阶用法与批量处理技巧
  • HTTP性能优化实战技术
  • 串口通信性能优化
  • golang语法-----变量、常量
  • Go语言统计字符串中每个字符出现的次数 — 简易频率分析器
  • 解锁Redis:从安装到配置的全攻略
  • DBeaver 传输数据库A数据到数据库B
  • LLM指纹底层技术——特征提取
  • 06-C语言:第06天笔记
  • python的广东省家庭旅游接待信息管理系统
  • 文心一言4.5开源模型测评:ERNIE-4.5-0.3B超轻量模型部署指南
  • NineData 社区版 V4.3.0 正式发布!新增 5 条迁移对比链路,全面支持 MariaDB、GaussDB 等数据库