K3S架构


server节点被定义为运行k3s server命令的主机(裸机或虚拟机)。worker节点被定义为运行k3s agent命令的主机。

1. 具有嵌入式数据库的单server架构

下图展示了一个单server集群示例,该集群具有带嵌入式SQLite数据库的单节点K3s server。

在此架构中,每个worker节点都注册到同一个server节点,K3s用户可以通过在server节点上调用K3s API来操作Kubernetes资源。

架构

2. 具有外部数据库的高可用K3s server架构

单个server集群已经可以满足各种使用需求,但是对于重要的环境,需要k3s集群的长时间正常运行,您需要以HA配置运行K3s。

HA K3s集群包括:

  • 两个或更多server节点
  • 一个外部数据存储

架构

2.1. 固定的worker节点注册地址

在高可用架构中,每个worker节点必须使用固定的注册地址向Kubernetes API进行注册,如下图所示。注册后,worker节点与任意一个server节点建立连接。

k3s HA

2.2 worker节点的注册方式

worker节点通过k3s agent启动时发起的Websocket连接进行注册.

worker节点将使用节点集群密钥以及存储在/etc/rancher/node/password的节点随机密码向server注册。server将在单个节点的/var/lib/rancher/k3s/server/cred/node-passwd路径存储密码,后续任何操作都必须使用相同的密码。如果删除了worker节点目录/etc/rancher/node,则应该为该worker节点重新创建密码文件,或者从服务器中删除该节点。

通过使用该--with-node-id标志启动K3s server或agent,可以将唯一的节点ID添加到hostname