Etcd权限认证管理

1 查看是否开启权限认证 ctl auth status

2 开启权限认证 ctl auth enable。开启后每一条命令都要加上用户 --user=root:root(root默认最高权限)

3 创建其他用户 ctl user add user1 --user=用户名:密码

4 创建角色 ctl role add testR --user=

5 为角色添加权限 ctl role grant-permission testR read key --user=root:root 为testR角色添加了对key资源读的权限

6为指定用户授予权限的功能 ctl user grant-role bowen testR --user=root:root

7 使用用户具有的权限操作读取资源key 成功 ctl get key --user=bowen:123

8 使用用户的权限 操作写入资源key失败(无权限)ctl put key "testR角色授予bowen用户为key键只读操作" --user=bowen:123

9 使用root持有的读写角色tset权限操作资源key成功 ctl put key "test角色授予root用户为key键只读操作" --user=root:root root具有读写权限同时即便授予的权限不上指定的资源key,ront的用户同样可以操作,其他用户不具有。

etcd请求流程(关注点预写日志,读从节点数据一致性保证(commitId号比对)多版本控制mvcc

以及实现原理treeindex,数据持久实现borldb的底层结构 btree+ 另外加有buff 命中不查询数据库

etcd在k8s中的运用

etcd同步机制

grpc 负责将请求转发给raft模块,raft负责 选举,数据同步预写日志操作,当需要写请求时主节点会提案,将要写入的数据写入预写日志中,并发送给从节点写入同步的日志,当多半节点完成日志的写入,主节点会提交提案生成commitId,主节点如何通过日志来保持各个节点的数据一致性,主要是在预写日志阶段通过nextInde索引发给从节点同步日志,通过matchindex来跟踪从节点的日志写入情况,当大多数停留在matchindex索引的同步日志点,主节点就会把数据提交到持久层,持久层通过mvcc版本控制实现数据的一致性存储,通过treeindex的btree+存储key和对应的版本号,通过boltdb将key-version的形式为key存储在btree+数据库中,查找时先查找key的索引版本树,得到历史版本最新版本,通过key-version查找buffer缓冲,缓冲没有再查找boltdb的b+树找到值并换回,再raft模块中如果主节点挂了,在其他从节点中选举,选举规则任期大的有投票权优先,相同任期中根据预写的日志索引大小优先,从同步多的预写日志优先,停机开机之后会继续同步预写日志不丢失数据。

etcd在k8s工作的流程 负责存储集群运行的状态信息,如资源类型pod、configMap、密钥、

​​​

相关推荐
weixin_4045512424 分钟前
自动化数据库理解:用 AI 与 LLM 自动推断表的用途与关系
数据库·人工智能·自动化
java1234_小锋26 分钟前
【技术专题】Mysql8 数据库 - Mysql8 简介 & 安装以及配置
数据库·mysql
C++ 老炮儿的技术栈28 分钟前
有符号变量与无符号变量的区别
服务器·开发语言·前端·数据结构·c++·算法·c
oradh30 分钟前
Oracle固定执行计划的方法----SQL Profie(三)
数据库·sql·oracle
测试学习test1 小时前
SPI读取W25Q64硬件驱动(HAL库)
数据库·stm32·嵌入式硬件·算法
程序猿老A1 小时前
阿里云linux服务器安装mysql并实现远程访问
linux·服务器·阿里云
做运维的阿瑞2 小时前
mysql数据库分组查询:GROUP BY 与 HAVING 的执行逻辑
数据库·sql·mysql
小小、码农2 小时前
〖Linux进程间通信〗IPC全家桶:匿名管道、FIFO、共享内存、消息队列与信号量一篇打通
linux·运维·服务器
LaughingZhu2 小时前
Product Hunt 每日热榜 | 2026-10-01
数据库·人工智能·深度学习·神经网络·搜索引擎
阳光九叶草LXGZXJ2 小时前
达梦数据库-学习-67-SSL加密认证
linux·运维·数据库·sql·学习·ssl