Centos7 k8s Replication副本控制器

一、k8s副本控制器

  Replication Controller (RC)是kubernetes 中的另一个核心概念,应用托管在kubernetes之后,kubernetes需要保证应用能够持续运行,这是RC的工作内容,它会确保任何时间kubernetes中都有指定数量的pod在运行。在此基础上,RC还提供了一些更高级的特性,比如滚动升级、升级回滚等。

  1、创建配置文件

复制代码

[root@k8s-master ~]# vim nginx-rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: nginx
spec:
replicas: 3
selector:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: 192.168.125.130:5000/nginx:1.19
ports:
- containerPort: 80

复制代码

  2、执行副本配置文件

[root@k8s-master ~]# kubectl create -f nginx-rc.yaml 
replicationcontroller "nginx" created

 replicationcontroller会再起三个pod,replicationcontroller会一直监控pod,一直保持3个,死一个,起一个,多一个,就自动杀死一个pod。

二、k8s lables标签管理

[root@k8s-master ~]# kubectl edit rc nginx                       手动修改pod配置文件
[root@k8s-master ~]# kubectl get all                             查看所有pod,带标签

 三、升级和降级

复制代码

[root@k8s-master ~]# docker pull nginx:1.13                                                 拉取镜像
[root@k8s-master ~]# docker tag docker.io/nginx:1.13 192.168.125.130:5000/nginx:1.13        打标签
[root@k8s-master ~]# docker push  192.168.125.130:5000/nginx:1.13                           推送至私有仓库
[root@k8s-master ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx 1/1 Running 0 1h
[root@k8s-master ~]# 
[root@k8s-master ~]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE
nginx 1/1 Running 0 1h 172.16.64.2 k8s-node2
[root@k8s-master ~]# curl -I 172.16.64.2
HTTP/1.1 200 OK
Server: nginx/1.19.0                                                                         查看版本为1.19版
Date: Wed, 10 Jun 2020 12:56:35 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 26 May 2020 15:00:20 GMT
Connection: keep-alive
ETag: "5ecd2f04-264"
Accept-Ranges: bytes

复制代码

  1、修改配置文件

复制代码

[root@k8s-master ~]# cp nginx-rc.yaml nginx1.13-rc.yaml 
[root@k8s-master ~]# vim nginx1.13-rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:
  name: nginx2
spec:
  replicas: 3
  selector:
     app: nginx2
  template:
     metadata:
       labels:
        app: nginx2
     spec:
       containers:
       - name: nginx2
         image: 192.168.125.130:5000/nginx:1.19                    镜像不能替换
         ports:
         - containerPort: 80
~                                                                                                                                     
~                                                                                                                                     
~                                                                                                                                     
~                                                                                                                                     
~                                                                                                                                     
~                                                                                                                                     
~                                                                                                                                     
~                                                                                                                                     
~                                                                                                                                     
~                                                                                                                                     
:%s#nginx#nginx2#g                       把nginx批量替换成nginx2 
[root@k8s-master ~]# vimdiff nginx1.13-rc.yaml nginx.yaml

复制代码

  2、降级

复制代码

[root@k8s-master ~]# kubectl rolling-update nginx -f nginx1.13-rc.yaml --update-period=10s                     降级间隔为10s
Created nginx2
Scaling up nginx2 from 0 to 3, scaling down nginx from 3 to 0 (keep 3 pods available, don't exceed 4 pods)
Scaling nginx2 up to 1
Scaling nginx down to 2
Scaling nginx2 up to 2
Scaling nginx down to 1
Scaling nginx2 up to 3
Scaling nginx down to 0
Update succeeded. Deleting nginx
replicationcontroller "nginx" rolling updated to "nginx2"
[root@k8s-master ~]# 

复制代码

  3、验证版本

复制代码

[root@k8s-master ~]# kubectl get pod -o wide
NAME           READY     STATUS    RESTARTS   AGE       IP            NODE
nginx          1/1       Running   0          3h        172.16.64.2   k8s-node2
nginx2-516gh   1/1       Running   0          2m        172.16.74.4   k8s-node1
nginx2-p56cf   1/1       Running   0          2m        172.16.64.4   k8s-node2
nginx2-v6t11   1/1       Running   0          1m        172.16.74.2   k8s-node1
[root@k8s-master ~]# curl -I 172.16.64.4
HTTP/1.1 200 OK
Server: nginx/1.13.12                                                       版本为1.13版
Date: Wed, 10 Jun 2020 14:56:28 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Mon, 09 Apr 2018 16:01:09 GMT
Connection: keep-alive
ETag: "5acb8e45-264"
Accept-Ranges: bytes

复制代码

注意:本文有不理解之处,加QQ:1300536862,探讨

推荐:需要租用云服务器,域名等其他服务的可以扫描下方二维码,云服务器免费领取使用,华为云服务:

        

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值