『中级篇』K8S横向扩展功能ReplicaSet和ReplicationController(63)
时间:2022-06-10
本文章向大家介绍『中级篇』K8S横向扩展功能ReplicaSet和ReplicationController(63),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
原创文章,欢迎转载。转载请注明:转载自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实现了集群的高可用性。
- 开始演示
#启动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
#创建一个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
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。
- 跨网络拷贝文件的简单实践(r3笔记第67天)
- 关于enq: TX - allocate ITL entry的问题分析(r3笔记第66天)
- Tensorflow学习:使用Tensorflow搭建深层网络分类器
- 关于interval partitioning(r3笔记65天)
- Spark Tips4: Kafka的Consumer Group及其在Spark Streaming中的“异动”(更新)
- 关于数据库中的一些name(r3笔记第64天)
- 码农的瑞士军刀-脚本语言
- shell基础学习总结(一) (r3笔记第63天)
- 关于sysdba,sysoper,dba的区别(r3笔记第62天)
- 使用句柄实现特定场景的无备份恢复 (r3笔记第61天)
- 关于dual表的破坏性测试(r3笔记第60天)
- 哈希现金(Hashcash)与“工作量证明”
- 关于oracle中的sql数据类型(r3笔记第59天)
- 使用awr来分析sesson leak问题(r3笔记第78天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 你应该了解的Nacos配置中心
- Jenkins CLI 命令行 v0.0.30
- 2020新鲜出炉的“面筋”,够刁钻
- Spring注解配置应该怎么玩
- 算法篇:链表之倒数第k个节点
- 彻底搞懂 Java 线程池,干啥都不再发憷
- Android Camera1中的对焦与测光
- 使用R语言获得16S物种丰度
- 二叉树的基础---四种遍历方式的 Java 实现
- MySQL 架构与历史
- 通过案例学Python之assert
- Spring Boot入门系列(十六)整合pagehelper,一秒实现分页功能!
- Python文件的读写
- Python正则表达式(下)
- spring boot 如何统一处理 Filter、Servlet 中的异常信息