什么是Pet?Pet是一个有状态应用程序,本质上它是一个具有确定性名称以及唯一身份的Pod,身份内容包括:

  • DNS中可以识别的固定hostname
  • 顺序化索引(Pet名称组成:PetSetName-Ordinal)
  • 链接到索引与hostname的固定存储

顾名思义,PetSet就是Pet集合,它具有特定数量的Pet,其目的就在于解耦集群化有状态应用程序,例如MySQL、PostgreSQL等数据库应用程序,或者Zookeeper、Etcd以及Elasticsearch等集群化应用程序。一般集群化应用程序都是部署在固定的结点上,具有永久性存储以及静态的IP地址,并且在部署过程中需要在结点之间建立一定的关联联系。而Pet Set会给每个应用程序实例分配一个身份,这样应用程序实例就不必固定在物理基础服务上,实例之间依靠身份建立联系。

Pet Sets是一种新功能,在Kubernetes中,其将容器部署划分成多个Pet,并保证每个Pet都有确定性的唯一身份,身份内容包括DNS域名、一致性存储以及顺序化pod索引。在此之前,使用Deployments和Replication Controllers进行部署,只会给应用程序分配一个非耦合的弱身份。弱身份比较适合微服务等应用程序,这类应用程序不关心pod的名称,其重点在于服务发现,并且这些应用程序是无状态的。然而有很多软件应用程序是需要强身份,例如多种不同类型的分布式有状态系统。Cassandra就是一个比较好的例子,它需要一致的网络标识以及固定的存储。

Pet Sets提供了如下功能:

  • 在DNS中具有固定的hostname,同一个Pet Set中的Pet hostname以Pet Set名称为基础,加上从0开始的顺序化数字,例如cassandra-0。
  • 顺序化索引,例如0、1、2、3。
  • 链接到Pet序列以及hostname的固定存储。
  • 通过DNS发现同伴,在Pet创建之前,同伴的名称是已知的。
  • 顺序启动与销毁Pet,通过Pet编号,下一个需要被创建的Pet是已知的,并且当Pet Set规模减小时,哪些Pet需要被销毁也是已知的。当缩减集群规模时,对于从一个Pet中抽取数据这类管理任务来说,该功能是非常有用的。

如果你的应用程序具有如上需求,可以考虑使用Pet Set进行部署。我们来举个形象的例子,假设你有一个宠物集合(Pet Set)由宠物狗(Pet dog)组成。你有白色、棕色或者黑色的宠物狗,然后棕色的宠物狗突然逃跑了,当你用另外一直棕色宠物狗来替换原来的那只,没有人会发现;如果你用白色的宠物狗进行替换,就会有人察觉到。Pet Set可以让你Pet中运行的应用程序持有一个唯一的身份。

使用Pet Set的应用程序示例:

  • 集群化软件,例如Cassandra、Zookeeper、etcd或者需要固有关系的弹性化软件。
  • 数据库软件,例如MySQL或者PostgreSQL,这种需要单一实例在任何时候都挂上一个持久化volume。

只有当你的应用程序需要如上所述的一些属性时才建议使用Pet Set,因为管理无状态的pod要更加容易。

