亲历者说: Kubernetes API 与 Operator, 不为人知的开发者战争(14)
你可能已经知道 , Kubernetes 里本身就内置了一个叫做 StatefulSet 的功能 , 是专门用来管理有状态应用的 。 而 StatefulSet 的核心原理 , 其实是对分布式应用的两种状态进行了保持:
-
分布式应用的拓扑状态 , 或者说 , 节点之间的启动顺序;
-
分布式应用的存储状态 , 或者说 , 每个节点依赖的持久化数据 。
可是 , 为了能够实现上述两种状态的保持机制 , StatefulSet 的设计就给应用开发者带来了额外的束缚 。
比如 , etcd 集群各节点之间的拓扑关系 , 并不依赖于节点名字或者角色(比如 Master 或者 Slave)来确定 , 而是记录在每个 etcd 节点的启动参数当中 。 这使得 StatefulSet 通过“为节点分配有序的 DNS 名字”的拓扑保持方式 , 实际上没有了用武之地 , 反而还得要求开发者在节点的启动命令里添加大量的逻辑来生成正确的启动命令 , 非常不优雅 。 类似的 , 对于存储状态来说 , etcd 集群对数据的备份和恢复方法 , 也跟 StatefulSet 依赖的的远程持久化数据卷方案并没有太大关系 。
推荐阅读
- 星巴克API密钥被曝泄露 曝光者获巨额奖金
- python机器学习API介绍23:高级篇——支持向量机
- 从零开始入门 K8s | Kubernetes 调度和资源管理
- python机器学习API介绍21:层次聚类算法介绍
- python机器学习API介绍20: 密度聚类及其用法
- python机器学习API介绍18: LLE模型用于数据降维
- DataPipeline陈诚:2020年,企业将从关注商业智能转向数据应用
- 图解Kubernetes应用部署
- 英特尔oneAPI:定义未来十年应用程序开发的统一、简化的编程模型
- 清华教师转行美妆电商,年卖36亿!曾2200万拍下Papi酱广告