9.1.k8s的控制器资源(rc控制器replicationcontrollers)

目录

一、rc控制器资源的概述

二、rc控制器资源管理

1.编辑rc资源清单

2.查看rc资源

3.删除rc资源

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

1.模拟2个版本的镜像

1.1.编辑dockerfile

1.2.编辑index文件

1.3.构建镜像推送到harbor仓库

2.编辑rc、svc资源清单

3.浏览器访问

4.模拟迭代,换镜像

5.浏览器查看,发现已升级


一、rc控制器资源的概述

  1. replicationcontrollers控制器资源,简称:rc控制器;
  2. 简单理解,rc控制器就是控制相同的pod副本数量;
  3. 使用rc控制器资源创建pod,就可以设定创建pod的数量;

特点

  1. rc控制器创建的pod是按照标签进行副本数量控制的;
  2. rc控制器资源创建的pod,直接删除pod,还会重新拉起,只有删除rc资源,pod才会消失;
  3. 修改rc资源,需要重新编rc资源清单,再次apply就可以修改了;

二、rc控制器资源管理

1.编辑rc资源清单

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

2.查看rc资源

[root@k8s1 rc]# kubectl get rc -owide
NAME   DESIRED   CURRENT   READY   AGE   CONTAINERS   IMAGES                SELECTOR
rc01   3         3         3       60s   c1           nginx:1.20.1-alpine   k8s=rc-pod

3.删除rc资源

[root@k8s1 rc]# kubectl delete rc rc01 
replicationcontroller "rc01" deleted

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

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

1.模拟2个版本的镜像

1.1.编辑dockerfile

[root@k8s1 rc]# cat Dockerfile_v1 
FROM nginx:1.20.1-alpine

COPY  code/v1  /usr/share/nginx/html/index.html

CMD   ["/usr/sbin/nginx", "-g", "daemon off;"]
[root@k8s1 rc]# 
[root@k8s1 rc]# cat Dockerfile_v2 
FROM nginx:1.20.1-alpine

COPY  code/v2  /usr/share/nginx/html/index.html

CMD   ["/usr/sbin/nginx", "-g", "daemon off;"]

1.2.编辑index文件

[root@k8s1 rc]# ls code/
v1  v2
[root@k8s1 rc]# cat code/v1 
v1:oslee-01
[root@k8s1 rc]# cat code/v2
v2:oslee-02

1.3.构建镜像推送到harbor仓库

# 构建
docker build -t harbor.oslee.com/oslee-private/my-nginx:v1 -f Dockerfile_v1 .
docker build -t harbor.oslee.com/oslee-private/my-nginx:v2 -f Dockerfile_v2 .

# 登录并推送
docker login harbor.oslee.com -u admin -p harbor123

docker push harbor.oslee.com/oslee-private/my-nginx:v1
docker push harbor.oslee.com/oslee-private/my-nginx:v2

2.编辑rc、svc资源清单

[root@k8s1 rc]# cat rc-upgrade.yaml 
apiVersion: v1
kind: ReplicationController
metadata:
  name: rc-nginx
spec:
  #控制pod的副本数量
  replicas: 3
  #选择要创建副本的pod的标签(关联pod标签,把谁的副本设置成n个呀?)
  selector: 
    k8s: rc-pod
  #下面就是你要控制的pod了(就是pod资源的编辑);
  template:
    metadata:
      name: pod-nginx
      labels:
        k8s: rc-pod
    spec:
      # 用的harbor私有仓库,需要使用secret拉取
      imagePullSecrets:
      - name: oslee-harbor
      containers:
      - name: c1
        image: harbor.oslee.com/oslee-private/my-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: rc-pod
  ports:
  - port: 88
    targetPort: 80
    nodePort: 30001

[root@k8s1 rc]# kubectl apply -f rc-upgrade.yaml 
replicationcontroller/rc-nginx created
service/svc-rc-nginx created

3.浏览器访问

4.模拟迭代,换镜像

# 改为v2版本
[root@k8s1 rc]# vi rc-upgrade.yaml
image: harbor.oslee.com/oslee-private/my-nginx:v2

# 重新执行apply
[root@k8s1 rc]# kubectl apply -f rc-upgrade.yaml 
replicationcontroller/rc-nginx configured
service/svc-rc-nginx unchanged

# 删除原有pod,rc会自动拉起新pod
[root@k8s1 rc]# kubectl get pod | awk 'NR>1 {print $1}' | xargs kubectl delete pod
pod "rc-nginx-5ftlk" deleted
pod "rc-nginx-fxfrj" deleted
pod "rc-nginx-sb2xk" deleted

5.浏览器查看,发现已升级

==============================至此,已成艺术===============================

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值