在K8S中,etcd数据库中数据如何更改?

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 在K8S中,etcd数据库中数据如何更改?

在Kubernetes(K8s)中,etcd中的数据更改主要发生在以下几个场景中:

  1. 创建、更新和删除Kubernetes资源对象
    当用户在Kubernetes中创建(POST)、更新(PUT)或删除(DELETE)一个资源对象(如Pod、Service、Deployment等)时,Kubernetes API服务器会将这些更改转换为对etcd的相应操作。API服务器会将更改后的资源对象数据写入etcd,或者从etcd中删除相应的数据。
  2. Kubernetes控制器的操作
    Kubernetes中的控制器(如ReplicaSet控制器、Deployment控制器等)会监视集群的状态,并根据需要创建、更新或删除资源对象。这些操作同样会导致对etcd中数据的更改。
  3. etcd的自身维护操作
    尽管etcd主要是被Kubernetes用于存储资源对象数据,但etcd自身也有一些维护操作可能会更改数据,例如数据压缩、快照、备份和恢复等。

在etcd中更改数据的过程大致如下:

  1. Raft一致性协议
    所有的数据更改请求都会首先发送给etcd集群中的一个节点(称为leader节点)。该节点会使用Raft一致性协议来确保更改在所有节点上达成一致。Raft协议通过选举leader、提交日志和复制状态机等机制来确保数据的一致性。
  2. 写入请求处理:当接收到一个写请求(如创建一个Pod)时,leader节点会:
  • 将写请求追加到自己的日志中。
  • 使用Raft协议将该请求复制到集群中的其他节点。
  • 等待大多数节点确认已经提交该请求。
  • 一旦确认提交,leader节点会将更改应用到本地状态机,并通知其他节点应用更改。
  1. 数据复制和同步
    非leader节点会接收并复制leader节点的日志条目,并在本地应用这些更改,以保持与leader节点的数据同步。这个过程确保了即使leader节点发生故障,其他节点也能继续提供服务,并保证数据的一致性。
  2. 数据持久化
    一旦数据更改被应用到状态机,etcd会将更改持久化到磁盘上,以确保即使发生故障也能恢复数据。
  3. 响应客户端
    一旦数据更改成功,etcd会向发起写请求的客户端返回成功响应。

综上所述,需要注意的是,etcd的设计保证了即使在网络分区或节点故障的情况下,也能保持数据的一致性。这是通过Raft协议中的选举、日志复制和提交等机制实现的。此外,etcd还提供了事务功能,允许用户将多个操作组合成一个原子操作来执行,这进一步增强了数据的一致性。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
1月前
|
关系型数据库 MySQL 数据库
ORM对mysql数据库中数据进行操作报错解决
ORM对mysql数据库中数据进行操作报错解决
77 2
|
1天前
|
存储 Kubernetes Cloud Native
Kubernetes上的数据库
【10月更文挑战第16天】数据库在Kubernetes上的应用日益普及,超过72%的组织已在Kubernetes上运行数据库。这得益于Kubernetes的声明式特性和标准化部署,能够加速开发、降低成本、减少复杂性,并提高系统的弹性和正常运行时间。Kubernetes为数据管理提供了自动化操作、环境一致性、数据可移植性和自助服务功能,特别适合现代云原生应用。然而,引入数据库到Kubernetes时需考虑团队技能、自动化支持及存储配置等问题。
5 1
|
5天前
|
SQL 存储 关系型数据库
数据储存数据库管理系统(DBMS)
【10月更文挑战第11天】
12 3
|
1月前
|
JavaScript Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
本文介绍了一个基于Spring Boot和Vue.js实现的在线考试系统。随着在线教育的发展,在线考试系统的重要性日益凸显。该系统不仅能提高教学效率,减轻教师负担,还为学生提供了灵活便捷的考试方式。技术栈包括Spring Boot、Vue.js、Element-UI等,支持多种角色登录,具备考试管理、题库管理、成绩查询等功能。系统采用前后端分离架构,具备高性能和扩展性,未来可进一步优化并引入AI技术提升智能化水平。
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
|
10天前
|
SQL 存储 关系型数据库
添加数据到数据库的SQL语句详解与实践技巧
在数据库管理中,添加数据是一个基本操作,它涉及到向表中插入新的记录
|
1月前
|
Java 关系型数据库 MySQL
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术的房屋租赁系统,旨在通过自动化和信息化手段提升房屋管理效率,优化租户体验。系统采用JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Layui和Spring Boot 2.0等技术栈,实现了高效的房源管理和便捷的租户服务。通过该系统,房东可以轻松管理房源,租户可以快速找到合适的住所,双方都能享受数字化带来的便利。未来,系统将持续优化升级,提供更多完善的服务。
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
|
14天前
|
SQL 监控 数据处理
SQL数据库数据修改操作详解
数据库是现代信息系统的重要组成部分,其中SQL(StructuredQueryLanguage)是管理和处理数据库的重要工具之一。在日常的业务运营过程中,数据的准确性和及时性对企业来说至关重要,这就需要掌握如何在数据库中正确地进行数据修改操作。本文将详细介绍在SQL数据库中如何修改数据,帮助读者更好
73 4
|
15天前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
阿里云瑶池在2024云栖大会上重磅发布由Data+AI驱动的多模数据管理平台DMS:OneMeta+OneOps,通过统一、开放、多模的元数据服务实现跨环境、跨引擎、跨实例的统一治理,可支持高达40+种数据源,实现自建、他云数据源的无缝对接,助力业务决策效率提升10倍。
|
16天前
|
关系型数据库 MySQL 数据库
使用Docker部署的MySQL数据库,数据表里的中文读取之后变成问号,如何处理?
【10月更文挑战第1天】使用Docker部署的MySQL数据库,数据表里的中文读取之后变成问号,如何处理?
41 3
|
15天前
|
测试技术 API 数据库
云数据库之添加数据
云数据库之添加数据
17 1