有状态服务yyyz

因为不能在一个pod模板中差异化配置pod副本,所以不能指定一个实例使用哪个特定目录。但是可以让每个实例自动选择(或创建)一个别的实例还没有使用的数据目录。这种方案要求实例之间相互协作,其正确性很难保证,同时共享存储也会成为整个应用的性能瓶颈。

除了上面说的存储需求,集群应用也会要求每一个实例拥有生命周期内唯一标识。pod可以随时被删掉,然后被新的pod替代。当一个ReplicaSet中的pod被替换时,尽管新的pod也可能使用被删掉pod数据卷中的数据,但它却是拥有全新主机名和IP的崭新pod。在一些应用中,当启动的实例拥有完全新的网络标识,但还使用旧实例的数据时,很可能引起问题。

因此一些应用需要维护一个稳定的网络标识,这个需求在有状态的分布式应用中很普遍。这类应用要求管理者在每个集群成员的配置文件中列出所有其他集群成员和它们的IP地址(或主机名)。但是在Kubernetes中,每次重新调度一个pod,这个新的pod就有一个新的主机名和IP地址,这样就要求当集群中任何一个成员被重新调度后,整个应用集群都需要重新配置。

你可以利用前面讲到的Service,针对集群中的每个成员,都创建一个独立的服务来提供稳定的网络地址。因为服务IP是固定的,可以在配置文件中指定集群成员对应的服务IP而不是podIP。

这种解决方案可行,但是会十分麻烦,因此便出现了StatefulSet资源。

在第四章中,提到过StatefulSet是一种资源控制器,它用来管理某pod集合的部署和扩缩,并为这些pod提供持久存储和持久标识符。它和Deployment很相似,但不同的是,StatefulSet为它们的每个pod维护了一个有粘性的ID。这些pod是基于相同的配置来创建的,但不能相互替换:无论怎么调度,每个pod都有一个永久不变的ID。

要很好地理解StatefulSet的用途,最好先与RS或者RC对比一下。首先拿一个通用的类比来解释它们。

我们倾向于把应用看作宠物,给每个实例起一个名字,细心照顾每个实例。但是也许把它们看成牛更为合适,并不需要对单独的实例有太多关心。这样就可以非常方便地替换掉不健康的实例,就跟农场主替换掉一头生病的牛一样。对于无状态的应用实例来说,行为非常像农场里的牛。一个实例挂掉后并没什么影响,可以创建一个新实例,而让用户完全无感知。另一方面,有状态的应用的一个实例更像一个宠物。若一只宠物死掉,不能买到一只完全一样的,而不让用户感知到。若要替换掉这只宠物,需要找到一只行为举止与之完全一致的宠物。对应用来说,意味着新的实例需要拥有跟旧的实例完全一致的状态和标识。

RS或RC管理的pod副本比较像牛,这是因为它们都是无状态的,任何时候它们都可以被一个全新的pod替换。然而有状态的pod需要不同的方法,当一个有状态的pod挂掉后(或者它所在的节点故障),这个pod实例需要在别的节点上重建,但是新的实例必须与被替换的实例拥有相同的名称、网络标识和状态。这就是StatefulSet如何管理pod的。

一个Statefulset创建的每个pod都有一个从零开始的顺序索引,这个会体现在pod的名称和主机名上,同样还会体现在pod对应的固定存储上。这些pod的名称则是可预知的,因为它是由Statefulset的名称加该实例的顺序索引值组成的。不同于pod随机生成一个名称,这样有规则的pod名称很方便管理:

扩容一个Statefulset会使用下一个还没用到的顺序索引值创建一个新的pod实例。比如,要把一个Statefulset从两个实例扩容到三个实例,那么新实例的索引值就会是2(现有实例使用的索引值为0和1)。

当缩容一个Statefulset时,比较好的是很明确哪个pod将要被删除。作为对比,RS的缩容操作则不同,不知道哪个实例会被删除,也不能指定先删除哪个实例。缩容一个Statefulset将会最先删除最高索引值的实例,缩容的结果是可预知的。

至于存储,一个有状态的pod需要拥有自己的存储,即使该有状态的pod被重新调度(新的pod与之前pod的标识完全一致),新的实例也必须挂载着相同的存储。那Statefulset是如何做到这一点的呢?

当你不小心缩容后,如果没有删除PVC,那么可以通过扩容的方式弥补,新的pod会运行到与之前完全一致的状态(名字也相同):

StatefulSets对于需要满足以下一个或多个需求的应用程序很有价值:

在上面描述中,稳定的意味着Pod调度或重调度的整个过程是有持久性的。如果应用程序不需要任何稳定的标识符或有序的部署、删除或伸缩,则应该使用由一组无状态的副本控制器提供的工作负载来部署应用程序,比如Deployment或者ReplicaSet可能更适用于无状态应用部署。

