一、K3S简介

K3s是一个由Rancher Labs推出的轻量级Kubernetes发行版,专为资源受限的环境设计,如边缘计算、物联网(IoT)、持续集成(CI)、开发测试和ARM架构设备。它具有以下显著特点:

  • 轻量级:所有组件打包在一个小于100MB的单一二进制文件中,内存占用仅为标准Kubernetes的一半。
  • 简化安装:只需运行一个shell脚本即可完成部署,无需复杂的配置。
  • 自包含:内置了containerd、Flannel、CoreDNS、Traefik等组件,无需额外安装和配置。
  • 兼容性强:完全兼容Kubernetes API,可使用标准的Kubernetes工具和命令行界面进行交互。

二、K3S相对于K8S的精简之处

K3s通过精简组件和优化架构实现了小巧高效,主要体现在以下几个方面:

  • 存储:默认使用SQLite3替代etcd,降低了资源消耗,同时也支持etcd3、MySQL、PostgreSQL等存储方式。
  • 组件:控制平面的组件如API Server、Scheduler等合并为单进程和二进制文件,而K8s的各组件是独立运行的。
  • 依赖:移除了Docker,采用containerd作为容器运行时,并且内置了Flannel、CoreDNS、Traefik等,无需额外配置。
  • 配置:自动处理TLS和证书,提供了合理的默认值,简化了K8s中繁琐的手动调整。
  • 功能:裁剪了一些企业级功能,保留了核心兼容性,同时内置了简单的负载均衡器。

三、K3S集群搭建

(一)单机安装(以Rocky Linux为例)

  1. 先决条件
    • 硬件:至少1核CPU、512MB RAM,推荐2核、1GB RAM,使用SSD磁盘优化性能。
    • 操作系统:支持大多数现代Linux,如RHEL衍生版。
    • 网络:确保端口6443开放,所有出站流量允许。
    • 防火墙:推荐禁用firewalld,若启用需添加规则:
sudo firewall - cmd -- permanent -- add - port = 6443/tcp
sudo firewall - cmd -- permanent -- zone = trusted -- add - source = 10.42.0.0/16
sudo firewall - cmd -- permanent -- zone = trusted -- add - source = 10.43.0.0/16
sudo firewall - cmd -- reload
- SELinux:建议设置为permissive模式,临时设置为`sudo setenforce 0`,或编辑`/etc/selinux/config`设置`SELINUX = permissive`并重启。
  1. 安装步骤
    • 更新系统:
sudo dnf update - y
- 安装K3s:
curl - sfL https://rancher - mirror.rancher.cn/k3s/k3s - install.sh | INSTALL_K3S_MIRROR = cn sh -
- 验证安装:
sudo kubectl get nodes
- kubeconfig文件位于`/etc/rancher/k3s/k3s.yaml`,kubectl会自动使用它。
- 卸载:执行`/usr/local/bin/k3s - uninstall.sh`。

(二)集群安装

以一个主节点(master)和两个工作节点(node)为例,主节点IP为192.168.31.210,节点1 IP为192.168.31.211,节点2 IP为192.168.31.212。

  1. 先决条件
    • 每节点硬件至少1核、512MB RAM。
    • 所有节点间可通信,主节点端口6443对节点开放,UDP 8472(Flannel VXLAN)和TCP 10250(metrics)对所有节点开放。
    • 每节点禁用firewalld或添加规则,设置SELinux为permissive。
    • 确保主机名唯一,若重复可使用K3S_NODE_NAME环境变量指定。
    • 节点时间一致,使用NTP进行时间同步。
  2. 安装步骤
    • 在主节点安装K3s服务器:
curl - sfL https://rancher - mirror.rancher.cn/k3s/k3s - install.sh | INSTALL_K3S_MIRROR = cn sh -
- 获取加入令牌:
sudo cat / var / lib / rancher / k3s / server / node - token
- 在节点1加入集群:替换TOKEN为上一步获取的值。
curl - sfL https://rancher - mirror.rancher.cn/k3s/k3s - install.sh | INSTALL_K3S_MIRROR = cn K3S_URL = https://192.168.31.210:6443 K3S_TOKEN = TOKEN sh -
- 同理,在节点2加入集群。
- 验证集群:在主节点运行`sudo kubectl get nodes`,应显示三个节点均为Ready状态。
- 卸载集群:主节点执行`/usr/local/bin/k3s - uninstall.sh`,节点执行`/usr/local/bin/k3s - agent - uninstall.sh`。

四、图形化面板——Kuboard

K3s安装完成后,可以通过Kuboard来管理集群,安装命令如下:

kubectl apply - f https://addons.kuboard.cn/kuboard/kuboard - v3 - swr.yaml

安装完成后,访问集群的30080端口,使用初始账户密码admin\Kuboard123导入集群即可。

通过以上步骤,我们可以轻松地搭建起一个轻量级的K3S集群,满足开发测试、边缘计算等场景的需求。K3S的简单易用和高效性,使得即使是对Kubernetes不太熟悉的用户也能快速上手,享受容器化带来的便利。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