OpenShift 弹性伸缩 Replication Controller

2024-02-23 07:38

本文主要是介绍OpenShift 弹性伸缩 Replication Controller,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

RC(Replication Controller),复制控制器,其是Kubernetes的一个组件,主要是负责监控 容器 数量,当发现 容器 数量少于部署定义数量时,出发新的部署请求。

在OpenShift中,每个应用的Deployment Config 中都定义了部署 容器 数量(Replicas),当OpenShift在进行部署的时候同时会启动一个Replication Controller,并将Deployment Config中定义的 容器 部署数量(Replicas)传递给相关联的Replication Controller。



RC又是通过什么来判断某个容器需要被其进行监控的呢?
RC Config配置:
spec:
replicas: 1
selector:
app: app-cli
deployment: app-cli-1
deploymentconfig: app-cli
Pod Config 配置:
labels:
app: app-cli
deployment: app-cli-1
deploymentconfig: app-cli
从上面的RC Config中部分配置可以看到:
  • replicas:RC监控的应用需要部署的容器个数;
  • selector:RC选择标签列表,只有同时满足所列标签的容器才会被此RC进行监控,上面的配置文件中,只有某个容器的labels同时满足 app:app-cli、deployment:app-cli-1、deploymentconfig:app-cli ,这三个标签的,才会被此RC进行监控。

测试:
1、打开某个 容器 的配置修改,将其中的deployment:app-cli-1的标签删除,然后保存,如下图:


2、立即找到Pods页面,如下图:

从图上可以看到,被修改的app-cli-1-xhbws的pod还在正在运行,由于测试时将app-cli-1-xhbws的deployment:app-cli-1的标签删除了,导致app-cli的RC找不到一个正常运行的 容器 ,此时RC就重新启动了一个名称为app-cli-1-gz26z的pod。

3、如果现在原来的app-cli-1-xhbws中删除的配置项,再添加来回,就会立即发现刚刚启动的 app-cli-1-gz26z 的pod被kill了,并且在Pods里面中已经查询不到了。


上面测试的过程,正好是对RC弹性伸缩功能的最好验证。


再次测试:
1、重新恢复上面的第二步的情况,此时,分别在app-cli应用的下面添加一个文件分别如下:
旧的 容器


新的 容器


2、此时通过如下shell脚本访问这个应用:
[root@ocp ~]# for i in {1..10} ; do curl http://app-cli-default.apps.192.168.40.141.nip.io/test.php ; done
app-cli-1-xhbws
app-cli-p4b65
app-cli-1-xhbws
app-cli-p4b65
app-cli-1-xhbws
app-cli-p4b65
app-cli-1-xhbws
app-cli-p4b65
app-cli-1-xhbws
app-cli-p4b65
[root@ocp ~]#
从上图可以看出,已经不受RC控制的 容器 还是能够接收到Service服务转发过来的请求。

此问题的原因也和上面所说的 标签与选择器 在关系,可以通过如下命令查看 app-cli 应用的选择器:
[root@ocp ~]# oc describe svc app-cli | grep Selector
Selector: app=app-cli,deploymentconfig=app-cli

总结:
1、RC服务在监控容器的时候,使用的是 app 、deployment 和 deploymentconfig 这三个标签。
2、Service服务在选择容器进行请求转发的时候,使用的只是 app 和 deploymentconfig 这两个标签。


相关命令
1、oc scale dc <dc名称> --replicas=2:进行pod的增加或减少。


这篇关于OpenShift 弹性伸缩 Replication Controller的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/737945

相关文章

CSS弹性布局常用设置方式

《CSS弹性布局常用设置方式》文章总结了CSS布局与样式的常用属性和技巧,包括视口单位、弹性盒子布局、浮动元素、背景和边框样式、文本和阴影效果、溢出隐藏、定位以及背景渐变等,通过这些技巧,可以实现复杂... 一、单位元素vm 1vm 为视口的1%vh 视口高的1%vmin 参照长边vmax 参照长边re

MVC(Model-View-Controller)和MVVM(Model-View-ViewModel)

1、MVC MVC(Model-View-Controller) 是一种常用的架构模式,用于分离应用程序的逻辑、数据和展示。它通过三个核心组件(模型、视图和控制器)将应用程序的业务逻辑与用户界面隔离,促进代码的可维护性、可扩展性和模块化。在 MVC 模式中,各组件可以与多种设计模式结合使用,以增强灵活性和可维护性。以下是 MVC 各组件与常见设计模式的关系和作用: 1. Model(模型)

【CSS in Depth 2 精译_024】4.2 弹性子元素的大小

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一章 层叠、优先级与继承(已完结) 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位(已完结) 2.1 相对单位的威力2.2 em 与 rem2.3 告别像素思维2.4 视口的相对单位2.5 无单位的数值与行高2.6 自定义属性2.7 本章小结 第三章 文档流与盒模型(已

Gerrit与Gitlab同步配置replication其他配置

一、Gerrit与Gitlab同步配置 当配置好gerrit环境后,还需要与现有gitlab库进行同步配置,否则会影响现有开发与打包流程。 1.安装gerrit replication插件 unzip gerrit.warcp WEB-INF/plugins/replication.jar ~/temp/ssh -p 29418 admin@172.19.16.64 gerrit plu

Spring 注解(@Repository 、@Service 和 @Controller )

Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository、@Service 和 @Controller 。         在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层 、业务层 和控制层 相对应。虽然目前这 3 个注释和 @

easyswoole not controller class match

not controller class match composer.json 注册 App 这个名称空间了吗?执行过 composer dump-autoload 了吗?存在 Index 控制器,但是文件大小写、路径都对了吗? task socket listen fail 注意,在部分环境下,例如 win10 的 docker 环境中,不可把虚拟机共享目录作为 EasySwoole 的 T

Spring是如何找到URL请求对应的Controller的

文章来源 原文作者:Spring MVC 原文地址: https://blog.csdn.net/hl233211/article/details/77450697 http://ddrv.cn/a/58528 本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。 序:先贴一张SpringMVC整体的框架原理图 此文主要描述Spring在响应请求的时候是如何根据U

“弹性盒子”一维布局系统(补充)——WEB开发系列31

弹性盒子是一种一维布局方法,用于根据行或列排列元素。元素可以扩展以填补多余的空间,或者缩小以适应较小的空间,为容器中的子元素提供灵活的且一致的布局方式。 一、什么是弹性盒子? CSS 弹性盒子(Flexible Box Layout,简称 Flexbox)是 CSS3 中引入的一种布局模式,提供一种有效的方式来布局、对齐和分配容器内空间,特别是在动态和复杂的应用界面中。 1、

k8s之HPA实践——实现Web服务器的自动伸缩特性

文章目录 在生产环境中,总会有一些意想不到的事情发生,比如公司网站流量突然升高,此时之前创建的Pod已不足以支撑所有的访问,而运维人员也不可能24小时守着业务服务,这时就可以通过配置HPA,实现负载过高的情况下自动扩容Pod副本数以分摊高并发的流量,当流量恢复正常后,HPA会自动缩减Pod的数量。 安装minikube minikube start --image-reposi

Apache ShardingSphere数据分片弹性伸缩加解密中间件

Apache ShardingSphere Apache ShardingSphere 是一款分布式 SQL 事务和查询引擎,可通过数据分片、弹性伸缩、加密等能力对任意数据库进行增强。 软件背景 ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互