裸金属服务器部署K8s的实战指南 高效搭建生产级K8s集群

阿木 发布于 1 天前 3 次阅读


你知道吗?

将K8s搭建于裸金属之上,这情形仿若给跑车去除了那些多余的电子稳定系统。

看上去十分狂躁,然而明白的人清楚,那种“咯噔”一声响动的机械感觉,才算真正的掌控感呢。

为什么还有人死磕虚拟机?

大多数人习惯了云上的便利。

点几下鼠标,集群就有了。

但是,那些真正去运行数据库、进行AI训练的家伙们,瞅着监控面板里那介于5%至15%之间的性能损耗情况,内心犹如在滴着鲜血。

那是所谓的“hypervisor税”。

交税?

凭什么。

裸金属的“快”是种什么体验?

不是那种轻飘飘的快。

是容器运行时直接怼在CPU上,是内存访问没有中间商赚差价。

尤其是从事高频交易的那群人,还有训练大模型的那帮人,要是延迟稍微高那么一点儿,钱就会没了,不然电费就会猛增了。

但说实话,这玩意贼难搞

别被那些性能优势冲昏头。

居于云之中,你放开喉咙喊出,“给我一个负载均衡器”,如此这般,云仿若爸爸一般,便会为你将其变幻呈现出来。

于裸金属之上,无论你怎样扯着嗓子呼喊,它回馈给你的仅仅是一个冷若冰霜的,名为的回应。

那一刻,你真的会想骂娘。

网络,全是坑

CNI选Calico还是Cilium?

这问题能让人吵通宵 。

Calico安稳,行事稳重,运用BGP与你机房当中那些年代久远的路由器交谈。

Cilium厉害得很,eBPF技术运用得极为出色,速度快到超乎想象,然而内核版本要是不够新那就直接不行了。

还有那个MetalLB,简直是救世主一样的存在 。

没有它,你的LoadBalancer永远是个没户口的黑户。

存储,更是愁白头

虚拟机有虚拟磁盘,方便得很。

裸金属呢?

或者去操作本地盘,其性能会达到极致爆表,然而数据的存亡就只能看运气了 ;要么就使用Ceph,它作为分布式存储确实有优势,可要是没有专业团队来打理,很快就能让你知道厉害。

据传,存在一个名为Rook的方案,它可于K8s当中运行Ceph,光是想一想,便觉脑袋发懵。

有人在偷偷搞事情

你以为只有互联网公司在玩这个?

错了。

强国、能源、国防、政府,这些用词听起来土里土气,然而它们对于“数据主权”以及“断网运行”的需要,相比别类而言可是有过之而无不及。

海上风电场,网络时有时无,怎么更新应用?

有些人使用名为Zarf的工具,用其将镜像切割成碎片,接着把这些碎片塞到ConfigMap里面,最后在没有网络的区域硬是让集群运行起来了。

狠人。

自动化?

别想了,靠手工你会死

几十台服务器,你一台台去装系统配内核?

那你离猝死不远了。

必须上自动化。

究竟是怎样的Tinkerbell,到底是何种MAAS,到底是哪样的Metal3。

得让机器去生机器,让K8s去生K8s。

此即为那被称作“Kubernetes原生基础设施”的事物,听起来仿若绕口令,然而这便是未来。

使用Kubespray与Ansible相配合,或者更为奇特地运用Chef去调控Ansible,总而言之,要将所有的内容都编写成代码。

运维不再是运维

以前搞虚拟化,运维是管家。

现在搞裸金属K8s,运维得是电工+水管工+程序员。

你要明白交换机的BGP配置,要会调整内核的sysctl参数,并且要能够编写Go代码进行Operator的bug修复。

累吗?

累。

可是当你瞅见业务延迟被切成了一半,当你身处于机房边喝着咖啡边能够凭借声明式API去重启几百台服务器之际。

那种掌控感,会上瘾。

别跟风

假若是你仅仅是为了去运行一个博客,再者公司仅仅只有十几台机器,那么就规规矩矩地去使用虚拟机吧。

但是,要是你所需求的是那一种,可以最大限度发挥硬件每一分潜在能力的愉悦之感,要是你实在难以忍受如今云厂商那让人愈发看不懂的费用账单了。

来试试在裸金属上跑K8s。

要做好迎接Pending的准备,需做好啃文档的准备,得做好深夜与那个死活起不来的网络插件死磕的准备。

你就会爱上这种把命运攥在自己手里的感觉 。

最后补一刀:什么云原生,最后都得落地。

落哪儿?

还不是落在一堆冰冷的、嗡嗡作响的铁疙瘩上。

与其隔着虚拟化那层纱,不如直接点。