下面的示例演示了StatefulSet的组件。

apiVersion:v1kind:Servicemetadata:name:nginxlabels:app:nginxspec:ports:-port:80name:webclusterIP:Noneselector:app:nginx---apiVersion:apps/v1kind:StatefulSetmetadata:name:webspec:selector:matchLabels:app:nginx#必须和下面的.spec.template.metadata.labels对应serviceName:"nginx"replicas:3#默认为1template:metadata:labels:app:nginx#必须和上面的.spec.selector.matchLabels对应spec:terminationGracePeriodSeconds:10containers:-name:nginximage:k8s.gcr.io/nginx-slim:0.8ports:-containerPort:80name:webvolumeMounts:-name:wwwmountPath:/usr/share/nginx/htmlvolumeClaimTemplates:-metadata:name:wwwspec:accessModes:["ReadWriteOnce"]storageClassName:"my-storage-class"resources:requests:storage:1Gi上述例子中:

你必须设置StatefulSet的.spec.selector字段,使之匹配其在.spec.template.metadata.labels中设置的标签。在Kubernetes1.8版本之前,被忽略.spec.selector字段会获得默认设置值。在1.8和以后的版本中,未指定匹配的Pod选择器将在创建StatefulSet期间导致验证错误。

如果用户想将示例中的StatefulSet收缩为replicas=1,首先被终止的是web-2。在web-2没有被完全停止和删除前,web-1不会被终止。当web-2已被终止和删除、web-1尚未被终止,如果在此期间发生web-0运行失败,那么就不会终止web-1,必须等到web-0进入Running和Ready状态后才会终止web-1。

你可以像删除Kubernetes中的其他资源一样删除StatefulSet:使用kubectldelete命令,并按文件或者名字指定StatefulSet。

kubectldelete-f#或者kubectldeletestatefulsets删除StatefulSet之后,你可能需要单独删除关联的无头服务。

kubectldeleteservice<服务名称>当通过kubectl删除StatefulSet时,StatefulSet会被缩容为0。属于该StatefulSet的所有Pod也被删除。如果你只想删除StatefulSet而不删除Pod,使用--cascade=orphan。

kubectldelete-f--cascade=orphan通过将--cascade=orphan传递给kubectldelete,在删除StatefulSet对象之后,StatefulSet管理的Pod会被保留下来。如果Pod具有标签app=myapp,则可以按照如下方式删除它们:

kubectldeletepods-lapp=myapp删除StatefulSet管理的Pod并不会删除关联的卷。这是为了确保你有机会在删除卷之前从卷中复制数据。

如果要完全删除StatefulSet中的所有内容,包括关联的pods,你可以运行一系列如下所示的命令:

grace=$(kubectlgetpods--template'{{.spec.terminationGracePeriodSeconds}}')kubectldeletestatefulset-lapp=myappsleep$gracekubectldeletepvc-lapp=myapp在上面的例子中,Pod的标签为app=myapp;适当地替换你自己的标签。

