您现在的位置是:主页 > 数据库技术 > 数据库技术

kubernetes中怎么验证deployment

IDCBT2022-01-01服务器技术人已围观

简介这篇文章主要讲解了“kubernetes中怎么验证deployment”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“kubernetes中怎么验证deploym

这篇文章主要讲解了“kubernetes中怎么验证deployment”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“kubernetes中怎么验证deployment”吧!

k8s通常不会直接创建pod,而是通过controller来管理pod,以达到副本管理、滚动升级和集群级别的自愈能力。controller包括Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job 等

1.kubectl run创建的pod没有自愈功能,因为该pod没有被controller所管理。

2.Deployment是最常用的部署无状态服务的controller,用于管理replicaset和更新pod

3.创建Deployment后,Deployment contorller将立即创建一个ReplicaSet副本集,并由ReplicaSet创建所需要的pod。更新deployment时,deployment控制器将为deployment创建一个新的ReplicaSet副本集,并逐步在新的副本集中创建pod;在旧的的副本集中删除pod,达到滚动更新的效果。

4.当且仅当Deployment的Pod template字段的内容发生变更时,Depoyment的发布更新才会触发。

创建deployment

#命令行直接运行

kubectl create deployment nginx --image=nginx

#通过配置文件yaml创建

kubectl create deployment nginx --image=nginx --dry-run='client' -o yaml > dep.yaml

kubectl apply -f dep.yaml

#删除deployment

kubectl delete deployment nginx

kubectl delete -f dep.yaml

#验证deployment管理的pod具有自愈性

kubectl run起一个pod, kubectl create deployment起一个controller管理的pod

kubectl get pods -o wide 检查pod分布的node

kubectl drain node2 将分布到node2上的pod驱逐

kubectl get pods -o wide 可看到node2被禁止调度,且controller管理的pod迁移到node1上运行了,而kubectl run的pod已被删除

kubectl get rs 可看到对应的replicaset controller

#查看deployment的具体配置

kubectl edit deployment nginx

#将pod扩展为2

kubectl scale deployment nginx --replicas=2

#查看deployment nginx的滚动更新状态

kubectl rollout status deployment nginx

#查看deployments

kubectl get deployments

#查看replicasets

kubectl get rs -w

#查看deployment的events

kubectl describe deployment

#查看更新历史

kubectl rollout history deployment nginx

#回滚到前一个版本,不能回滚(rollback)一个已暂停的 Deployment,除非您继续(resume)该 Deployment

kubectl rollout undo deployment nginx

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

#暂停更新

kubectl rollout pause deployment nginx

#恢复更新

kubectl rollout resume deployment nginx

#导出deployment的配置文件

kubectl get deployment deploy_name -o yaml > deployment.yaml

#删除 ReplicaSet 时,将不删除其从属对象

kubectl delete replicaset my-repset --cascade=false

用service暴露pod服务

标签:

很赞哦! ()

本栏推荐