Cloud Native应用交付
  • 首页
  • 关于本站
  • 个人介绍
  • Downloads
  • Repo
    • Github
    • Container
  • F5
    • F5 Python SDK
    • F5-container
    • F5-LBaaS
  • 社交
    • 联系我
    • 微信/微博
    • 公众号
    • 打赏赞助
行至水穷处 坐看云起时
☁️We are in new App Mesh era: imesh.club ☁️
  1. 首页
  2. 容器/k8s
  3. 正文

ReplicaSet/ReplicationController

2018年08月11日 2041点热度 0人点赞 0条评论

用来管理pod的一种抽象,一般很少单独创建,多数情况下是deployment来自动创建和维护。

与RC不同的是,RS的selector支持 set-based,而不是RC简单的等于这样的匹配。

RS的spec.selector必须等于spec.template.labels.

spec.template中的内容和一个普通的pod 定义无区别,这是没有了API和kind。

RS会根据replicas的设定维护pods的数量,但是RS与pods的唯一关系就是label selector,它甚至不知道被匹配的pod是不是自己创建的,也就是说任何其它资源创建的pod,只要labels被匹配,就会被认为需要来管理。因此k8s中必须要人工保证不要有错误的label重叠。将RS创建的pod的标签修改为其它标签会导致该pod脱离管理,RS将会认为replicas减少从而重新再起一个。已通过其它方式创建的pods只要label匹配,就会被认为与该RS有关,但是RS不保证刷新所有pod来符合其template中的定义。

RS本身不能rolling update,RC可以(但是是申明式)

删除RS但不删除相关pod的方式是加--cascade=false 参数

RS可以被HPA(Horizontal pod autoscaler)管理

1
2
3
4
5
6
7
8
9
10
11
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: frontend-scaler
spec:
  scaleTargetRef:
    kind: ReplicaSet
    name: frontend
  minReplicas: 3
  maxReplicas: 10
  targetCPUUtilizationPercentage: 50


RC主要是能支持kubectl rollingupdate来操作

只要编辑一个新的yaml,包含不同的selector标签或使用不同版本的image(修改image也可以通过命令),然后使用kubectl rollingupdate命令即可进行

1
2
3
4
5
6
7
8
9
10
11
[root@k8s-master cka]# kubectl rolling-update nginx-rc  -f rc-rollingupdate.yaml
Created nginx-rc-rolling
Scaling up nginx-rc-rolling from 0 to 3, scaling down nginx-rc from 3 to 0 (keep 3 pods available, don't exceed 4 pods)
Scaling nginx-rc-rolling up to 1
Scaling nginx-rc down to 2
Scaling nginx-rc-rolling up to 2
Scaling nginx-rc down to 1
Scaling nginx-rc-rolling up to 3
Scaling nginx-rc down to 0
Update succeeded. Deleting nginx-rc
replicationcontroller "nginx-rc-rolling" rolling updated to "nginx-rc-rolling"

在整个过程中,rc会先用新的yaml创建1个pod,运行成功后,再主动减少一个旧的rc的pod。这样反复,最终达成新的rc所要求的,并删除掉了旧rc的所有pod以及旧rc

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: k8s replicaset
最后更新:2018年08月11日

纳米

http://linjing.io

打赏 点赞
< 上一篇
下一篇 >

文章评论

取消回复

纳米

http://linjing.io

☁️迈向Cloud Native ADC ☁️

认证获得:
Kubernetes: CKA #664
Microsoft: MCSE MCDBA
Cisco: CCNP
Juniper: JNCIS
F5:
F5 Certified Solution Expert, Security
F5 Certified Technology Specialist, LTM/GTM/APM/ASM
F5 Certified BIG-IP Administrator
  • 点击查看本博技术要素列表
  • 分类目录
    • Avi Networks (3)
    • Cisco ACI (1)
    • CISCO资源 (21)
    • F5 with ELK (8)
    • F5-Tech tips (38)
    • F5技术 (203)
    • Juniper (4)
    • Linux (7)
    • Nginx (18)
    • SDN (4)
    • ServiceMesh (19)
    • WEB编程 (8)
    • WINDOWS相关 (7)
    • 业界文章 (18)
    • 交换机技术 (20)
    • 化云为雨/Openstack (35)
    • 协议原理 (52)
    • 容器/k8s (64)
    • 我的工作 (19)
    • 我的生活 (70)
    • 网站技术 (19)
    • 路由器技术 (80)
    • 项目案例 (28)
    文章归档
    标签聚合
    F5 k8s openstack nginx istio DNS envoy gtm docker network flannel api irule bigip neutron cc kubernetes ELK vxlan BGP dhcp VPN IPSec lbaas ingress ingress controller nginx plus sidecar IPSec VPN NAT sql
    最新 热点 随机
    最新 热点 随机
    Say hello for 2021 二进制flannel部署,非cni网络模式下与k8s CIS结合方案 又是一年国庆 Service Account Token Volume Projection Istio ingressgateway 静态TLS证书加载与SDS发现方式配置区别 Istio里Gateway的port定义与实际ingressgateway的listener端口关系及规则 Helm 3 部署NGINX Ingress Controller 应用交付老兵眼中的Envoy, 云原生时代下的思考 Istio sidecar iptables以及流量控制分析 Istio 熔断策略及envoy配置
    Say hello for 2021
    some free CA [FW]基于IP+URI的防秒杀irule DNS关于递归的一些学习记录[更新中] 纪念博客的第14年 Kubernetes Certified Administrator (CKA)考试总结 DOCKER容器跨宿主机通信方法-(3):Openvswitch 我的几篇总结文档下载 博客Docker化实践 V9下限制对SSH的访问 IBR(Intelligent Browser Rerferencing)总结
    链接表
    • Jimmy Song‘s Blog
    • SDNap
    • SDNlab
    • SDN论坛
    • Service Mesh社区
    • 三斗室
    • 个人profile

    COPYRIGHT © 2020 Cloud Native应用交付. ALL RIGHTS RESERVED.

    THEME KRATOS MADE BY VTROIS

    京ICP备14048088号-1

    京公网安备 11010502041506号

    [ Placeholder content for popup link ] WordPress Download Manager - Best Download Management Plugin