深入了解Kubernetes等组件之ETCD

开始前 ETCD 是 Kubernetes 中所有组件中最难的,因为 ETCD 是有状态的,而不是无状态的。 我在之前做 k3s runtime 设计的时候,了解了一些关于 ETCD 和 Raft 算法相关的概念,作为前奏知识,请分别前往 ETCD 以及 Raft算法 进行前奏学习。 这一篇来深入并且贯穿的讲解 ETCD 和 Raft。并且站在 Kubernetes 的角度来深入 剖析 ETCD。 ETCD 介绍 Etcd是CoreOS基于Raft开发的分布式key-value存储,可用于服务发现、共享配置以及一致性保障(如数据库选主、分布式锁等)。 包含的功能以及特性 前奏 都有学过,看下 Kubernetes 最关心的 存储: 主要功能 基本的key-value存储 监听机制 key的过期及续约机制,用于监控和服务发现 原子Compare And Swap和Compare And Delete,用于分布式锁和leader选举 使用场景 可以用于键值对存储,应用程序可以读取和写入 etcd 中的数据 etcd 比较多的应用场景是用于服务注册与发现 基于监听机制的分布式异步系统 etcd 是一个键值存储的组件,其他的应用都是基于其键值存储的功能展开。 采用kv型数据存储,一般情况下比关系型数据库快。 支持动态存储(内存)以及静态存储(磁盘)。 分布式存储,可集成为多节点集群。 存储方式,采用类似目录结构。(B+tree) 只有叶子节点才能真正存储数据,相当于文件。 叶子节点的父节点一定是目录,目录不能存储数据。 服务注册与发现:...

September 26, 2023 · 6 分钟 · 1264 字 · 熊鑫伟,我

从理论到实践的项目管理打通

项目管理从理论到实践 理论介绍 瀑布模型: 敏捷模型: Scrum框架: 传统和敏捷差异 传统项目管理方法通常按照线性流程进行,通过预先制定的计划、监督和控制来实现项目目标。敏捷项目管理方法则更加灵活,通过迭代和持续的改进来实现项目目标。敏捷方法强调团队合作、适应变化、快速交付价值。 项目管理十大知识领域 项目管理的十大知识领域包括: 项目范围管理:确定项目的目标和边界,并确保项目在进行过程中不会超出这些范围。 项目时间管理:确定项目的时间计划,并确保项目按时完成。 项目成本管理:确定项目的预算,并确保项目在预算范围内完成。 项目质量管理:确保项目产品、服务或结果符合质量标准。 项目资源管理:确定项目所需的人员、设备和材料,并确保这些资源得到有效利用。 项目沟通管理:确定项目的信息需求,并确保项目信息得到有效传递。 项目风险管理:识别、评估和应对项目中的风险。 项目采购管理:确定项目所需的外部产品、服务或结果,并确保这些外部要素得到有效管理。 项目合同管理:管理项目中的合同,包括签订合同、监督合同履行和结束合同。 项目结项管理: 记录项目成果,并对项目进行评估,以确定未来项目的改进点。 项目管理的五大过程组 项目管理的五大过程组是: 开始过程组:在项目启动之前进行的活动,包括项目的范围、目标、预算和资源的确定。 规划过程组:为项目的成功制定计划,包括项目时间、成本、质量、资源、沟通、风险、采购和合同管理计划。 执行过程组:将计划转化为具体行动,通过项目团队的协作来完成项目的任务。 监控和控制过程组:监督项目的进展,并对变化做出反应,以确保项目按照计划完成。 关闭过程组:完成项目并归档项目文件。 监控负责产品项目的整个生命周期。 启动:项目如何高效启动 项目启动 上面我们看到项目管理的五大过程:启动、规划、执行、监控和收尾,毫无疑问的是,如何高效启动项目的重要性不容置疑~ 先看一下贯穿始终的一个表: 我们针对启动过程中的两个关键过程: 制定项目章程 识别干系人 应用 ⚠️ 项目启动阶段应该要做的事情包括: 确定项目目标:明确项目的目的、范围和成果,确保项目与组织的战略目标一致。 组建项目团队:确定项目团队的成员,并建立合适的团队沟通和协作结构。 制定项目章程:明确项目的责任和权限,并制定项目章程,确保项目运作有序。 确定项目预算:根据项目的范围和目标制定项目预算,并确定项目的资金来源。 确定项目时间表:根据项目的范围和目标制定项目时间表,并确定项目的里程碑。 评估风险: 评估项目中可能存在的风险,并制定风险应对策略。 获取资源: 确定项目所需的人员、设备和材料,并获取这些资源。 审批启动文件: 审批并签署项目启动文件,确保项目有了正式的许可开始进行....

May 7, 2023 · 3 分钟 · 624 字 · Xinwei Xiong, Me