kubernetes-PetSet
什么是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的更多相关文章
- Kubernetes有状态应用管理——PetSet
目录贴:Kubernetes学习系列 1.介绍 在Kubernetes中,大多数的Pod管理都是基于无状态.一次性的理念.例如Replication Controller,它只是简单的保证可提供服务的 ...
- petset翻译
Terminology 通过这个文档,你将会看到一些术语,有时候他们在别的地方交叉使用,这可能会引起一些困惑.这一节的 是帮助你理清楚他们. Node: 一个简单的虚拟或物理机在你的一个k ...
- Docker集群编排工具之Kubernetes(K8s)介绍、安装及使用
K8s基础原理 k8s中文社区:https://www.kubernetes.org.cn/ 简介 Kubernetes与较早的集群管理系统Mesos和YARN相比,对容器尤其是 Docker的支持更 ...
- kubernetes入门(04)kubernetes的核心概念(1)
一.ReplicationController/ReplicaSet 在Kubernetes集群中,ReplicationController能够确保在任意时刻,指定数量的Pod副本正在运行.如果Po ...
- kubernetes入门(03)kubernetes的基本概念
一.Pod 在Kubernetes集群中,Pod是创建.部署和调度的基本单位.一个Pod代表着集群中运行的一个进程,它内部封装了一个或多个应用的容器.在同一个Pod内部,多个容器共享存储.网络IP,以 ...
- Kubernetes如何支持有状态服务的部署?
作者:Jack47 转载请保留作者和原文出处 PS:如果喜欢我写的文章,欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. Kubernetes对无状态服务有完善的支持 ...
- kubernetes进阶之六:StatefulSet & DaemonSet
StatefulSet(有状态): StatefulSet适合持久性的应用程序,有唯一的网络标识符(IP),持久存储,有序的部署,拓展,删除和滚动更新. 在Kubernetes系统中,Pod的管理对象 ...
- Kubernetes系列02—Kubernetes设计架构和设计理念
本文收录在容器技术学习系列文章总目录 1.Kubernetes设计架构 Kubernetes集群包含有节点代理kubelet和Master组件(APIs, scheduler, etc),一切都基于分 ...
- kubernetes核心概念
摘抄自: https://www.cnblogs.com/zhenyuyaodidiao/p/6500720.html 1.基础架构 1.1 Master Master节点上面主要由四个模块组成:A ...
- Kubernetes 入门之Kubernetes 的基本概念和术语
Kubernetes是什么? 他是一个全新的基于容器技术分布式架构领先方案: 他也是一个开放的开发平台: 他也是一个完备的分布式系统支撑平台: Kubernetes的基本慨念和术 ...
随机推荐
- Spring静态注入的三种方式
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/chen1403876161/article/details/53644024Spring静态注入的三 ...
- Windows下Phalcon的安装以及phpstorm识别phalcon语法及提示
1.由于Phalcon是C语言写的一个扩展,所以需要安装这个扩展php_phalcon.dll,下载地址https://github.com/phalcon/cphalcon/releases, 然后 ...
- hash bucket
什么是bucket bucket的英文解释: Hash table lookup operations are often O(n/m) (where n is the number of objec ...
- MySql之删除操作
一:删除特定行 DELETE FROM 表名 WHERE 条件: 二:删除所有行 TRUNCATE TABLE 表名; //删除重建一张表
- SoapUI Pro Project Solution Collection-XML assert
in soapui the XML object used here is from org.w3c.dom package so you need to read this article car ...
- VTK计算网格模型上的最短路径
Dijkstra algorithm to compute the graph geodesic.Takes as input a polygonal mesh and performs a sing ...
- ROS nodelet的使用
ROS是一种基于分布式网络通讯的操作系统,整个机器人控制系统是由一个Master主节点和若干个功能相对独立的Node子节点组成,这也是ROS系统最主要的特点就是分布式以及模块化的设计.在ROS通讯过程 ...
- 为Docker容器设置http代理
以下内容复制自:传送门 ,可以直接去该地址查看. HTTP/HTTPS proxy The Docker daemon uses the HTTP_PROXY, HTTPS_PROXY, and NO ...
- How to extract a complete list of extension types within a directory?
Open the PowerShell Tool and Run the below command: Get-Childitem "D:\testfolder\" -Recurs ...
- 在SharePoint 2013 场中移除服务器,提示 cacheHostInfo is null 错误
Problem 在SharePoint 2013 场中移除服务器,提示 cacheHostInfo is null 错误 Resolution 这是由于SharePoint 2013中分布式缓存实例( ...