发布时间: 2023-9-13 文章作者: myluzh 分类名称: Kubernetes 朗读文章
0x01 概述和应用场景
1.什么是Controller?
*在集群上管理和运行容器的对象
2.Pod跟Controller的关系?
*Pod是通过Controller来实现应用的运维(比如伸缩,滚动升级等)
*Pod和Controller之间通过label标签建立关系(selector)
3.Deployment应用场景
*部署无状态应用(应用场景:web服务 微服务)
*管理Pod和ReplicaSet
*部署滚等升级等功能
0x02 发布应用
# 1.导出yaml文件 [root@master deployment]# kubectl create deployment web --image=nginx --dry-run=client -o yaml > web.yaml # 2.通过yaml部署 [root@master deployment]# kubectl apply -f web.yaml # 3.生成 对外暴露端口svc yaml [root@master deployment]# kubectl expose deployment web --port=80 --type=NodePort --target-port=80 --name=web1 -o yaml > web-svc.yaml # 4.应用svc yaml [root@master deployment]# kubectl apply -f web-svc.yaml # 5.查看svc端口号 [root@master deployment]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE web1 NodePort 10.0.0.59 <none> 80:39098/TCP 3m31s
0x03 升级回滚和弹性伸缩
# 应用升级 -> 修改镜像tag [root@master deployment]# kubectl set image deployment web nginx=nginx:1.15 deployment.apps/web image updated # 查看升级状态 [root@master deployment]# kubectl rollout status deployment web deployment "web" successfully rolled out # 查看历史版本 [root@master deployment]# kubectl rollout history deployment web deployment.apps/web REVISION CHANGE-CAUSE 1 <none> 2 <none> # 回滚到上一个版本 [root@master deployment]# kubectl rollout undo deployment web deployment.apps/web rolled back # 弹性伸缩 修改pod数量 [root@master deployment]# kubectl scale deployment web --replicas=3 deployment.apps/web scaled
标签: k8s controller deployment
发表评论