k8s--etcd 租约

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: k8s--etcd 租约

介绍


授予租约可以为 etcd 集群里面的键授予租约。当键被附加到租约时,它的存活时间被绑定到租约的存活时间,而租约的存活时间相应的被 time-to-live (TTL)管理。在租约授予时每个租约的最小TTL值由应用指定。租约的实际 TTL 值是不低于最小 TTL,由 etcd 集群选择。一旦租约的 TTL 到期,租约就过期并且所有附带的键都将被删除


授予租约


应用客户端可以为 etcd 集群里面的键授予租约。当键被附加到租约时,它的存活时间被绑定到租约的存活时间,而租约的存活时间相应的被 TTL 管理。在授予租约时,每个租约的最小 TTL 值由应用客户端指定。

一旦租约的 TTL 到期,租约就会过期并且所有附带的键都将被删除

# 创建一个租约,时间为 100s
sh-5.0# etcdctl lease grant 100
lease 525b80fbbf3b906e granted with TTL(100s)

将 key 绑定到租约上

# 将创建的租约绑定到键 key1 上
sh-5.0# etcdctl put key1 "hello" --lease=525b80fbbf3b906e
OK
# 查询键,在租约有效期内,可以获取到键值,租约到期后键值对被删除
sh-5.0# etcdctl get key1
key1
hello
# 租约到期后键值对被删除
etcdctl get key1  #  没有任何输出


撤销租约


应用通过租约 ID 可以撤销租约。撤销租约将删除所有附带的 key

# 创建租约
sh-5.0# etcdctl lease grant 1000
lease 525b80fbbf3b98cb granted with TTL(1000s)
# 绑定 key 到租约上
sh-5.0# etcdctl put key2 "hello" --lease=525b80fbbf3b98cb
OK
# 查询 key
sh-5.0# etcdctl get key2
key2
hello
# 撤销租约
sh-5.0# etcdctl lease revoke 525b80fbbf3b98cb
lease 525b80fbbf3b98cb revoked
# 撤销后在查询,没有任何输出
sh-5.0# etcdctl get key2


刷新租约


应用程序可以通过刷新其 TTL 保持租约存活,确保其不会过期

# 创建租约
sh-5.0# etcdctl lease grant 20
lease 525b80fbbf3b9dc2 granted with TTL(20s)
sh-5.0# etcdctl put key3 "nihao" --lease=525b80fbbf3b9dc2
OK
# 刷新租约
sh-5.0# etcdctl lease keep-alive  525b80fbbf3b9dc2
lease 525b80fbbf3b9dc2 keepalived with TTL(20)
lease 525b80fbbf3b9dc2 keepalived with TTL(20)
lease 525b80fbbf3b9dc2 keepalived with TTL(20)
lease 525b80fbbf3b9dc2 keepalived with TTL(20)


查询租约


客户端可以查询租赁信息,检查续订或租赁的状态,是否存在或者是否已过期。应用客户端还可以查询特定租约绑定的 key

# 创建租约
sh-5.0# etcdctl lease grant 300
lease 525b80fbbf3ba39b granted with TTL(300s)
# 给 key 绑定租约
sh-5.0# etcdctl put key5 "hehe" --lease=525b80fbbf3ba39b
OK
# 给 key 绑定租约
sh-5.0# etcdctl put key6 "hihi" --lease=525b80fbbf3ba39b
OK
# 查询租约,租约一共 300s,还剩 281s
sh-5.0# etcdctl lease timetolive 525b80fbbf3ba39b
lease 525b80fbbf3ba39b granted with TTL(300s), remaining(281s)
sh-5.0#  etcdctl lease timetolive 525b80fbbf3ba39b --keys
# 查询租约和对应的 key,租约一共 300s,还剩 274s,绑定了 key5 和 key6
lease 525b80fbbf3ba39b granted with TTL(300s), remaining(274s), attached keys([key5 key6])

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
存储 JSON Kubernetes
查看k8s的etcd数据
查看k8s的etcd数据
1751 0
查看k8s的etcd数据
|
Kubernetes Docker 容器
【Docker】'TLS handshake timeout' 问题修复记录
'TLS handshake timeout' 问题修复记录
1474 0
【Docker】'TLS handshake timeout' 问题修复记录
|
网络协议 Shell 网络安全
etcd3.4集群安装并设置开机自启动
--permanent永久生效,没有此参数重启后失效,防火墙打开2379和2380端口,同时刷新防火墙 firewall-cmd --zone=public --add-port=2379/tcp --permanentfirewall-cmd --zone=public --add-port=2.
4583 0
|
3月前
|
存储 Kubernetes API
在K8S中,etcd 适应的场景?
在K8S中,etcd 适应的场景?
|
存储 Kubernetes 算法
【K8S系列】深入解析etcd
【K8S系列】深入解析etcd
304 0
|
6月前
|
存储 NoSQL 应用服务中间件
Etcd+Confd实现Nginx配置文件自动管理
Etcd+Confd实现Nginx配置文件自动管理
|
6月前
|
存储 Kubernetes Cloud Native
浅谈etcd服务注册与发现
浅谈etcd服务注册与发现
370 0
|
6月前
ETCD(二)配置文件说明
ETCD(二)配置文件说明
108 0
|
存储 算法 安全
服务注册与发现之ETCD
服务注册与发现之ETCD
|
存储 机器学习/深度学习 NoSQL
深入理解 Redis cluster GOSSIP 协议
深入理解 Redis cluster GOSSIP 协议
504 0