kubernetes-PetSet的更多相关文章

  1. Kubernetes有状态应用管理——PetSet

    目录贴:Kubernetes学习系列 1.介绍 在Kubernetes中,大多数的Pod管理都是基于无状态.一次性的理念.例如Replication Controller,它只是简单的保证可提供服务的 ...

  2. petset翻译

      Terminology     通过这个文档,你将会看到一些术语,有时候他们在别的地方交叉使用,这可能会引起一些困惑.这一节的 是帮助你理清楚他们. Node: 一个简单的虚拟或物理机在你的一个k ...

  3. Docker集群编排工具之Kubernetes(K8s)介绍、安装及使用

    K8s基础原理 k8s中文社区:https://www.kubernetes.org.cn/ 简介 Kubernetes与较早的集群管理系统Mesos和YARN相比,对容器尤其是 Docker的支持更 ...

  4. kubernetes入门(04)kubernetes的核心概念(1)

    一.ReplicationController/ReplicaSet 在Kubernetes集群中,ReplicationController能够确保在任意时刻,指定数量的Pod副本正在运行.如果Po ...

  5. kubernetes入门(03)kubernetes的基本概念

    一.Pod 在Kubernetes集群中,Pod是创建.部署和调度的基本单位.一个Pod代表着集群中运行的一个进程,它内部封装了一个或多个应用的容器.在同一个Pod内部,多个容器共享存储.网络IP,以 ...

  6. Kubernetes如何支持有状态服务的部署?

    作者:Jack47 转载请保留作者和原文出处 PS:如果喜欢我写的文章,欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. Kubernetes对无状态服务有完善的支持 ...

  7. kubernetes进阶之六:StatefulSet & DaemonSet

    StatefulSet(有状态): StatefulSet适合持久性的应用程序,有唯一的网络标识符(IP),持久存储,有序的部署,拓展,删除和滚动更新. 在Kubernetes系统中,Pod的管理对象 ...

  8. Kubernetes系列02—Kubernetes设计架构和设计理念

    本文收录在容器技术学习系列文章总目录 1.Kubernetes设计架构 Kubernetes集群包含有节点代理kubelet和Master组件(APIs, scheduler, etc),一切都基于分 ...

  9. kubernetes核心概念

    摘抄自:  https://www.cnblogs.com/zhenyuyaodidiao/p/6500720.html 1.基础架构 1.1 Master Master节点上面主要由四个模块组成:A ...

  10. Kubernetes 入门之Kubernetes 的基本概念和术语

    Kubernetes是什么?    他是一个全新的基于容器技术分布式架构领先方案:    他也是一个开放的开发平台:    他也是一个完备的分布式系统支撑平台:   Kubernetes的基本慨念和术 ...

随机推荐

  1. 修正 Mui 下拉上拉刷新功能

    下拉增加动态时间计算功能: 上拉增加状态文字提示功能(当然也支持时间计算功能,只是我们暂时用不到):

  2. java线程安全之并发Queue

    关闭 原 java线程安全之并发Queue(十三) 2017年11月19日 23:40:23 小彬彬~ 阅读数:12092更多 所属专栏: 线程安全    版权声明:本文为博主原创文章,未经博主允许不 ...

  3. 理解TCP之Keepalive

    理解HTTP之keep-alive 在前面一篇文章中讲了TCP的keepalive,这篇文章再讲讲HTTP层面keep-alive.两种keepalive在拼写上面就是不一样的,只是发音一样,于是乎大 ...

  4. UVA11137 Ingenuous Cubrency 完全背包 递推式子

    做数论都做傻了,这道题目 有推荐,当时的分类放在了递推里面,然后我就不停的去推啊推啊,后来推出来了,可是小一点的数 输出答案都没问题,大一点的数 输出答案就是错的,实在是不知道为什么,后来又不停的看, ...

  5. python data analysis | python数据预处理(基于scikit-learn模块)

    原文:http://www.jianshu.com/p/94516a58314d Dataset transformations| 数据转换 Combining estimators|组合学习器 Fe ...

  6. 转: chrome64打开弹出窗flash的办法

    https://jingyan.baidu.com/article/380abd0a38f0411d90192c2e.html

  7. 浅谈压缩感知(二十一):压缩感知重构算法之正交匹配追踪(OMP)

    主要内容: OMP的算法流程 OMP的MATLAB实现 一维信号的实验与结果 测量数M与重构成功概率关系的实验与结果 稀疏度K与重构成功概率关系的实验与结果 一.OMP的算法流程 二.OMP的MATL ...

  8. excel表格 xls、xlsx 读取

    public static void main(String[] args) throws Exception { // getdslContext(); String file = "F: ...

  9. KMP算法——从入门到懵逼到了解

    本博文參考http://blog.csdn.net/v_july_v/article/details/7041827 关于其它字符串匹配算法见http://blog.csdn.net/WINCOL/a ...

  10. 第三部分:Android 应用程序接口指南---第二节:UI---第一章 用户界面和布局

    第1章 用户界面和布局 应用程序的用户界面就是用户能看到并可以与它交互的任何东西.Android提供多种预置的UI组件,如结构化布局对象和允许你为应用程序创建图形用户界面的UI控件.Android也会 ...