[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
官方地址: 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 |
对于生产环境中的外部数据库,建议使用以下数据库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 |
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