命令式编程:需要按照逻辑结果一步一步写下来(过程需要详细)--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创建的时间都是隔一分钟