三、K8S之ReplicaSet

ReplicaSet

一、概述

Kubernetes最核心的功能是编排,编排操作都是依靠控制器对象来完成,高级控制器控制着基础的控制器,基础控制器再去控制Pod,Pod里面再包容器。K8S项目里API对象层级大概就是这样。

而ReplicaSet这个控制器是用来控制副本数量的,每个副本就是Pod。ReplicaSet它用来确保外面有指定数量的Pod副本正在运行。

但是K8S建议使用**Deployment**控制器,而不是直接使用ReplicaSet,Deployment是一个管理ReplicaSet并提供Pod声明式更新、应用的版本管理以及许多其他功能的控制器。所以Deployment不是直接管理Pod对象,而是由Deployment管理ReplicaSet,再由ReplicaSet管理Pod对象

二、工作原理

ReplicaSet是通过标签选择器 (Label-Selector)管理所有与选择器匹配的标签的容器。创建Pod时,它会认为所有Pod是一样的,无状态的,所以在创建顺序上不会有先后之分。如果使用相同的标签选择器创建另一个ReplicaSet,则之前的ReplicaSet会认为是它创建了这些Pod,会触发控制循环里的逻辑删掉多余的Pod ,新的ReplicSet又会再次创建Pod。双方的当前状态始终不等于期望状态,这就会引发问题,因此确保ReplicaSet标签选择器的唯一性这一点很重要。

三、示例
yaml 复制代码
apiVersion: apps/v1
kind: ReplicaSet   
metadata: 
  name: RS-name
  labels:
    app: RS-App
    name: RS-Tier
spec: 
  replicas: 3 # 告诉k8s需要多少副本
  Selector: # 用于匹配Pod的标签选择器
    matchLabels:
      name: pod-name
  template:
    metadata:
      labels:
        name: pod-name
    spec: # 与Pod对象的spec定义类似
      Containers:
相关推荐
咚咚?1 小时前
基于gitlab 构建CICD发布到K8S 平台
容器·kubernetes·gitlab
尘土哥4 小时前
Docker 快速上手
docker·容器·eureka
wenzhangli75 小时前
低代码引擎核心技术:OneCode常用动作事件速查手册及注解驱动开发详解
人工智能·低代码·云原生
胡耀超9 小时前
Umi-OCR 的 Docker安装(win制作镜像,Linux(Ubuntu Server 22.04)离线部署)
linux·深度学习·ubuntu·docker·容器·nlp·ocr
铃木隼.13 小时前
docker容器高级管理-dockerfile创建镜像
运维·docker·容器
容器魔方13 小时前
持续领跑,华为云连续5年蝉联中国容器软件市场份额第一
云原生·容器·云计算
樽酒ﻬق16 小时前
Prometheus Operator:Kubernetes 监控自动化实践
java·算法·云原生·运维开发
麟城Lincoln18 小时前
【Linux-云原生-笔记】Apache相关
linux·笔记·云原生·apache·webserver
IT成长日记19 小时前
【Docker基础】Dockerfile指令速览:文件与目录操作指令详解
docker·容器·volume·add·dockerfile·workdir
胡耀超19 小时前
GraphRAG Docker化部署,接入本地Ollama完整技术指南:从零基础到生产部署的系统性知识体系
运维·docker·容器·大模型·知识图谱·rag·ollama