[TOC]

Q: 什么是 K3S?

描述: 它是一个轻量级K8S(Lightweight Kubernetes)同时它也是一个云原生计算基金会(CNCF)沙盒项目, 为物联网和边缘计算构建的经过认证的 Kubernetes 发行版, 减少了kubernetes云供应商相关插件所以其更加精简, 部署也更加简单。

Q: 为什么使用 K3S?

1) 简化和安全 : K3s 单个二进制文件小于50MB,可减少安装、运行和自动更新生产 Kubernetes 集群所需的依赖关系和步骤。
2) 边缘的完美选择: 高度可用、经过认证的 Kubernetes 发行版,专为无人值守、资源受限的远程位置或 IoT 设备内部的生产工作负载而设计。
3) 支持ARM优化 : K3S 提供了 ARM64 和 ARMv7 都支持二进制文件和多架构映像, 所以可以运行在嵌入式设备之中。

K3S 体系架构图

描述: K3S 它由 Server 与 Agent 两大节点组成, 从下图中可以看出

WeiyiGeek.K3S-How it Works

WeiyiGeek.K3S-How it Works

官方地址: https://k3s.io/ && https://www.rancher.cn/k3s/
官方文档: https://rancher.com/docs/k3s/latest/en/
项目地址: https://github.com/rancher/k3s/releases/latest && https://github.com/k3s-io/k3s/

当前【2022年6月14日 22:04:49】节点最新版本为 v1.24.1+k3s1 (https://github.com/k3s-io/k3s/releases/tag/v1.24.1+k3s1)

安装要求

无论您是将 K3s 集群配置为在 Docker 还是 Kubernetes 设置中运行,运行 K3 的每个节点都应满足以下最低要求。您可能需要更多资源来满足您的需求。

  • 硬件: 内存最少512MB(建议至少1GB), CPU 最少一个, 磁盘最好使用SSD。
  • 软件: 选择常用的操作系统例如Ubuntu、、Debian、CentOS等,
  • 先决条件:
    • 节点不能具有相同的主机名
    • 防火墙需要对k3s Server 的 6443端口 放行,因为 K3s服务器需要端口 6443 才能被所有节点访问。

K3s服务器节点的入站规则(Inbound Rules for K3s Server Nodes)

PROTOCOL PORT SOURCE DESCRIPTION
TCP 6443 K3s agent nodes Kubernetes API Server
UDP 8472 K3s server and agent nodes Required only for Flannel VXLAN
UDP 51820 K3s server and agent nodes Required only for Flannel Wireguard backend
UDP 51821 K3s server and agent nodes Required only for Flannel Wireguard backend with IPv6
TCP 10250 K3s server and agent nodes Kubelet metrics
TCP 2379-2380 K3s server nodes Required only for HA with embedded etcd

对于生产环境中的外部数据库,建议使用以下数据库MySQL (常用)/ PostgreSQL / etcd,并且硬件要求取决于 K3s 集群的大小以下是高可用性K3s服务器中节点的最低CPU和内存要求:

DEPLOYMENT SIZE NODES VCPUS RAM
Small Up to 10 2 4 GB
Medium Up to 100 4 8 GB
Large Up to 250 8 16 GB
X-Large Up to 500 16 32 GB
XX-Large 500+ 32 64 GB
1
2
3
4
5
6
7
wget -c https://github.com/k3s-io/k3s/releases/download/v1.24.1%2Bk3s1/k3s

cp k3s /usr/local/bin/k3s && chmod +x /usr/local/bin/k3s

k3s --version
k3s version v1.24.1+k3s1 (0581808f)
go version go1.18.1