13-k8s的控制器资源-rc控制器replicationcontrollers

一、rc控制器资源的概述

replicationcontrollers控制器资源,简称:rc控制器;

简单理解,rc控制器就是控制相同的pod副本数量;

使用rc控制器资源创建pod,就可以设定创建pod的数量;

二、rc控制器资源管理

1,编辑rc资源清单

root@k8s231 rc\]# vim rc.yaml apiVersion: v1 kind: ReplicationController metadata: name: rc01 spec: #控制pod的副本数量 replicas: 5 #选择要创建副本的pod的标签(关联pod标签,把谁的副本设置成5个呀?) selector: k8s: xinjizhiwa #下面就是你要控制的pod了(就是pod资源的编辑); template: metadata: name: pod-01 labels: k8s: xinjizhiwa spec: containers: - name: c1 image: nginx:1.20.1-alpine ports: - containerPort: 80

2,创建rc资源

root@k8s231 rc\]# kubectl apply -f rc.yaml

3,查看rc资源

root@k8s231 rc\]# kubectl get rc

4,删除rc资源

root@k8s231 rc\]# kubectl delete rc rc01

5,小结

1,rc控制器创建的pod是按照标签进行副本数量控制的;

2,rc控制器资源创建的pod,直接删除pod,还会重新拉起,只有删除rc资源,pod才会消失;

3,修改rc资源,需要重新编rc资源清单,再次apply就可以修改了;

三、rc控制器资源实现业务的升级与回滚

1,模拟2个版本的镜像

第一个镜像

· 编辑dockerfile

root@k8s231 dockerfile\]# cat Dockerfile FROM nginx:1.20.1-alpine COPY code/v1 /usr/share/nginx/html/index.html CMD \["/usr/sbin/nginx", "-g", "daemon off;"

· 编辑index文件

root@k8s231 dockerfile\]# cat code/v1 v1:xinjizhiwa-01

· 构建镜像推送到harbor仓库

root@k8s231 dockerfile\]# cat b1.sh #!/bin/bash docker login -u admin -p 1 harbor.xinjizhiwa.com docker image build -t harbor.xinjizhiwa.com/xinjizhiwa-nginx/nginx:v1 . docker push harbor.xinjizhiwa.com/xinjizhiwa-nginx/nginx:v1

第二个镜像

· 编辑dockerfile

root@k8s231 dockerfile\]# cat Dockerfile FROM nginx:1.20.1-alpine COPY code/v2 /usr/share/nginx/html/index.html CMD \["/usr/sbin/nginx", "-g", "daemon off;"

· 编辑index文件

root@k8s231 dockerfile\]# cat code/v1 v2:xinjizhiwa-02

· 构建镜像推送到harbor仓库

root@k8s231 dockerfile\]# cat b1.sh #!/bin/bash docker login -u admin -p 1 harbor.xinjizhiwa.com docker image build -t harbor.xinjizhiwa.com/xinjizhiwa-nginx/nginx:v2 . docker push harbor.xinjizhiwa.com/xinjizhiwa-nginx/nginx:v2

2,编辑rc、svc资源清单

root@k8s231 rc\]# cat rc.yaml apiVersion: v1 kind: ReplicationController metadata: name: rc-nginx spec: #控制pod的副本数量 replicas: 3 #选择要创建副本的pod的标签(关联pod标签,把谁的副本设置成n个呀?) selector: k8s: xinjizhiwa #下面就是你要控制的pod了(就是pod资源的编辑); template: metadata: name: pod-nginx labels: k8s: xinjizhiwa spec: containers: - name: c1 image: harbor.xinjizhiwa.com/xinjizhiwa-nginx/nginx:v1 ports: - containerPort: 80 command: - "nginx" - "-g" - "daemon off;" --- #编辑service资源用于外部访问 apiVersion: v1 kind: Service metadata: name: svc-rc-nginx spec: type: NodePort clusterIP: 10.200.10.10 selector: k8s: xinjizhiwa ports: - port: 88 targetPort: 80 nodePort: 30001

3,创建rc、svc资源

root@k8s231 rc\]# kubectl apply -f rc.yaml

4,浏览器访问

5,模拟迭代,换镜像

· 把资源清单中的image镜像从v1换成v2

root@k8s231 rc\]# cat rc.yaml apiVersion: v1 kind: ReplicationController metadata: name: rc-nginx spec: #控制pod的副本数量 replicas: 3 #选择要创建副本的pod的标签(关联pod标签,把谁的副本设置成n个呀?) selector: k8s: xinjizhiwa #下面就是你要控制的pod了(就是pod资源的编辑); template: metadata: name: pod-nginx labels: k8s: xinjizhiwa spec: containers: - name: c1 image: harbor.xinjizhiwa.com/xinjizhiwa-nginx/nginx:v2 ports: - containerPort: 80 command: - "nginx" - "-g" - "daemon off;" --- #编辑service资源用于外部访问 apiVersion: v1 kind: Service metadata: name: svc-rc-nginx spec: type: NodePort clusterIP: 10.200.10.10 selector: k8s: xinjizhiwa ports: - port: 88 targetPort: 80 nodePort: 30001

· 重新执行apply

root@k8s231 rc\]# kubectl apply -f rc.yaml

· 删除原有pod

删除后会自动重新拉取pod,就会拉取最新的pod了;

root@k8s231 rc\]# kubectl delete pods --all

· 浏览器查看,发现迭代完成

########################################

rc控制器方式,生产环境当中,从来不用;只是为了教学,模拟使用rc迭代;

相关推荐
scriptsboy42 分钟前
可用 Docker (DockerHub) 国内镜像源加速列表 - 长期维护(截至 2025 年 06 月 15 日)
运维·docker·容器
阿里云云原生1 小时前
清理祖传 AK 不怕炸锅:基于 UModel 的云监控 2.0 身份凭证观测实践
云原生
不爱笑的良田1 小时前
从零开始的云原生之旅(二):第一次部署到 K8s
云原生·容器·kubernetes
不爱笑的良田1 小时前
从零开始的云原生之旅(五):用 StatefulSet 部署 Redis
数据库·redis·云原生
what_20182 小时前
k8s 容器部署
云原生·容器·kubernetes
锦年JNian2 小时前
docker常用命令
运维·docker·容器
专家大圣3 小时前
5分钟启动标准化安卓环境:Docker-Android让模拟器配置不再踩坑
android·网络·docker·容器·内网穿透
winds~5 小时前
【git】docker中无法进行git命令行补全
git·docker·容器
眠りたいです5 小时前
基于脚手架微服务的视频点播系统-脚手架开发部分-FFmpeg,Etcd-SDK的简单使用与二次封装
c++·微服务·云原生·架构·ffmpeg·etcd
cui_win15 小时前
Minikube 安装与使用详细指南(Centos7 踩坑版)
docker·kubernetes·minikube·centos7·升级内核