[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 | 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 |
wget -c https://github.com/k3s-io/k3s/releases/download/v1.24.1+k3s1/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