想学k8s,可以考虑K8s的轻量版本k3s

489 阅读5分钟

对于大部分自学者而言,其实除了minikube,还可以使用k3s,因为Minikube只适用于本地开发,Minikube 和 K3s 都是轻量级的 Kubernetes 发行版,但它们的目标和适用场景有所不同。以下是它们的对比:

对比项MinikubeK3s
定位本地 Kubernetes 开发环境轻量级 Kubernetes 发行版,适用于生产环境
安装方式运行在本地 VM 或 Docker 容器中直接运行在裸机或云服务器上
组件完整的 Kubernetes 组件移除了部分不必要组件(如 Kube-proxy 可选),内置 SQLite 代替 etcd
资源占用较高,需要完整 Kubernetes 组件低,适合边缘计算、IoT、轻量级服务器
适用场景开发、测试 Kubernetes 应用轻量级生产环境、嵌入式设备、边缘计算
网络支持多种 CNI(默认 bridge 模式)内置 Flannel CNI,支持自定义
存储需要手动配置存储插件直接支持 local-path storage
支持的操作系统主要在本地运行,支持 macOS、Linux、Windows适用于 Linux 服务器,也可以在 macOS 和 Windows 上运行
集群管理单节点为主,可配置多节点但较复杂支持多节点集群,且管理简单
兼容性100% Kubernetes 兼容兼容 Kubernetes API,但做了裁剪
适合的用户开发者,本地调试 Kubernetes生产环境、小规模集群、边缘计算
是否开源是,由 Rancher Labs 维护

适用场景总结:

  • 如果你是开发者,想在本地运行 Kubernetes 进行调试,Minikube 更合适。
  • 如果你需要在资源受限的设备上运行 Kubernetes(如边缘计算、IoT、轻量级服务器) ,K3s 更合适。
  • 如果你想搭建一个小型生产集群,避免 K8s 复杂的组件管理,K3s 是更好的选择。

你目前在用 K3s,如果考虑集群轻量化或者部署在资源有限的环境中,K3s 是更优的选择。而 Minikube 主要是给开发者本地调试使用,适用于本机模拟 Kubernetes 运行环境。

但是如果你想深入学习k8s,不做个项目怎么可能深入学习,我建议直接上手一个项目,所以先安装k3s,注意最好是在Linux中安装,如果只有一台windows,请就使用wsl2(注意需要至少24GB运行内存,因为你需要跑SpringBoot、docker,还有使用一些开发工具),本项目需要一些门槛,接下来我将介绍如何组建你的k3s集群: 在Linux上安装K3s(轻量级Kubernetes发行版)非常简单,适用于单节点或集群部署。下面是详细的步骤:

1. 系统要求

确保你的Linux服务器符合以下要求:

  • 至少1GB内存和1个CPU核心(建议更多资源以支持更多工作负载)
  • 支持x86_64、ARMv7或ARM64架构
  • Docker或其他容器运行时未被占用(K3s内置了一个轻量级的容器运行时)

2. 环境准备

首先,更新系统并确保系统包是最新的:

sudo apt-get update && sudo apt-get upgrade -y

安装常见的依赖包:

sudo apt-get install -y curl

如果你的Linux发行版是CentOS,使用以下命令:

sudo yum update -y
sudo yum install -y curl

3. 安装K3s

K3s提供了一个自动安装脚本,可以轻松在Linux系统上安装。

运行以下命令下载并安装K3s:

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

这个命令会自动下载并安装最新版本的K3s,安装完毕后,K3s会作为系统服务运行。

如果你想安装特定版本的K3s:

curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION="v1.21.3+k3s1" sh -

4. 验证安装

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

验证K3s是否运行成功:

sudo k3s kubectl get nodes

此命令会列出集群中的所有节点,并显示它们的状态。如果你能看到节点处于Ready状态,说明K3s已成功安装并运行。

5. 配置kubectl

为了更方便使用kubectl,可以将配置文件复制到用户的默认配置路径:

mkdir -p $HOME/.kube
sudo cp /etc/rancher/k3s/k3s.yaml $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

现在你可以通过kubectl命令来管理K3s集群了:

kubectl get nodes

6. 多节点集群配置(可选)

如果你想将K3s安装为多节点集群,可以按照以下步骤配置主节点(Master)和工作节点(Worker)。如果你有两台服务器,或者自己电脑运行内存比较大(24GB),可以在Ubuntu或者自己的服务器组建的集群,下面是简单的集群搭建,更详细的搭建流程请参考文章:k3s主从节点搭建流程

6.1 安装主节点

在主节点上运行安装脚本时,加入--cluster-init参数:

curl -sfL https://get.k3s.io | sh -s - server --cluster-init

6.2 安装工作节点

在工作节点上,将其连接到主节点。首先,获取主节点的token:

sudo cat /var/lib/rancher/k3s/server/node-token

然后,在工作节点上运行以下命令,将<MASTER_IP>替换为主节点的IP地址,并使用刚才获取的token:

curl -sfL https://get.k3s.io | K3S_TOKEN=<TOKEN> sh -s - server --server https://<MASTER_IP>:6443

7. 管理K3s

  • 启动K3s服务:
    sudo systemctl start k3s
    
  • 停止K3s服务:
    sudo systemctl stop k3s
    
  • 查看K3s状态:
    sudo systemctl status k3s
    

8. 卸载K3s

如果你需要卸载K3s,可以运行以下命令:

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

对于工作节点,使用以下命令:

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

总结

K3s的安装过程非常简便,只需要运行一个脚本即可。你可以选择单节点安装,也可以通过额外配置实现多节点集群。