THE END
1.用户思维+:好产品让用户为自己尖叫有人要求你创造一款新的畅销产品或服务。 你会怎么做呢? 还有一件事…… 时间在一分一秒地流逝。一切都取决于你是否能够打造一款可持续成功的产品或服务。 你应该从哪里入手?你应该考虑哪些问题? 畅销产品究竟有何不同? 我们从这个问题入手寻找成功准则:为什么这些产品持续畅销,而那些产品却不能?成功的产品与其竞...https://www.ituring.com.cn/book/tupubarticle/17799
2.宠物托运公司都有哪些托运服务?宠物托运公司服务大概可以分为三种:一种宠物单独运输,一种是宠物随机托运服务,还有一种就是同一趟航班客舱服务,而这些服务又分国内航线和国际航航线。 一.宠物单独运输是指没有主人陪伴的情况下,以单独货运的形式发往目的地。这种情况一般都是从昆明或香港出发,需要办理宠物的出境文件,预定仓位,宠物托运公司会提供全...http://www.zezeu.cn/n24779.htm
1.毛孩子探店记单三宠物店:25年专业标杆宠物店(下)宠吾代特色1:独特的定制洗护服务这里没有批量生产的服务,每一只宠物都能得到个性化的关怀。根据宠物的皮肤和毛发状况,为它们量身定制洗护方案,确保每一次护理都能达到最佳效果。 特色2:用心选品,用情待客在产品选择上不追求利润最大化,健康、透明、纯天然,追求产品对宠物健康的最大效益。精选对猫狗健康有效的产品,确保每一...https://www.shangyexinzhi.com/article/23142628.html
2.服务覆盖1000+家宠物门店,他们的目标是服务百万宠友“说实话,代理第一批品牌的时候是有点闹笑话的,因为我们是刚进入到这个行业,可以说是两眼一抹黑,谁也不认识谁。我们就从百度上搜宠物行业的品牌,但遗憾的是,很多知名品牌都直接拒绝了我们。”王艾峰坦言。 创业之路并非坦途,需要不断尝试和探索,王艾峰也不气馁。2016年,有了第一个代理的品牌后,团队三人开始了...https://m.thepaper.cn/newsDetail_forward_29373244
3.宠物快递服务全面解析:寄送宠物,安全便捷新选择!2. 填写宠物信息:宠物主人需向快递公司提供宠物的品种、年龄、体重、健康状况等信息。 3. 预付费用:根据宠物快递的具体服务内容,宠物主人需预付相应的费用。 4. 安排运输:快递公司根据宠物主人的需求,安排合适的运输方式和时间。 5. 宠物交接:宠物主人将宠物交由快递公司,并确保宠物在运输过程中安全。 https://kd.aigou2019.com/archives/34435
4.宠物服务包括哪些?宠物服务项目及费用大全→MAIGOO知识而衍生来的宠物服务近年来也在宠物业慢慢流行。宠物服务包括哪些内容?宠物服务项目很多,包括喂养、遛狗、洗澡、美容、医疗等等。还有近年来热门的上门服务、宠物保姆、宠物殡葬等等。也许这些你都有所耳闻,但并不一定了解。下面小编就跟着小编一起来看看宠物服务项目及费用大全吧。https://m.maigoo.com/goomai/229119.html
5.宠物店服务项目都有什么(宠物店服务标准)导读目前关于大家提出的宠物店服务项目都有什么这个问题,那么小编今天就去收集了一些宠物店服务标准相关的内容来分享给大家。1、在宠物销售方面,宠物店通常会出售狗、猫、鸟类、小鱼等各种... 目前关于大家提出的宠物店服务项目都有什么这个问题,那么小编今天就去收集了一些宠物店服务标准相关的内容来分享给大家。 https://www.00rr.com/xinwen/202411/363317.html
6.宠物服务公司经营范围常见问题无论是可爱的猫咪、活泼的狗狗,还是其他各类宠物,都能在这里得到精心的照料和关爱。 此外,宠物服务公司还可能提供宠物寄养、宠物用品销售、宠物社交活动组织等多元化的服务。想知道更多关于宠物服务公司经营范围的详细内容吗?那就跟随我们一起深入了解吧! 宠物服务公司经营范围参考:...https://www.wen51.com/news/show/248694/
7.木兰职业形堂答案汇总木兰职业形堂今日答案最新12月21日:以下哪个职业与居家养老密切相关?养老服务专员 12月19日:以下哪种民间表演艺术入选了人类非物质文化遗产代表作名录?朝鲜族农乐舞 12月18日:以下哪个职业既要模拟黑客攻击,又要做好安全防护?信息安全测试员 12月17日:普洱茶答案 “生普”和“熟普”在制作工艺上有什么区别是否发酵 ...https://app.ali213.net/mip/gl/888001.html
8.文明城市创建进行时收藏!铜仁市文明城市创建知识问答来啦答:志愿服务活动中“三关爱”的内容是关爱他人、关爱社会、关爱自然。 18.大革命时期贺龙曾几次率部驻军铜仁? 答:大革命时期,贺龙率部于1924年、1926年两次驻军铜仁,在现在的碧江、万山、松桃一带从事革命活动。 19.大革命时期有多少黔东子弟参加北伐战争和南昌起义? http://sjj.trs.gov.cn/xwzx/tzgg/202308/t20230830_82123414.html
9.物业服务范围是什么,有哪些具体内容很多业主都在搜索,物业管理的服务范围是什么?又有哪些具体内容呢?今天华律网小编就带大家一起来看看。 小区物管服务的主要内容 (1)房屋共用部位的维护与管理。 房屋的维修管理包括:房屋外观完好、整洁;小区内组团及栋号有明显标志及引路方向平面图;房屋完好率达98%以上;无违反城市规划的违章建筑;房屋零修及时率达...https://www.66law.cn/laws/261609.aspx
10.员工职场礼仪从团体看礼仪是企业文化和企业精神的重要内容。是企业形象的'主要附着点。大型企业对礼仪都有高标准要求,都把礼仪当作企业文化重要内容。同时也是获得国际认证的重要软件。礼仪受到企业重视,是内强个人素质,外塑单位形象。是有效提高服务质量,处理客户异议,提高企业美誉的有效手段。https://www.yjbys.com/qiuzhizhinan/show-595395.html
11.宠物托运公司都有哪些托运服务?翔友宠物托运服务宠物托运公司服务大概可以分为三种:一种宠物单独运输,一种是宠物随机托运服务,还有一种就是同一趟航班客舱服务,而这些服务又分国内航线和国际航航线。 一.宠物单独运输是指没有主人陪伴的情况下,以单独货运的形式发往目的地。这种情况一般都是从昆明或香港出发,需要办理宠物的出境文件,预定仓位,宠物托运公司会提供全套...https://www.xypettravel.com/news_content-702380.html
12.携宠旅行年轻人有了新旅伴西安新闻网对于很多宠物主人来说,不带宠物独自出去旅游,宠物无人照料;带着宠物,旅途中住宿、吃饭等都是问题。李军的携宠旅行服务,帮宠物主人们解决了这一难题。 李军原本是一名自由摄影师。2016年,他养了一只边牧,取名“熊猫”。2017年,李军成立俱乐部,开始从事宠物摄影、携宠旅游。当年4月,长安区土门峪的桃花正艳,李军在朋...https://www.xiancn.com/content/2023-09/19/content_6781422.htm
13.昆明学院创建全国文明校园知识问答昆明学院8.社会主义精神文明建设的根本任务是什么? 适应社会主义现代化建设的需要,培育有理想、有道德、有文化、有纪律的社会主义公民,提高整个中华民族的思想道德素质和科学文化素质。 9.社会主义道德建设的主要内容是什么? 社会主义道德建设要以为人民服务为核心,以集体主义为原则,以爱祖国、爱人民、爱劳动、爱科学、爱社会主义...https://www.kmu.edu.cn/info/1037/9064.htm
14.彩虹物语游戏攻略《彩虹物语》中有着多种多样的宠物,每一只都有着不同的技能和特性,冒险家们最多可以上阵5只宠物,作为自己的伙伴一同战斗。 由于宠物战力并不会全额加到角色的战力上,因此会造成战力假象,一些萌新可能会因为看上去战力提升效果不佳,而忽视宠物系统,因此偶尔会出现无法击败战力比自己低的对手的现象也有这方面的原因,...https://www.124sy.com/article/118637.html
15.宠物摄影造型培训机构(宠物摄影造型培训学校)宠物产品则有一些国内外的头部品牌,市场占有率也较高。 各个子行业所设计的相关岗位如图所示,浅橙色需要相关的专业背景,而深橙色对所学专业和过往经验不做严格要求。 其中,吸纳就业最多的,还是小微企业众多的宠物服务行业。 我们也可以从资本的一些动向上看到市场的发展,宠物美容、宠物医疗是近几年拿到最多投资的方...https://edu.xinpianchang.com/article/baike-493685.html
16.我亲戚开宠物诊所,我自己开宠物店,你们有什么要问?[内容不可见] [已注销] 其实都是獭兔串,都多少代了基因还不稳定。你要是来我们场子见到一道奇妈喂养着,底下有红眼睛,有尖脸儿,有包子脸,有紫灰狮子还带一片儿红毛。。。你就对宠物兔什么念想都没了合适。你以前养过吗?松鼠味道还是挺大的。 赞 回应 [已注销] 2012-12-29 12:38:48 其实都是獭兔...https://www.douban.com/group/topic/35508653/?cid=415831358
17.就餐礼仪知识中餐大多一大盘菜放在桌上,有时有服务员帮忙分菜,若无则由男士帮女士取菜,或由自己依序取用。用餐时,碗盘器皿不可拿在手上,应用筷子取一口大小的食物送至口中,不可一次把过多的食物塞入口里。骨、刺要吐出时,应用餐巾或以右手遮口,隐密地吐在左手掌中,再轻置于骨盘中,不可抛弃在桌面或地上。有骨或壳...https://www.ruiwen.com/liyichangshi/6302399.html
18.最新2024年云原生Kubernetes高级面试题大全(持续更新中)题1:Kubernetes Service 都有哪些类型? 通过创建Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并且将请求负载分发到后端的各个容器应用上。其主要类型有: ClusterIP:虚拟的服务IP地址,该地址用于Kubernetes集群内部的Pod访问,在Node上kube-proxy通过设置的iptables规则进行转发; ...https://blog.csdn.net/qq_46654855/article/details/125612617
19.故人是什么意思?故人怎么理解?故人和旧人有什么区别?故人和旧人有什么区别? 不少的朋友经常会在文言文或者诗词当中,看到故人这个词语,究竟这个故人具体指的是哪部分人?它的真正含义是什么呢?下面让我们一起去了解吧。 故人是个汉语词语,意思是指旧交往,老交情的朋友;也可以指前妻、前夫或者旧情人。 出自《庄子·山木》:“夫子出於山,舍於故人之家。”、《三国...http://m.benber.com/content/202010/19816.html