前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes ReplicaSet控制器

Kubernetes ReplicaSet控制器

作者头像
shysh95
发布2022-10-31 10:20:30
4070
发布2022-10-31 10:20:30
举报
文章被收录于专栏:shysh95

Hi~朋友,关注置顶防止错过消息

ReplicaSet作用是什么?

ReplicaSet的目的是为了维护一组稳定的Pod集合,用来保证给定数量的Pod可用性。

ReplicaSet使用场景?

ReplicaSet不推荐单独使用,而推荐使用Deployment,Deployment可以控制ReplicaSet,从而借助ReplicaSet实现其滚动更新的功能。

Deloyment在实现各种特色功能时,其实都是在操作ReplicaSet,而不是直接操作Pod,至于Pod如何创建如何收缩,都是由ReplicaSet来决定。

代码语言:javascript
复制
$ kubectl get pods nginx-deployment-5778cd94ff-h5xgv -o yaml

从上图可以看到,Pod的OwnerReference是ReplicaSet。

ReplicaSet定义

代码语言:javascript
复制
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: nginx-rs
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.16.1
        ports:
          - containerPort: 80
代码语言:javascript
复制
$ kubectl apply -f nginx-rs.yaml
$ kubectl get rs
$ kubectl get pods

从上图中我们可以看到名称为nginx-rs的ReplicaSet被成功创建,在get rs的结果中有几个字段:

  • NAME:ReplicaSet的名字
  • DESIRED:应用期望的副本数
  • CURRENT:处于运行状态的副本数
  • READY:可以为用户提供服务的副本数
  • AGE:应用已经运行的时间

非模板Pod的管理

首先解释一下什么是非模板Pod,非模板Pod就是我们直接创建的Pod,不是通过RS或者其他控制器创建的Pod,比如下面这个:

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  containers:
  - name: nginx
    image: nginx:1.16.1

如果ReplicaSet已经创建,并且Pod的数量已经达到我们的期望值,此时如果我们直接创建符合ReplicaSet选择的Pod,该Pod不会被创建成功,因为该Pod会被RS直接获取,并且如果他存在将会超过期望数,因此Pod会被RS杀死。

代码语言:javascript
复制
$ kubectl apply -f pod-rs.yaml
$ kubectl describe pods nginx

从上图可以看出我们手动创建的nginx pod成功被RS获取到,并且被kill掉。

假设我们先手动创建Pod,然后再建立RS,并且手动建立的Pod符合RS的selector,此时RS会先收集到手动创建的Pod,如果手动创建的pod超过了RS的期待值,多余的会被杀掉,如果不够期待值,会在现有的基础上再创建pod直到到达期待值。

代码语言:javascript
复制
$ kubectl apply -f pod-rs.yaml
$ kubectl apply -f nginx-rs.yaml

从上图可以看出我们手动创建的Pod成功被RS管理。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员修炼笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档