K3S架构设计

Posted 潍鲸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了K3S架构设计相关的知识,希望对你有一定的参考价值。

   什么是K3S   

k3s是完全兼容的Kubernetes发行版,主要有以下区别:
  • 移除过时的功能、Alpha功能、非默认功能,这些功能在大多数Kubernetes集群中已不可用。

  • 删除内置插件(比如云供应商插件和存储插件),可用外部插件程序替换。

  • 添加SQLite3作为默认的数据存储。etcd3仍然可用,但并非默认项。

  • 包含在一个简单的启动程序当中,可以处理复杂的TLS和其他选项。

  • 几乎没有操作系统依赖性(仅需要健全的内核和cgroup挂载)。k3s软件包所需的依赖:

    • containerd

    • Flannel

    • CoreDNS

    • CNI

    • 主机系统服务 (iptables, socat, etc)

   K3S架构   

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

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

在下面的一个单server集群示例,该集群具有带嵌入式SQLite数据库的单节点K3s server。
在此架构中,每个 worker节点都注册到同一个 server节点,K3s用户可以通过在 server节点上调用K3s API来操作Kubernetes资源。


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

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

HA K3s集群包括:

  • 两个或更多server节点

  • 一个外部数据存储


固定的worker节点注册地址


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


以上是关于K3S架构设计的主要内容,如果未能解决你的问题,请参考以下文章

云原生边缘设备解决方案Akri on k3s初体验

云原生边缘设备解决方案Akri on k3s初体验

云原生边缘设备解决方案Akri on k3s初体验

硬核干货| 利用K3s低成本在流水线中添加测试

硬核干货| 利用K3s低成本在流水线中添加测试

硬核干货| 利用K3s低成本在流水线中添加测试