[kubernetes in Action实践]ReplicaSet的认识

介绍

ReplicaSet和ReplicationController一样,可以管理pod的运行数量,故障重启等,但是相比后者,它的pod选择器功能更强,ReplicationController的标签选择器只允许包含某个标签的匹配 pod,但ReplicaSet 的选择器还允许匹配缺少某个标签的 pod,或包含特定标签名的 pod,不管其值如何。

它们的功能:

  • 确保一 个pod (或多个pod副本)持续运行,方法是在现有 pod 丢失时启动一个新pod。
  • 集群节点发生故障时,它将为故障节点上运行的所有 pod (即受其控制的节点上的那些 pod) 创建替代副本。
  • 它能轻松实现 pod的水平伸缩(增加或减少pod副本数量)

创建ReplicaSet

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: kubia
spec:
  replicas: 3
  selector:
    matchLabels:    # 比较简单的选择器,类似ReplicationController的选择器
      app: kubia
  template:
    metadata:
      labels:
        app: kubia
    spec:
      containers:
      - name: kubia
        image: arrowarcher/kubia

在这里插入图片描述
可以给选择器添加额外的表达式。如示例,每个表达式都必须 包含一个key、一个operator (运算符),并且可能还有一个values的列表(取决于运算符)。

selector:
    matchExpressions:
      - key: app		# 包含'app'标签名的pod
      operator: In
      values:
        - kubia         # 标签的值是kubia

四个有效的运算符:

  • In : Label的值必须与其中一个指定的values 匹配。
  • NotIn: Label的值与任何指定的values 不匹配。
  • Exists : pod 必须包含一个指定名称的标签(值不重要)。使用此运算符时,
    不应指定 values字段。
  • DoesNotExist : pod不得包含有指定名称的标签。values属性不得指定 。

如果你指定了多个表达式,则所有这些表达式都必须为true才能使选择器与
pod匹配。如果同时指定matchLabels和matchExpressions,则所有标签都
必须匹配,并且所有表达式必须计算为true以使该pod与选择器匹配。

删除ReplicaSet

kubectl delete rs kubia
会删除所有管理的pod。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值