Pod与控制器的关系?
1)Controllers:在集群上管理和运行容器的对象。
2)通过label-selector相关联pod。
3)Pod通过控制器实现应用的运维,如伸缩,滚动升级等。
Deployment功能和应用场景?
1)管理无状态服务。
2)管理Pod和replicaset。
3)具备上线部署,副本设定,滚动升级,回滚等功能。
4)提供申明式更新,例如只哥更新一个新的Image。
应用场景:Web服务,微服务。
1、创建deployment
#kubectl create deployment web --image=nginx --dry-run -o yaml > web.yaml 通过命令创建yaml文件。
#kubeclt apply -f web.yaml
#kubeclt get deploy,pods
2、发布,暴露应用端口
#kubectl expose deployment web --port=80 --type=NodePort --target-port=8080 --name=web
#kubectl get service
3、升级
#kubectl set image deployment web java=nginx #镜像更新
#kubectl rollout status deployment/nginx #查看升级状态
#kubectl edit deployment/web
#kubectl edit svc/web
4、回滚
#kubectl rollout history deployment web #查看deployment的日志信息
#kubectl rollout undo deployment/web #回滚到上次个版本
#kubectl rollout undo deployment/web --revision=2 #回滚到指定版本
5、删除
#kubeclt delete deployment web #彻底删除,如果只删除容器不行。
6、扩容副本
#kubectl scale deployment web --replicas=5