k8s初探(3)-kubernetes ReplicaSet(1)

简介: k8s初探(3)-kubernetes ReplicaSet(1)

什么是 ReplicaSet 资源


replicaSet,简称为RS,是一种kubernetes资源,使用它,可使集群中运行相同数量的pod,当其中pod挂掉的时候,kubernetes会负责重建该pod适合跑一些无状态服务的pod,我们可以抽象其为如下图示:


我们使用replicaSet管理了4个pod,分为为pod Apod Bpod C以及pod D,当Node2挂掉之后,replicaSet会负责重建该pod,所以,pod会在Node1进行新建pod


image.png




ReplicaSet 扩缩容逻辑


我们一般在创建replicaset资源时,会指定一个初始pod个数 并且指定一个标签,这个时候kubernetes会创建这么多个pod,当pod挂了的时候,这个时候replicaSet会创新新的pod,注意,最重要的点,replicaset是根据pod的标签值来判定个数的,其逻辑如下

image.png


可能会想,怎么可能当前符合标签的pod数大于设置的阈值,有2种可能

  • 我们创建pod,手动分配标签,强行加入replicaset
  • 我们手动降低了replicaset 的预定副本值

这里还需要引入一个点,若创建RS后,镜像更新了,此后再扩容pod的时候,使用的是新镜像内容,而还在运行的pod则使用的老镜像,如:


image.png


假设在创建RS后,我们更新了镜像内容,此时若Node2崩溃,那么node2上的pod将会被意外停止,此时若kubernetes检查pod数目,发现少了,则会新创建符合标签的pod,而此时,创建的pod镜像为新的,而还在运行的则为老的,如下所示:

image.png


尝试使用replicaset


我们先使用explain来获取一下帮助

image.png



我们尝试编写一个rs


image.png


注意,示例中rs的标签选择器要和pod标签相对应才行,否则会报错,不允许创建

我们使用apply创建后,查看rs


image.png


我们查看pod的的信息

使用--show-labels可以打印pod的标签信息

image.png



现在我们创建一个新的Pod,并且将label也赋值为app=nginxpdudo

image.png


最主要是label

我们再次查看pod信息

image.png


我们发现该pod创建不上去

为了模拟这种实验,我们可以先创建单独的pod,再创建 replicaset,我们来看下

image.png


我们发现一个很有意思的事情,rs并没有删除掉redispod,而是判断现在已经有1个了,所以再创建2个就能达到阈值了,于是乎创建了2个。

我们再来一个实验。我们将rs允许的pod数阈值给调高上去查看一下,我们可以使用kubectl edit 来修改正在运行的rs


image.png




总结


我们之所以需要replicaset,是因为我们想运行多个无状态服务程序,并且想让之提供可靠的服务,具体扩缩容的逻辑,是根据pod的标签来决定的,所以说,在我们操作kubernetes中,给pod打标签,这个是至关重要的,尽量做到看名知意,且不会和其他资源冲突,若不确定,可以使用labels工具先行捞取一下在当前namespace中,是有有相匹配的pod




相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
1月前
|
存储 运维 Kubernetes
正式开源,Doris Operator 支持高效 Kubernetes 容器化部署方案
飞轮科技推出了 Doris 的 Kubernetes Operator 开源项目(简称:Doris Operator),并捐赠给 Apache 基金会。该工具集成了原生 Kubernetes 资源的复杂管理能力,并融合了 Doris 组件间的分布式协同、用户集群形态的按需定制等经验,为用户提供了一个更简洁、高效、易用的容器化部署方案。
正式开源,Doris Operator 支持高效 Kubernetes 容器化部署方案
|
2月前
|
存储 Kubernetes Docker
Kubernetes(k8s)和Docker Compose本质区别
理解它们的区别和各自的优势,有助于选择合适的工具来满足特定的项目需求。
228 19
|
2月前
|
Kubernetes 应用服务中间件 nginx
二进制安装Kubernetes(k8s)v1.32.0
本指南提供了一个详细的步骤,用于在Linux系统上通过二进制文件安装Kubernetes(k8s)v1.32.0,支持IPv4+IPv6双栈。具体步骤包括环境准备、系统配置、组件安装和配置等。
637 10
|
2月前
|
存储 Kubernetes 关系型数据库
阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案
本文源自2024云栖大会苏雅诗的演讲,探讨了K8s集群业务为何需要灾备及其重要性。文中强调了集群与业务高可用配置对稳定性的重要性,并指出人为误操作等风险,建议实施周期性和特定情况下的灾备措施。针对容器化业务,提出了灾备的新特性与需求,包括工作负载为核心、云资源信息的备份,以及有状态应用的数据保护。介绍了ACK推出的备份中心解决方案,支持命名空间、标签、资源类型等维度的备份,并具备存储卷数据保护功能,能够满足GitOps流程企业的特定需求。此外,还详细描述了备份中心的使用流程、控制台展示、灾备难点及解决方案等内容,展示了备份中心如何有效应对K8s集群资源和存储卷数据的灾备挑战。
|
3月前
|
Kubernetes Cloud Native API
深入理解Kubernetes——容器编排的王者之道
深入理解Kubernetes——容器编排的王者之道
70 1
|
3月前
|
Kubernetes Cloud Native 持续交付
深入理解Kubernetes:容器编排的基石
深入理解Kubernetes:容器编排的基石
|
3月前
|
Kubernetes 负载均衡 Cloud Native
云原生应用:Kubernetes在容器编排中的实践与挑战
【10月更文挑战第27天】Kubernetes(简称K8s)是云原生应用的核心容器编排平台,提供自动化、扩展和管理容器化应用的能力。本文介绍Kubernetes的基本概念、安装配置、核心组件(如Pod和Deployment)、服务发现与负载均衡、网络配置及安全性挑战,帮助读者理解和实践Kubernetes在容器编排中的应用。
139 4
|
Kubernetes 容器
KUBERNETES03_k8s对象是什么、如何管理、命名空间、代码自动补全提示(五)
KUBERNETES03_k8s对象是什么、如何管理、命名空间、代码自动补全提示(五)
172 0
KUBERNETES03_k8s对象是什么、如何管理、命名空间、代码自动补全提示(五)
|
Kubernetes 容器
KUBERNETES03_k8s对象是什么、如何管理、命名空间、代码自动补全提示(四)
KUBERNETES03_k8s对象是什么、如何管理、命名空间、代码自动补全提示(四)
145 0
KUBERNETES03_k8s对象是什么、如何管理、命名空间、代码自动补全提示(四)
|
Kubernetes 应用服务中间件 API
KUBERNETES03_k8s对象是什么、如何管理、命名空间、代码自动补全提示(二)
KUBERNETES03_k8s对象是什么、如何管理、命名空间、代码自动补全提示(二)
165 0
KUBERNETES03_k8s对象是什么、如何管理、命名空间、代码自动补全提示(二)

热门文章

最新文章