控制器

命令式编程:需要按照逻辑结果一步一步写下来(过程需要详细)--create

生命式编程:想要什么,告诉计算机去实现--apply

1、RC(过去时)和RS(现在使用)

    RS和RC没有本质的区别,只是名字不同,并且RS支持标签选择

2、Deployment

      

       特点:回滚、继续、暂停、扩容和缩容

3、DaemonSet:确保全部Node上运行一个Pod的副本,删除

        DaemonSet将会删除它创建的Pod

4、Job:负责批处理任务,即仅执行一次的任务,他保证批处理任务的一个或多个pod成功结束

5、CronJob:在特定的时间循环创建Job,管理基于时间的Job

6、StatefulSet:是为了解决有状态服务的问题

HPA:控制控制器

 1、

 

2、创建deployment----replicaset----pod

    

    创建:

    kubectl apply -f deployment.yaml --record   (deployment控制器apply和create都可以使用,因为生命式编程建议使用create,--record可以记录命令,方便查询每次revision变化)

   扩容:

          kubectl scale deployment nginx-deployment --replicas=10  (扩容只是增加副本数目)

          或者 kubectl edit deployment nginx-deployment

   更新镜像:

       kubectl set image deployment/nginx-deployment nginx=hub.wangyu.com/library/myapp:v1

       更新镜像会更新原文件,导致RS会生成新的,pod会按照25%比例逐步迁移至新的RS

     回滚:

        kubectl rollout undo deployment/nginx-deployment  (自动回滚到上个版本)

      查看回滚状态:

        kubectl rollout status deployment nginx-deployment

       查看回滚的历史版本:

       kubectl rollout history deployment nginx-deployment

      使用参数指定某个历史版本:

      kubectl rollout undo deployment/nginx-deployment --to-revision=2 (2为history版本号)

     暂停回滚:

      kubectl rollout pause deployment/nginx-deployment

     暂停后恢复回滚功能:

      kubectl rollout resume deployment/nginx-deployment

    注:如果pod标签更改后将不属于之前创建的控制器,所以说如果被删除将不会被重建---------符合之前创建用户的期望副本数

3、cronjob

   

   等待创建并运行之后,可以通过kubectl logs pod 对比几个pod创建的时间都是隔一分钟

  

     

     

原文地址:https://www.cnblogs.com/jdwy24/p/12788041.html