K8s: 控制器之ReplicaSet对象

ReplicaSet 控制副本


1 ) 概述

  • pod 是一个无状态的,并且可以被任意的按需的调度,在各个work node上运行的组件

  • 谁来控制这类调度就变得非常复杂,不可能去手工的去维护某一个pod的一个运行实例

  • 如果那样的话呢,它就失去了容器的概念,就会像一个虚拟机一样去运行

  • K8s中提供了 controller 这个概念,对于副本管理来说,有两种

    • 一种是 Replica Set (RS) 副本控制器
    • 一种是 Replication Controller(RC)已经不推荐使用了
    • 都是用于确保集群中特定数量的 Pod 副本始终运行的服务
    • Replica Set 是对 Replication Controller 的改进和升级,具备更强大的获取标签label功能
    • 新版本中推荐用 Deployment 来控制 ReplicaSet,用 ReplicaSet 控制pod副本数量
  • Replica Set

    • 它是维护在任何时候都处于运行状态pod副本的一个稳定集合
    • 通常它是用来保证给定数量和完全相同的pod的一个可用性
    • 可以认为它是一个管理员,要保证集群的pod的数量是一个稳定的
    • 比如设定了3个副本的nginx, 如果你主动销毁一个副本,它会自动新建一个补充
  • RS 可以独立使用,但是也可以被 Deployment 用来协调

2 )应用

  • 新建 rep-nginx.yaml

    apiVersion: apps/v1
    kind: ReplicaSet
    metadata:name: rep-nginx
    spec:replicas: 3selector: # 选择器选择的是 满足 app: rep-nginx 的 podmatchLabels:app: rep-nginxtemplate: # 这里的模板就是创建一系列的 podmetadata:name: rep-nginxlabels:app: rep-nginxspec:containers:- name: rep-nginximage: nginxports:- containerPort: 80
    
  • $ kubectl apply -f rep-nginx.yaml 创建副本

    replicaset.apps/rep-nginx created
    
  • $ kubectl get all

    NAME                  READY   STATUS    RESTARTS   AGE
    pod/rep-nginx-k6k8g   1/1     Running   0          2m16s
    pod/rep-nginx-sh969   1/1     Running   0          2m16s
    pod/rep-nginx-tcrsb   1/1     Running   0          2m16sNAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
    service/kubernetes   ClusterIP   10.1.0.1     <none>        443/TCP   6dNAME                        DESIRED   CURRENT   READY   AGE
    replicaset.apps/rep-nginx   3         3         3       2m17s
    
  • 这时候开两个 bash窗口, 来监控运行

    • $ kubectl get po -w 这个窗口一直做监控,命名窗口为A窗口
    • $ kubectl delete pod/rep-nginx-tcrsb 这个窗口删除一个pod, 命名窗口为B窗口
  • 我们可以在A窗口这个监控窗口中看到

    • 之前被删除的pod的状态是立即变成: Terminating
    • 并且同时有一个新的pod被创建出来,状态为: Pending -> ContainerCreating -> Running 的变化
  • 回到B窗口中运行 $ kubectl get po 发现依旧是 3个 pod

  • 这个说明副本控制器就是一直在工作来维持副本运行的稳定性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/2221.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

proxy的应用实例

习题一 实现下面例子中的效果&#xff0c;需要怎么做&#xff1f; var arr [a, b, c, d, e, f]; console.log(a a.a a.a.a a.a.a.a a.a.a.a.a); // abcdef看到a a.a a.a.a a.a.a.a a.a.a.a.a的形式&#xff0c;第一个出现的解决办法就是&#xff1a;Proxy代理。其次…

LateX的基础学习

what can i say 在text.tex中写下 \documentclass{article} \begin{document]Hello \LaTeX. \end{document} 关闭记事本&#xff0c;cmd中dir保存&#xff0c;用latex text.tex来编译&#xff0c;可以命令行慢慢编译&#xff0c;这可以做成bat文件 为什么不直接开始在texst…

Java基本语法(基础部分)

Java基本语法 文章目录 Java基本语法前言一、准备工作1.1 计算机软件与硬件1.2 计算机编程语言1.3 Java语言概述&程序分析1.4 Java环境搭建&Java API1.5 Java核心机制JVM 二、变量2.1 关键字&标识符2.2 变量2.3 数据类型(基本数据类型)2.3.1 基本数据类型2.3.2 基本…

Go源码--Strings库

1. 简介 strings库 存储了 一些针对 字符串的具体操作 其 代码短小精悍 可以学习到很多编程的思路 尤其是 涉及到字符串使用性能的方面&#xff0c;其源码库有好多的优秀案例可以学习。向强者对齐不一定成为强者&#xff0c;但向弱者对齐一定变为弱者。 介绍思路是先介绍 stri…

oracle操作系统OS认证和密码文件认证

1 说明 1.1 常见认证方式 Oracle登录认证方式主要涉及到如何验证用户身份以访问数据库。Oracle数据库提供了多种认证机制来确保数据的安全性和访问控制&#xff0c;每种方式都有其特定的使用场景和安全性考虑。以下是Oracle中常见的登录认证方式&#xff1a; 1、基于操作系统…

图像处理技术与应用(一)

图像处理技术与应用入门 使用skimage进行图像读取和显示 skimage库&#xff08;Scikit-image&#xff09;提供了一个强大的工具集&#xff0c;用于执行各种图像处理任务。以下是如何使用skimage读取和显示图像的基本示例&#xff1a; from skimage import ioimg io.imread(…

