kubernetes基础篇 —— 控制器

控制器

Pod 的分类:

  • 自主式 Pod:Pod 退出后不会被创建
  • 控制器管理的 Pod:在控制器的生命周期里,始终要维持 Pod 的副本数目

控制器类型:

  • Replication Controller和ReplicaSet
  • Deployment
  • DaemonSet
  • StatefulSet
  • Job
  • CronJob
  • HPA全称Horizontal Pod Autoscaler

Replication Controller和ReplicaSet

  • ReplicaSet 是下一代的 Replication Controller,官方推荐使用ReplicaSet
  • ReplicaSet 和 Replication Controller 的唯一区别是选择器的支持,ReplicaSet 支持新的基于集合的选择器需求
  • ReplicaSet 确保任何时间都有指定数量的 Pod 副本在运行
  • 虽然 ReplicaSets 可以独立使用,但今天它主要被Deployments 用作协调 Pod 创建、删除和更新的机制

Deployment

  • Deployment 为 Pod 和 ReplicaSet 提供了一个申明式的定义方法
  • 典型的应用场景
    1. 用来创建Pod和ReplicaSet
    2. 滚动更新和回滚
    3. 扩容和缩容
    4. 暂停与恢复

DaemonSet

  • DaemonSet 确保全部(或者某些)节点上运行一个 Pod 的副本。当有节点加入集群时, 也会为他们新增一个 Pod 。当有节点从集群移除时,这些Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod
  • DaemonSet 的典型用法:
    1. 在每个节点上运行集群存储 DaemonSet,例如 glusterd、ceph
    2. 在每个节点上运行日志收集 DaemonSet,例如 fluentd、logstash
    3. 在每个节点上运行监控 DaemonSet,例如 Prometheus Node Exporter、zabbix agent等
  • 一个简单的用法是在所有的节点上都启动一个 DaemonSet,将被作为每种类型的 daemon 使用
  • 一个稍微复杂的用法是单独对每种 daemon 类型使用多个 DaemonSet,但具有不同的标志, 并且对不同硬件类型具有不同的内存、CPU 要求

StatefulSet

  • StatefulSet 是用来管理有状态应用的工作负载 API 对象。实例之间有不对等关系,以及实例对外部数据有依赖关系的应用,称为“有状态应用”
  • StatefulSet 用来管理 Deployment 和扩展一组 Pod,并且能为这些 Pod 提供序号和唯一性保证
  • StatefulSets 对于需要满足以下一个或多个需求的应用程序很有价值:
    1. 稳定的、唯一的网络标识符
    2. 稳定的、持久的存储
    3. 有序的、优雅的部署和缩放
    4. 有序的、自动的滚动更新

Job

  • 执行批处理任务,仅执行一次任务,保证任务的一个或多个Pod成功结束

CronJob

  • Cron Job 创建基于时间调度的 Jobs
  • 一个 CronJob 对象就像 crontab (cron table) 文件中的一行,它用 Cron 格式进行编写,并周期性地在给定的调度时间执行 Job

HPA

  • 根据资源利用率自动调整service中Pod数量,实现Pod水平自动缩放

ReplicaSet控制器

在这里插入图片描述

 kubectl create -f replicaset-test.yaml
 kubectl get pod -o wide

在这里插入图片描述

Deployment控制器

在这里插入图片描述

kubectl create -f deployment-test.yaml
kubectl get pod -o  wide
kubectl get deployments.apps deployment-nginx
kubectl get deployments.apps -o wide

在这里插入图片描述
缩容

kubectl scale deployment deployment-nginx --replicas=2 --record

在这里插入图片描述
更新

kubectl set image deployment deployment-nginx nginx=nginx:v1 --record

在这里插入图片描述
查看历史版本

kubectl rollout history deployment

在这里插入图片描述
回滚

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

在这里插入图片描述
回滚状态

kubectl rollout status deployment deployment-nginx

在这里插入图片描述

DaemonSet控制器

在这里插入图片描述

kubectl create -f daemonset-test.yaml
kubectl get pod -o wide
kubectl get daemonsets.apps -o wide

在这里插入图片描述

Job控制器

在这里插入图片描述

cronjob控制器

在这里插入图片描述

kubectl create -f cronjob-test.yaml
kubectl get cronjobs.batch
kubectl get pod
kubectl logs cronjob-example-1593150780-vg4lj

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值