Kubernetes学习笔记-StatefulSet:部署有状态的多副本应用(3)20220626

在StatefulSet中发现伙伴节点
介绍SRV

SRV记录用来指向提供指定服务的服务器的主机名和端口号。kubernetes通过一个headless service创建SRV记录指向pod的主机名
通过DNS实现伙伴彼此发现
原始的数据存储还不是集群级别的,每个数据存储节点都是完全独立于其它的节点的,他们彼此之间没有通信
客户端通过kubia-pubilc Service连接你的数据存储服务,并且会达到集群里随机的一个节点。集群可以存储多条数据项,但是客户端当前却不能看到所有的数据项。因为服务把请求随机的送达一个pod,所以若客户端想获取所有pod的数据,必须发送很多次请求,一直到他的请求发送到所有的pod为止。
可以通过让节点返回所有集群节点数据的方式来改进这个行为。为了达到这个目的,节点需要能找到它所有的伙伴节点,可以使用Statefulset和SRV记录来实现这个功能
更新StatefulSet
$kubectl edit statefulset kubia
StatefulSet如何处理节点失效
之前讲到kubernetes必须完全保质期:一个有状态的pod在创建它的代替之前已经不再运行。因为一个StatefulSet要保证不会有两个拥有相同标记和存储的pod同时运行,当一个节点似乎失效时,StatefulSet要明确知道一个pod不再运行之前,它不能或不应该创建一个替换的pod
手动删除pod
1)正常删除$kubectl delete po kubia-0
2)强制删除$kubectl delete po kubia-0
- -force - -grace-period 0
- 需要同时使用- -force 和- -grace-period 0两个选项
- 警告:除非你确认节点不再运行或不会再可以访问(永远不会再可以访问)否则不要强制删除有状态的pod


小结
给副本pod配置单独的存储
给一个pod提供稳定的标识
创建一个StatefulSet,并且配置一个相关的headless控制服务
扩缩容、更新statefulset
通过dns发现statefulset的其他成员
通过其他成员的主机名与之建立连接
强制删除有状态的pod

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值