ToB企服应用市场:ToB评测及商务社交产业平台
标题:
【kubernetes】kubernetes Deployment 详解
[打印本页]
作者:
王海鱼
时间:
2024-8-30 04:51
标题:
【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
复制代码
2、尝试删除此中一个副本并查看结果
kubectl delete pod httpd-757fb56c8d-5jnb7 -n zs
复制代码
3、删除所有副本并查看结果
kubectl delete deployments.apps httpd -n zs
复制代码
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
复制代码
kubectl expose deployment nginx --port=81 --target-port=80 -n zs --name=nginxzs-service --type=NodePort
复制代码
curl -I 192.168.99.172:31392
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4