王海鱼 发表于 2024-8-30 04:51:21

【kubernetes】kubernetes Deployment 详解

kubernetes Deployment 详解

更新/回滚/缩放/停息/恢复部署操纵

Kubernetes是一种用于容器编排和管理的开源平台。在Kubernetes中,使用Deployment对象来界说和管理应用步伐的部署。
更新部署操纵:
要更新Deployment对象,可以通过修改Deployment的界说文件或使用kubectl命令举行更新。更新可以包罗更改容器的镜像、情况变量、资源限定等。

[*]使用kubectl命令举行更新:kubectl apply -f deployment.yaml
这将查抄Deployment对象的界说文件并应用任何更改。
回滚部署操纵:
假如更新后的部署出现问题,可以回滚到先前的版本。Kubernetes会自动生存近来几个Deployment版本的状态。

[*]使用kubectl命令举行回滚:kubectl rollout undo deployment/<deployment-name>
这将回滚到上一个版本。
缩放部署操纵:
可以通过修改Deployment的副本数来缩放应用步伐的部署。

[*]使用kubectl命令举行缩放:kubectl scale deployment/<deployment-name> --replicas=<new-replica-count>
这将将Deployment的副本数更改为指定的数目。
停息部署操纵:
在某些情况下,可能需要停息Deployment的更新。Kubernetes提供了停息和恢复部署的功能。

[*]使用kubectl命令举行停息:kubectl rollout pause deployment/<deployment-name>
这将停息Deployment的更新。
恢复部署操纵:
在停息部署后,可以恢复更新。

[*]使用kubectl命令举行恢复:kubectl rollout resume deployment/<deployment-name>
这将恢复Deployment的更新。
总结:
通过使用kubectl命令或修改Deployment的界说文件,可以举行更新、回滚、缩放、停息和恢复部署操纵。这些操纵可以资助您更好地管理和控制应用步伐的部署和更新。
发布计谋

在发布应用步伐到Kubernetes集群时,可以采用以下几种发布计谋:

[*] 重复集(ReplicaSet):使用ReplicaSet控制器可以创建和管理多个副本(Pod)的集合。通过指定副本数,可以确保在集群中运行指定命量的Pod。
[*] 扩展和缩小:Kubernetes可以根据应用步伐的负载自动扩展和缩小副本数。可以使用水平自动扩展(Horizontal Pod Autoscaler)来监控应用步伐的负载并自动调整副本数。
[*] 滚动升级(Rolling Update):Kubernetes支持滚动升级应用步伐,可以逐步替换旧版本的Pod为新版本。如许可以确保应用步伐在升级过程中不中断。
[*] 蓝绿部署(Blue/Green Deployment):蓝绿部署是一种发布计谋,可以在Kubernetes集群中同时运行两个版本的应用步伐。通过将流量渐渐切换到新版本的应用步伐,可以实现无缝的升级。
[*] 金丝雀部署(Canary Deployment):金丝雀部署是一种渐进式发布计谋,可以在部署新版本应用步伐之前先将一小部门流量引导到新版本,以测试新版本的稳定性和性能。
[*] 假造DNS(Virtual DNS):Kubernetes可以使用假造DNS(例如,Kubernetes DNS)来管理应用步伐的访问。通过使用假造DNS,可以轻松地将请求路由到正确的服务和Pod。
以上是一些常见的Kubernetes发布计谋,可以根据具体的需求选择合适的发布计谋来管理和部署应用步伐。
下面是一些常见的k8s发布计谋及其命令。

[*] Rolling Update(逐步更新):

[*]逐步更新是最常见的发布计谋,它会逐步替换旧的Pod副本为新的Pod副本。
[*]命令:kubectl set image deployment/<deployment-name> <container-name>=<new-image>
[*]该命令将会更新指定Deployment中的所有Pod副本的容器镜像。

[*] Blue-Green Deployment(蓝绿部署):

[*]蓝绿部署通过将新的版本部署在一个独立的情况中,然后将流量切换到新的情况,从而实现零停机的部署。
[*]命令:kubectl apply -f <new-deployment.yaml>
[*]该命令将会创建一个新的Deployment,然后你可以根据需要将流量切换到新的Deployment。

[*] Canary Deployment(金丝雀部署):

[*]金丝雀部署是渐渐将新版本的Pod渐渐引入到现有的情况中,以低落部署风险。
[*]命令:

kubectl create deployment nginx --image=nginx:1.14 -n zs --replicas=3
kubectl set image deployment nginx nginx=nginx:1.16 -n zs && kubectl rollout pause deployment nginx -n zs


[*]该命令将会更新指定Deployment中的一部门Pod副本的容器镜像。

[*] Rollback(回滚):

[*]假如发布出现问题,你可以回滚到之前的版本。
[*]命令:kubectl rollout undo deployment/<deployment-name>

[*]该命令将会回滚指定Deployment的更新。

[*] Pause and Resume(停息和恢复):

[*]假如你希望先停息发布更新,然后再恢复,可以使用停息和恢复命令。
[*]命令:kubectl rollout pause deployment/<deployment-name>
和 kubectl rollout resume deployment/<deployment-name>

[*]pause命令将会停息指定Deployment的更新,而resume命令将会恢复更新。

这些是一些常见的k8s发布计谋及其命令。根据实际需求,你可以选择得当你的发布计谋来部署和更新你的应用步伐。
1、在zs定名空间下创建3个httpd副本并查看结果

kubectl create ns zs
kubectl create deployment httpd --image=httpd -n zs --replicas=3
kubectl get po -n zs
https://i-blog.csdnimg.cn/direct/d7b2cebfec254b5a83965dc30bac8812.png
2、尝试删除此中一个副本并查看结果

kubectl delete pod httpd-757fb56c8d-5jnb7-n zs
https://i-blog.csdnimg.cn/direct/96d5fe67fd7147f88dffc3cbe418d590.png
https://i-blog.csdnimg.cn/direct/da33ac12cb3f4f0d9632193423c1765a.png
3、删除所有副本并查看结果

kubectl delete deployments.apps httpd-n zs
https://i-blog.csdnimg.cn/direct/68942e2782b34e3d98e17eb334e4a22d.png
4、使用k8s做金丝雀发布测试

kubectl create deployment nginx --image=nginx:1.14 -n zs --replicas=3
kubectl set image deployment nginx nginx=nginx:1.16 -n zs && kubectl rollout pause deployment nginx -n zs
另一个终端
kubectl get po -n zs -w
https://i-blog.csdnimg.cn/direct/dcc1eac1f73b40f18e73cca1664b4b7e.png
https://i-blog.csdnimg.cn/direct/f729b1798e294fdb97dc669428c82eb4.png
kubectl expose deployment nginx --port=81 --target-port=80 -n zs --name=nginxzs-service --type=NodePort
https://i-blog.csdnimg.cn/direct/1de59e10b840485a91fe275eb896da13.png
curl -I 192.168.99.172:31392
https://i-blog.csdnimg.cn/direct/b9f54aeeaac04bbeba39b233e719499c.png
https://i-blog.csdnimg.cn/direct/14bb141fd00f41cdba4fb067f8d39f04.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【kubernetes】kubernetes Deployment 详解