Unpaired Image Super-Resolution using Pseudo-Supervision

CVPR2020解决的问题是当前的SR模型基于成对的数据&#xff0c;且其中LR的图片是通过HR经过bicubic下采样得到的&#xff0c;而实际图片的degradation过程更为复杂&#xff0c;且本文提出的方法不需要成对的HR-LR数据&#xff1b;提出的模型包含两个部分&#xff1a; – correct…

中北大学软件学院操作系统实验二进程调度算法

实验时间 2024年 4 月13日14时至16时 学时数 2 1.实验名称 实验二进程调度算法 2.实验目的 (1)加深对进程的概念及进程调度算法的理解&#xff1b; (2)在了解和掌握进程调度算法的基础上&#xff0c;编制进程调度算法通用程序&#xff0c;将调试结果显示在计算机屏幕上&am…

什么是大语言模型以及如何构建自己的大型语言模型?

一、关于大语言模型 LLM 对于无数的应用程序非常有用&#xff0c;如果我们自己从头开始构建一个&#xff0c;那我们可以了解底层的ML技术&#xff0c;并可以根据特定需求定制LLM&#xff0c;但是对资源的需求巨大。大型语言模型是一种 ML 模型&#xff0c;可以执行各种自然语言…

LeetCode 315—— 计算右侧小于当前元素的个数

阅读目录 1. 题目2. 解题思路一3. 代码实现一4. 解题思路二5. 代码实现二 1. 题目 2. 解题思路一 参考 剑指 Offer——数组中的逆序对&#xff0c;我们依然借助于归并排序中的合并操作来计算某个元素右侧小于它的元素个数。 如上图最左边所示&#xff0c;第五行开始进行第一次…

uthash哈希库使用详解(增删改查和遍历,示例代码)

在C语言中&#xff0c;标准库并没有提供哈希表的实现&#xff0c;因此很多开发者需要自己实现哈希表&#xff0c;这通常是一个复杂且容易出错的过程。幸运的是&#xff0c;有像uthash这样的开源库可以帮助我们简化这一过程。本文将对uthash的使用进行详尽的讲解&#xff0c;包括…

国内首个48小时大模型极限挑战赛落幕,四位“天才程序员”共同夺冠

4月21日晚&#xff0c;第四届ATEC科技精英赛&#xff08;ATEC2023&#xff09;线下赛落幕。本届赛事以大模型为技术基座&#xff0c;围绕“科技助老”命题&#xff0c;是国内首个基于真实场景的大模型全链路应用竞赛。ATEC2023线下赛采用48小时极限挑战的形式&#xff0c;来自东…

【Linux开发 第十一篇】rpm和yum

rpm rpm用于互联网下载包的打包及安装工具&#xff0c;它包含在某些Linux分发版中&#xff0c;就是一种Linux中软件包的管理工具 rpm包指令 rpm -qa&#xff1a;查询所安装的所有的rpm软件包 rpm -qa | more rom -qa | grep X rpm -q 软件包名:查询软件包是否安装 rpm -qi 软…

2024年最新版云开发cms开通步骤,开始开发微信小程序前的准备工作,认真看完奥!

小程序官方有改版了&#xff0c;搞得石头哥不得不紧急的再新出一版&#xff0c;教大家开通最新版的cms网页管理后台 一&#xff0c;技术选型和技术点 1&#xff0c;小程序前端 wxml css JavaScript MINA原生小程序框架 2&#xff0c;数据库 云开发 云数据库 云…

一般转行嵌入式应该怎么做?

转行嵌入式可以考虑以下方向&#xff1a; 嵌入式软件开发&#xff1a;包括嵌入式操作系统的开发、应用软件开发等。 嵌入式硬件设计&#xff1a;涉及电路设计、微处理器应用等。 物联网应用开发&#xff1a;利用嵌入式技术实现物联网设备的连接、控制和数据处理。 华清远见的…

options表的service

目录 1、 * options表的service 1.1、 insertOption 1.2、 saveOptions 1.3、 getOptions package com.my.blog.website.service.impl; import com.my.blog.website.dao.OptionVoMapper;

Mysql优化之分区分表

为什么要分区分表 分区和分表是两种用于优化大型数据集查询性能的技术&#xff0c;它们有不同的应用场景和优势。随着数据库数据越来越大&#xff0c;单个表中数据太多。以至于查询速度变慢&#xff0c;而且由于表的锁机制导致应用操作也受到严重影响&#xff0c;就出现了数据…

springboot 批量下载文件, zip压缩下载

一、使用hutool 工具类 效果&#xff1a;下载速度可以 1、依赖&#xff1a;hutool <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.26</version> </dependency>2、调用方式 im…

Android Studio开发工具学习之Git分支操作

这里写目录标题 2.1 查看、创建本地分支2.1.1 命令行查看与创建2.1.2 Git窗口查看与创建 2.2 切换分支&#xff1a;Checkout2.3.1 通过命令行切换 2.3.2 通过Git窗口切换 2.3 合并分支&#xff1a;Merge2.3.1 操作command_new、gui-new分支2.3.1 通过命令行将gui-new分支合并至…

Day35代码随想录贪心part04:860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球

Day35 贪心part04 860.柠檬水找零 leetcode题目链接&#xff1a;860. 柠檬水找零 - 力扣&#xff08;LeetCode&#xff09; **复习一下dict的语法&#xff1a;**wallet[i] wallet.get(i, 0)1 本题一开始尝试用逐层判断去做&#xff0c;但这样好像并不合理 思路&#xff1…