【kubernetes】kubernetes Deployment 详解

打印 上一主题 下一主题

主题 531|帖子 531|积分 1593

kubernetes Deployment 详解

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

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

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

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

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

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

  • 使用kubectl命令举行恢复:
    1. 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渐渐引入到现有的情况中,以低落部署风险。
    • 命令:

  1. kubectl create deployment nginx --image=nginx:1.14 -n zs --replicas=3
  2. 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副本并查看结果

  1. kubectl create ns zs  
  2. kubectl create deployment httpd --image=httpd -n zs --replicas=3
  3. kubectl get po -n zs
复制代码

2、尝试删除此中一个副本并查看结果

  1. kubectl delete pod httpd-757fb56c8d-5jnb7  -n zs
复制代码


3、删除所有副本并查看结果

  1. kubectl delete deployments.apps httpd  -n zs
复制代码

4、使用k8s做金丝雀发布测试

  1. kubectl create deployment nginx --image=nginx:1.14 -n zs --replicas=3
  2. kubectl set image deployment nginx nginx=nginx:1.16 -n zs && kubectl rollout pause deployment nginx -n zs
复制代码
另一个终端
  1. kubectl get po -n zs -w
复制代码


  1. kubectl expose deployment nginx --port=81 --target-port=80 -n zs --name=nginxzs-service --type=NodePort
复制代码

  1. curl -I 192.168.99.172:31392
复制代码



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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王海鱼

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表