k4t系统架构 & 部署最佳实践
《kaiiit船长》 容器自动管理软件 (k4t,国产k8s)
k4t系统架构 & 部署最佳实践
文档修订时间: 2021-11-20
关键词 : k4t kaiiit 船长 captain powershell 最佳实践 容器 docker ps1倚天剑 国产k8s ps1绣花针
k4t系统架构
问:完美版的k4t项目,由哪几部分组件构成?
答:
1 master端。
2 node端。
3 动态负载均衡api网关。(外部 非必要组件)
4 动态dns。(外部)
5 监控端。
k4t部署相关问题之【master端】
概述:
k4t master相当于经理的手。干的是分配任务的活。采用懒惰的【触发执行】机制。
下列情况下,k4t master可以关机,不影响node运行。
-
任务分配完毕,或调整完毕。
-
没有启用,通过【k4t监控端】,进行【node自动伸缩】功能。
-
没有执行,驱逐node任务(drain)。
-
没有执行,删除node任务。
问:k4t master需要几台?
答:最多1台。或执行任务完毕后就关机的,半台master。
问:1台k4t master的话,如何保证元数据冗余?
答:依靠k4t node。k4t master软件内有,复制元数据到node的功能。只需要指定一个node ip地址即可。
可以灵活设定:可以设置1---n台node,每node可以设置1---n分钟,不同的备份时间。这样就可以有多个不同时段的,元数据历史副本。
实验环境-最简实践:不指定node,不备份元数据。
生产级别-最佳实践:设定1台node,设置每1---2分钟备份元数据。
k4t部署相关问题之【监控端】
概述:
【k4t 监控端】相当于经理(k4t master)的眼睛。
【k4t 监控端】由若干powershell脚本组成。
任务是检查k4t master内,k4t node内,磁盘空间,内存剩余,cpu剩余,和node是否存活等。
问:【k4t 监控端】需要几台?
答:1台。
【k4t 监控端】可以和【k4t master】分别安装在,2台虚拟机内。
建议把【k4t 监控端】和【k4t master】分离。把【k4t 监控端】装在你公司旧有的win,linux的zabbix监控机中。
【k4t 监控端】可以和【k4t master】安装在同一台虚拟机中。这样【k4t master】就丢失了【干完活关机】的功能。
实验环境-最简实践:【k4t 监控端】可以和【k4t master】安装在一台虚拟机中。
生产级别-最佳实践:【k4t 监控端】可以和【k4t master】安装在一台虚拟机中。。或分离。
k4t部署相关问题之【k4t网关】
概述:
【k4t网关】给k4t引入容器间的,东西向流量。负载平衡,限流等。
【k4t网关】可以支持任意第三方网关。本质上,2台虚拟机内的网关,可以不同厂家,不同版本。
问:【k4t网关】需要几台?
答:0---2台。
问:什么情况下,需要0台【k4t网关】?
答:下列极端情况下。
-
整个集群内,都采用ipv6地址。
-
整个集群内,都采外网ipv4地址。如 202.x.x.x
-
使用云dnat网关,提供引入流量服务。
实验环境-最简实践:1台虚拟机中,安装【k4t 网关】,和【k4t dns】。
生产级别-最佳实践:2台虚拟机中,安装【k4t 网关】,和【k4t dns】。用于冗余高可用。采用相同厂家的网关软件,软件版本相同。
k4t部署相关问题之【k4t-dns】
概述:
【k4t-dns】帮k4t实现【服务发现】功能。
【k4t-dns】可以支持任意第三方dns。支持win server的dns server。
本质上,2台虚拟机内的dns,支持不同厂家,不同版本。
问:【k4t-dns】需要几台?
答:1---2台。至少有1台。
实验环境-最简实践:1台虚拟机中,安装【k4t 网关】,和【k4t dns】。
生产级别-最佳实践:2台虚拟机中,安装【k4t 网关】,和【k4t dns】。用于冗余高可用。采用相同厂家的网关软件,软件版本相同。
k4t部署相关问题之【双网关】,或【双dns】,之间数据同步问题。
概述:
采用【客户端分布式】技术。类似于etcd。原理就是分布式中的,基于redo-log,2步提交。
这样做的好处是,支持不同厂家,不同版本。不需要第三方网关软件带有双机高可用功能。不需要第三方dns软件带有双机高可用功能。
k4t部署相关问题之【结论】
实验环境-最简实践:总共2台虚拟机。
-
1台虚拟机中,安装【k4t master】,和【k4t 监控端】。
-
1台虚拟机中,安装【k4t网关】,和【k4t-dns】。
生产级别-最佳实践:总共3台虚拟机。
-
在linux + zabbix中,安装powershell和【k4t 监控端】。
-
1台虚拟机中,安装alpine-linux,挂载数据盘并安装【k4t master】。
使用时,用alpine-linux的iso启动。执行完【k4t master】任务,就关机。
需要再次执行【k4t master】任务时,由【k4t 监控端】,执行开机命令开机。
alpine-linux开机时间10---15秒。这样节省云机子费用。 -
2台虚拟机中,安装【k4t网关】,和【k4t-dns】。起冗余高可用功能。
生产级别-最佳实践,的最终结论:
2台虚拟机装(k4t 网关-dns),加1台虚拟机装k4t master。总共3台。即可实现生产级别的高可用部署。
k4t即:《kaiiit生产级别的容器编排系统》
https://gitee.com/chuanjiao10/k4t
项目目前状态:
未发布,诚征vc投资中。
筹到钱后,会在【k4t官方群:722528388】内,诚征内测用户。
谢谢观看。