K3S 是 Rancher 为物联网(IoT)和边缘计算环境开发的轻量级 Kubernetes 发行版本。相比原生的 Kubernetes,其移除了很多非必要的组件,例如云控制管理器(CCM)、内置的(In-Tree)的存储插件等,以及为ARM架构的基础设施做了优化。

K3s 的轻量级同时也体现在其打包成一个二进制可执行文件进行分发,状态存储除了支持 etcd 外,还支持 Sqlite3、MySQl和Postgres。其跟多特性可参考官方文档。

K3s 支持单节集群部署(可用于开发测试环境),也支持高可用的多节点集群。同时还可以通过 k3d 项目快速在本地开发环境使用Docker容器部署 k3s 集群作为开发环境。

这里我将演示通过虚拟机部署一个高可用的多节点集群(3个Servers节点 + 3个Agent节点)。

k3S架构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3I2DzwSO-1658505658738)(https://k3s.io/img/how-it-works-k3s-revised.svg)]

上图是来自k3s官网的架构图,其架构与Kubernetes的架构是相似的,k3s的server节点也就是控制面节点,agent节点是工作负载节点。k3s默认使用 containerd 作为容器运行时。

更信息的部署架构可参考官方文档。

准备虚拟机节点

这里我们将部署 3 + 3 的集群,需要6台虚拟机,基本配置如下

主机名

IP

vCPU

内存

homek3s-server1

192.168.0.150

1

2 GB

homek3s-server2

192.168.0.151

1

2 GB

homek3s-server3

192.168.0.152

1

2 GB

homek3s-agent1

192.168.0.154

2

4 GB

homek3s-agent2

192.168.0.155

2

4 GB

homek3s-agent3

192.168.0.156

2

4 GB

部署的最小需求,可参考官方文档。

K3s 支持大部分主流的Linux操作系统,这里我使用的是 openSUSE Leap Micro 15.2,其是一个基于openSUSE,为容器负载而设计的操作系统。

为了部署简单,这里我们禁用了系统的防火墙,如果开启防火墙,需要为Server节点开放如下端口

6443/TCP - Kubernetes API 服务

8472/UDP - Flannel VXLAN模式需要

51820/UDP - Flannel Wireguard后端需要

10250/TCP - Kubelet metrics需要

2379-2380/TCP - 基于内嵌etcd高可用部署模式需要

启动Server节点

首先登陆到第一个Server节点 homek3s-server1,然后下载最新版本(v1.24.3+k3s1)的 k3s 二进制文件

# curl -sfL https://github.com/k3s-io/k3s/releases/download/v1.24.3%2Bk3s1/k3s -o /usr/local/bin/k3s

# chmod +x k3s

# k3s --version

k3s version v1.24.3+k3s1 (990ba0e8)

go version go1.18.1

k3s 支持一下几个子命令

k3s server - 用于运行管理服务节点

k3s agent - 用于运行agent工作节点

k3s kubectl - 运行 kubectl 命令

k3s crictl - 运行 crictl 容器管理命令

其他的命令帮助,请通过 k3s --help 查看。

这里我们将要创建一个使用内置etcd数据库的高可用集群,执行如下命令

# k3s server --cluster-init --advertise-address=192.168.0.150 --tls-san=homek3s.mengz.lan --write-kubeconfig-mode=644

参数 --cluster-init 是使用内置的etcd初始户一个新的集群; 参数 --advertise-address 是指定API服务器的监听IP地址,如果不指定,默认为节点的IP地址; 参数 --tls-san 是指定额外的域名或者IP地址作为TLS证书的SAN,使得我们从客户端可通过域名访问而API服务器。

运行成功后,在 homek3s-server1 打开另一个终端执行

# k3s kubectl get no

NAME STATUS ROLES

参考链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: