前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >『中级篇』K8S横向扩展功能ReplicaSet和ReplicationController(63)

『中级篇』K8S横向扩展功能ReplicaSet和ReplicationController(63)

原创
作者头像
IT架构圈
发布2018-09-09 01:31:09
7200
发布2018-09-09 01:31:09
举报
文章被收录于专栏:IT架构圈IT架构圈

原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!

原文链接地址:『中级篇』K8S横向扩展功能ReplicaSet和ReplicationController(63)

上次说了,pod的如何管理。这次说说pod的横向扩展。源码:https://github.com/limingios/docker/tree/master/No.9

ReplicationController

ReplicationController(简称为RC)。在旧版本的Kubernetes中,只有ReplicationController对象。它的主要作用是确保Pod以你指定的副本数运行,即如果有容器异常退出,会自动创建新的 Pod 来替代;而异常多出来的容器也会自动回收。可以说,通过ReplicationController,Kubernetes实现了集群的高可用性。

  • 开始演示
代码语言:txt
复制
#启动k8s
minikube start
#删除上次的pod
kubectl delete -f pod_nginx.yml
  • 查看rc_nginx.ymlapiVersion: v1 kind: ReplicationController metadata: name: nginx spec: replicas: 3 selector: app: nginx template: metadata: name: nginx labels: app: nginx spec: containers: - name: nginx image: nginx ports: - containerPort: 80
image.png
image.png
代码语言:txt
复制
#创建一个ReplicationController的横向扩展
kubectl create -f rc_nginx.yml
kubectl get pods
kubectl get rc
  • 删除一个看看效果如何通过delete pods 的方式删除一个容器,立刻就有一个新的容器起来kubectl get rc kubectl get pod kubectl delete pods nginx-h2qbt kubectl get pods kubectl get rc
  • scale 水平扩展的数量kubectl scale rc nginx --replicas=2 kubectl get rc kubectl scale rc nginx --replicas=5 kubectl get pods -o wide
image.png
image.png

ReplicaSet

Kubernetes官方强烈建议避免直接使用ReplicaSet,而应该通过Deployment来创建RS和Pod。

由于ReplicaSet是ReplicationController的代替物,因此用法基本相同,唯一的区别在于ReplicaSet支持集合式的selector。

  • 查看rc_nginx.ymlapiVersion: apps/v1 kind: ReplicaSet metadata: name: nginx labels: tier: frontend spec: replicas: 3 selector: matchLabels: tier: frontend template: metadata: name: nginx labels: tier: frontend spec: containers: - name: nginx image: nginx ports: - containerPort: 80#删除ReplicationController创建的pod kubectl delete -f rc_nginx.yml #创建一个ReplicationController的横向扩展 kubectl create -f rs_nginx.yml kubectl get pods -o wide kubectl get pods kubectl get rc
  • 删除一个看看效果如何通过delete pods 的方式删除一个容器,立刻就有一个新的容器起来kubectl get rs kubectl get pod kubectl delete pods nginx-h2qbt kubectl get pods kubectl get rs
  • scale 水平扩展的数量kubectl scale rs nginx --replicas=2 kubectl get rs kubectl scale rs nginx --replicas=5 kubectl get pods -o wide

PS:通过这次了解了pod的扩展,ReplicaSet和ReplicationController的方式,基本上可以抛弃上次的直接pod的方式创建app了。下次说说Deployment。


原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ReplicationController
  • ReplicaSet
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档