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的基本慨念和术 ...
随机推荐
- Window Server 2008 R2 TFS2010 安装前的准备
前言 http://www.cnblogs.com/aehyok/p/3979707.html 这里简单介绍了安装windows Server 2008 R2系统,接下来就开始介绍安装Team Fou ...
- 用PHP纯手工打造会动的多帧GIF图片验证码
效果演示: http://pcik.7di.net/pcik_reg 百度的效果演示: https://passport.baidu.com/cgi-bin/genimage?captchaservi ...
- MySQL 复习笔记
本文内容 SQL 语句 创建数据库 创建数据表 数据完整性约束 四种基本字符类型说明 SQL 基本语句 类型转换函数 日期函数 数学函数 字符串函数 合并结果集 union CASE 函数用法 IF ...
- SDUT 3002-素数间隙(素数筛+暴力)
素数间隙 Time Limit: 1000ms Memory limit: 262144K 有疑问?点这里^_^ 题目描写叙述 Neko猫是一个非常喜欢玩数字游戏的会说话的肥猫,常常会想到非常多 ...
- Clipboard Action for Mac(智能剪贴板历史管理器)破解版安装
1.软件简介 Clipboard Action 是 macOS 系统上一款智能剪贴板历史管理器,它允许剪贴板历史中的每一段内容执行操作.使用 AppleScript 或 Automator 工作 ...
- Socket网络编程--聊天程序(4)
上一小节讲到可以实现多客户端与服务器进行通讯,对于每一个客户端的连接请求,服务器都要分配一个进程进行处理.对于多用户连接时,服务器会受不了的,而且还很消耗资源.据说有个select函数可以用,好像还很 ...
- 申请IPV6地址配置IPV6域名
0. 前言 最近弄了一下IPV6,虽然不知道什么时候会用到,但是服务器支持IPV6,还是有必要的. 1. 申请IPV6地址 https://tunnelbroker.net/ 到这个网址去注册一个帐号 ...
- Flink source task 源码分析
http://vinoyang.com/2016/05/05/flink-stream-source/ http://vinoyang.com/2016/12/28/flink-runtime-com ...
- 如何解决:对应的服务器 tls 为 tls 1.0,小程序要求的TLS版本必须大于等于1.2问题
微信小程序 TLS 版本必须大于等于1.2问题解决 此问题最近在微信小程序开发中,比较常见. 在解决这个问题之前,我们需要了解一下,当前的系统环境是否支持TLS1.2以上,可以参考一下表格: 请先确认 ...
- TinyXML2 的使用
TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译.这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树 ...