k0s 使用教程:轻量级 Kubernetes 发行版,单文件部署 K8S 集群

SEO关键词

k0s、k0s教程、k0s安装教程、Kubernetes发行版、轻量级Kubernetes、k0sctl、K8S集群部署、Kubernetes高可用、边缘计算Kubernetes、ARM Kubernetes

大家好 这里是「代码简单说」,欢迎大家关注同名公众号,不定时更新更多实用有趣的教程 也欢迎大家在评论区一起讨论交流!~

在 Kubernetes 生态中,虽然 K8S 功能强大,但安装和维护往往比较复杂。对于个人开发者、中小企业、边缘计算以及 IoT 场景来说,部署一个完整的 Kubernetes 集群往往需要较高的学习成本。

今天给大家介绍一个开源项目:
在这里插入图片描述

k0s

k0s 是一个轻量级、开源、符合 CNCF 认证标准的 Kubernetes 发行版,最大的特点就是:

单个二进制文件即可运行完整 Kubernetes 集群。

无论是云服务器、物理机、边缘设备还是 IoT 环境,都可以快速部署 Kubernetes 集群。

项目地址:

https://github.com/k0sproject/k0s

什么是 k0s

k0s 官方将自己定义为:

The Zero Friction Kubernetes(零摩擦 Kubernetes)

其目标是降低 Kubernetes 的安装、部署和维护门槛。

相比传统 Kubernetes 安装方式:

  • kubeadm
  • Rancher
  • Kubespray
  • K3s

k0s 更加简单直接。

它将 Kubernetes 所需组件全部打包到一个可执行文件中,不依赖额外运行环境。

官方介绍中提到:

k0s 是一个开源、一体化 Kubernetes 发行版,包含构建 Kubernetes 集群所需的全部功能,并以单个二进制文件形式发布。


k0s 核心特性

1. 完整 Kubernetes 发行版

k0s 并不是精简版 Kubernetes。

它提供:

  • API Server
  • Scheduler
  • Controller Manager
  • CoreDNS
  • Metrics Server
  • Container Runtime
  • 网络插件

属于完整 K8S 解决方案。


2. 单文件部署

传统 Kubernetes 安装:

docker
containerd
kubelet
kubeadm
kubectl

需要安装多个组件。

而 k0s:

curl -sSLf https://get.k0s.sh | sudo sh

即可安装。

部署极其简单。


3. 支持单节点和多节点

支持:

单节点集群

适用于:

  • 学习 Kubernetes
  • 本地开发
  • 测试环境

多节点集群

适用于:

  • 企业生产环境
  • 私有云
  • 数据中心

4. 资源占用低

官方最低要求:

配置 要求
CPU 1 Core
内存 1 GB
系统 Linux

相比标准 Kubernetes 更轻量。

非常适合:

  • VPS
  • 工控机
  • NAS
  • ARM 开发板

5. 支持多种架构

支持:

  • x86_64
  • ARM64
  • ARMv7
  • RISC-V

例如:

  • Raspberry Pi
  • 香橙派
  • 飞腾服务器
  • 龙芯平台

均可部署。


6. 支持高可用集群

k0s 可扩展为:

Controller × 3
Worker × N

支持:

  • 高可用控制平面
  • 自动故障恢复
  • 集群扩容

适合生产环境。


k0s 架构介绍

典型架构:

┌──────────────┐
│ Controller 1│
└──────┬───────┘
       │
┌──────▼───────┐
│ Controller 2│
└──────┬───────┘
       │
┌──────▼───────┐
│ Controller 3│
└──────┬───────┘
       │
 ┌─────▼─────┐
 │  Worker   │
 └─────┬─────┘
       │
 ┌─────▼─────┐
 │  Worker   │
 └───────────┘

支持:

  • 控制节点隔离
  • 工作节点扩展
  • 高可用部署

快速安装 k0s

下载

Linux:

curl -sSLf https://get.k0s.sh | sudo sh

查看版本:

k0s version

初始化控制节点

创建控制平面:

sudo k0s install controller --single

启动:

sudo k0s start

查看状态:

sudo k0s status

获取 kubectl 配置

导出配置:

sudo k0s kubeconfig admin > kubeconfig

设置环境变量:

export KUBECONFIG=./kubeconfig

查看节点:

kubectl get nodes

输出:

NAME      STATUS   ROLES
server1   Ready    control-plane

说明集群已经运行成功。


添加 Worker 节点

在 Controller 节点生成 Token:

k0s token create --role=worker

输出类似:

K10xxxxxxxxxxxx

在 Worker 节点执行:

sudo k0s install worker \
--token-file token.txt

启动:

sudo k0s start

查看节点:

kubectl get nodes

结果:

controller Ready
worker01   Ready
worker02   Ready

k0sctl 自动化运维

官方推荐使用:

k0sctl

类似:

  • Ansible
  • Kubespray

用于自动化管理集群。

安装:

curl -sSL https://github.com/k0sproject/k0sctl/releases/latest/download/k0sctl-linux-amd64 \
-o k0sctl

chmod +x k0sctl

集群配置

创建:

apiVersion: k0sctl.k0sproject.io/v1beta1
kind: Cluster

spec:
  hosts:
    - role: controller
      ssh:
        address: 192.168.1.10
        user: root

    - role: worker
      ssh:
        address: 192.168.1.11
        user: root

部署:

k0sctl apply

即可自动安装整个集群。


支持的数据库

默认:

单节点

SQLite

多节点

etcd

此外还支持:

  • MySQL
  • PostgreSQL

方便与企业现有基础设施集成。


网络插件支持

默认网络方案:

Kube-Router

同时支持:

  • Calico
  • Cilium
  • Flannel
  • Weave

自定义 CNI 配置即可使用。


存储支持

兼容 Kubernetes CSI 标准。

支持:

  • NFS
  • Ceph
  • Longhorn
  • OpenEBS
  • 云厂商存储

例如:

  • AWS EBS
  • 阿里云 ESSD
  • 腾讯云 CBS

均可接入。


k0s 与 K3s 对比

功能 k0s K3s
CNCF认证
单文件部署
ARM支持
高可用
自动运维 ✔ k0sctl 部分
资源占用 更低
企业生产环境

如果是:

  • 企业私有云
  • 多节点集群
  • 高可用环境

k0s 更具优势。

如果是:

  • IoT
  • Raspberry Pi
  • 超轻量场景

K3s 更节省资源。


适用场景

开发测试环境

快速搭建 Kubernetes 学习环境。


企业私有云

构建:

  • DevOps 平台
  • 微服务平台
  • AI 集群

边缘计算

适用于:

  • 工厂设备
  • 边缘服务器
  • IoT 网关

ARM 服务器

例如:

  • Raspberry Pi
  • 飞腾
  • 鲲鹏
  • 龙芯

均可部署。


总结

k0s 是目前 Kubernetes 领域非常值得关注的轻量级发行版之一。

相比传统 Kubernetes:

  • 安装更简单
  • 运维更方便
  • 单文件部署
  • 支持高可用
  • 支持 ARM
  • 支持生产环境

如果你正在寻找一个比 kubeadm 更简单、比传统 Kubernetes 更易维护,同时又保留完整 Kubernetes 能力的解决方案,那么 k0s 是一个非常不错的选择。


Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