Controller(Deployment)升级回滚 弹性伸缩 一次性任务 定时任务

1、什么是controller?

在集群上管理和运行容器的对象。

2、Pod和Controller的关系

Pod是通过Controller实现应用的运维,比如伸缩、滚动升级等。

Pod和Controller之间通过label标签建立关系 selector

3、deployment应用场景

* 部署无状态应用

* 管理Pod和ReplicaSet

* 部署,滚动升级等功能

** 应用场景:web服务,微服务

4、使用deployment部署应用

(1)导出yaml文件

 (2)使用yaml部署文件

 (3)对外发布(暴露对外端口号)

kubectl expose deployment web --port...

5、应用升级回滚和弹性伸缩

kubectl set image deployment nginx-deployment nginx=nginx:1.15 # 将应用升级到1.15

现在下载1.15,但是1.14并不停止执行,下载好之后,再进行替换。

查看是否升级成功的命令:

kubectl rollout status deployment nginx-deployment

查看升级的历史

kubectl rollout history deployment nginx-deploymen

回滚到上一个版本

kubectl rollout undo deployment nginx-deployment

回滚到指定版本

kubectl rollout undo deployment nginx-deployment --to-revision=2

弹性伸缩

kubectl scale deployment nginx-deployment --replicas=3

6、确保所有的node运行同一个pod一次性任务和定时任务

部署守护进程DaemonSet

* 在每个node上运行一个pod,新加入的node也同样运行一个pod

*  例子:在每个node节点安装数据采集工具

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: ds-test
  labels:
    app: filebeat
spec:
  selector:
    matchLabels:
      app: filebeat
  template:
    metadata:
      labels:
        app: filebeat
    spec:
      containers:
      - name: logs
        image: nginx
        ports:
        - containerPort: 80
        volumeMounts:
        - name: varlog
          mountPath: /tmp/log
      volumes:
      - name: varlog
        hostPath:
          path: /var/log

进入某一个pod可以看到日志信息

4、 job(一次性任务)

apiVersion: batch/v1
kind: Job
metadata:
  name: pi
spec:
  template:
    spec:
      containers:
      - name: pi     # 计算3.14圆周率
        image: perl
        command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
      restartPolicy: Never
  backoffLimit: 4         # 失败的话,需要重启多少次 默认是6

5、cronjob(定时任务)

apiVersion: batch/v1beta1
kind: CronJob     # 定时任务
metadata:
  name: hello
spec:
  schedule: "*/1 * * * *" # cron表达式 每隔一分钟执行一次
  jobTemplate:
     spec:
       template:
         spec:
           containers:
           - name: hello
             image: busybox
             args:
             - /bin/sh
             - -c
             - date; echo Hello from the Kubernetes cluster
           restartPolicy: OnFailure

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值