为什么要做Kubernetes开发

最初的野望 : 为什么要”Kubernetes From Scratch (KFS)”

备注

这是我最初写下的文字,记录我当时的想法。不过我现在改变了目标

以下这段我仅作为回顾

我在雷阵雨之后的路上行走的时候,天空中云团浮动,时时有半明半暗的的阳光洒下。

我突然想到最近几天在部署的 Kubernetes集群引导(高可用) ,依然有很多步骤只是使用诸如 kubeadm 按照手册完成,无法明确底层实现的原理(例如,存储到 etcd - 分布式kv存储 的数据结构,服务相互的接口调用和依赖…)。

就像你安装 Ubuntu Linux 或者 Fedora ,按照安装引导一步步Next当然没有错,但是你有没有思考过每个步骤底下的调用、数据,这些原理不明晰,那么就如 禅与摩托车维修艺术 中所说的 “无法理解机械运作原理而对摩托样的现代设备产生拒绝和厌恶” 。

联想到 LFS(Linux from scratch) ,从源代码编译安装的Linux发行版,每个软件包都是从源代码开始编译配置和安装,从而对Linux软硬件的透彻理解。我也想到,对Kubernetes这样现代容器调度系统的完整构建:

  • 尽可能使用低级工具来完成步骤,不追求方便,而是透析Kubernetes庞大复杂的组建底层所使用的技术。例如,密钥认证,会使用 TLS(Transport Layer Security) (openssl) 来构建,而不是精心包装的上层工具 cfssl

  • 不使用快捷工具 kubeadm ,而是使用命令行完成 容器运行时(Container Runtimes) 配置、镜像下载、镜像运行,手工修订 etcd - 分布式kv存储 数据,完成bootlaunch

  • 解析原理,解读代码: 分析设计结构、代码逻辑,进而进行定制修改

  • 至少对核心组件进行构建和分析(K8S生态太复杂,无法穷尽)

  • 对性能进行优化(内核、网络、存储),从底层向上优化Kubernetes

  • (可选)从 LFS(Linux from scratch) 开始构建轻量级运行 Kubernetes Atlas 的整个虚拟化云计算环境

现在的野望 : 从开发中学习Kubernetes

回过头来看我从阿里云转岗到蚂蚁金服的近五年时间,都在围绕Kubernetes工作。虽然也同步不断的学习和实践,有了运维相关的经验,但是渐渐觉得,如果不能在开发上获得突破,那么天花板始终在那里,很难再进一步了。

当然,也不是说Kubernetes运维不好,而是这个系统实在台庞大复杂了,层出不穷的组件和定制,你再怎么熟悉系统也解决不了底层的问题。唯有从源代码开始挖掘,才能一法通万法通。

所以,2023年最后一个月,也借着我的下一阶段开启,我决心做一个 “牧码人”