Kubernetes控制器2

26 篇文章 0 订阅

主要内容

  1. 更新Deployment
  2. 回退Deployment
  3. 伸缩Deployment

一.更新Deployment

要更新Deployment,您可以使用kubectl apply命令或直接编辑Deployment的YAML文件并使用kubectl apply -f命令来应用更改。下面是更新Deployment的详细解释:

  1. 使用kubectl apply命令更新Deployment:
kubectl apply -f deployment.yml

这将使用deployment.yml文件中的定义来更新Deployment。如果Deployment已经存在,则会更新其配置,否则会创建一个新的Deployment。

  1. 直接编辑Deployment的YAML文件并使用kubectl apply -f命令更新:
kubectl edit deployment nginx-deployment

这将打开一个文本编辑器,允许您直接编辑Deployment的配置。您可以修改副本数量、容器镜像、端口映射等配置信息。保存并关闭编辑器后,Kubernetes将自动更新Deployment。

无论选择哪种方法,Kubernetes将根据您提供的更新内容自动执行所需的操作。它会创建新的ReplicaSet来管理新的Pod副本,并逐渐替换旧的Pod副本,以实现滚动更新的目的。这样可以确保应用程序在更新过程中保持可用性。

1.将deployment的镜像更改一次

代码如下(示例):
kubectl set image deployments/nginx-deployment nginx=nginx:1.16.1 --record
kubectl rollout status deployment/nginx-deployment

在这里插入图片描述

kubectl get deployments.apps,replicasets.apps,pods -l app=nginx

在这里插入图片描述

2.解释

以下是对每一行的详细解释:

kubectl set image deployments/nginx-deployment nginx=nginx:1.16.1 --record

这部分使用kubectl set image命令来更新Deployment中的容器镜像。deployments/nginx-deployment指定要更新的Deployment名称,nginx=nginx:1.16.1指定要更新的容器名称和新的镜像名称。--record选项用于记录此次更新的操作。

kubectl rollout status deployment/nginx-deployment

这部分使用kubectl rollout status命令来检查Deployment的滚动更新状态。deployment/nginx-deployment指定要检查的Deployment名称。该命令会输出滚动更新的状态信息,包括当前副本集的数量、可用副本的数量等。

kubectl get deployments.apps,replicasets.apps,pods -l app=nginx

这部分使用kubectl get命令来获取Deployment、ReplicaSet和Pod的状态信息。-l app=nginx选项用于筛选具有app=nginx标签的对象,并显示它们的详细信息。这将显示更新后的Deployment的状态,包括新的副本集和Pod的信息。


二.回退Deployment

要回退Deployment到先前的版本,您可以使用kubectl rollout undo命令。下面是回退Deployment的详细解释:

kubectl rollout undo deployment/nginx-deployment

这将使用kubectl rollout undo命令来回退Deployment到先前的版本。deployment/nginx-deployment指定要回退的Deployment名称。

Kubernetes将执行以下操作来回退Deployment:

  1. 创建一个新的ReplicaSet来管理先前版本的Pod副本。
  2. 逐渐替换当前正在运行的Pod副本,以实现回退的目的。
  3. 检查回退过程中的滚动更新状态,并在回退完成后输出相关信息。

您还可以使用--to-revision选项指定要回退到的特定版本。例如,回退到第2个修订版本的Deployment:

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

回退Deployment可以帮助您恢复到之前的稳定状态,以解决可能出现的问题或错误。在回退过程中,Kubernetes会确保应用程序的可用性,并逐步切换回先前的版本,以避免中断用户的访问。

1.如果更新时将镜像名称写错,比如 nginx:1.161,而不是 nginx:1.16.1,就会导致永远无法更新成功,这个时候就需要进行回退操作。

代码如下(示例):
kubectl set image deployments/nginx-deployment nginx=nginx:1.161 --record 
kubectl rollout status deployment/nginx-deployment

在这里插入图片描述

2.查看历史版本

代码如下(示例):
kubectl rollout history deployments/nginx-deployment
kubectl rollout history deployment.v1.apps/nginx-deployment --revision=3

在这里插入图片描述

3.回退到版本2

代码如下(示例):
kubectl rollout undo deployments/nginx-deployment --to-revision=2
kubectl rollout status deployment/nginx-deployment
kubectl get deployments.apps,replicasets.apps,pods -l app=nginx

在这里插入图片描述

4.解释

以下是对每一行的详细解释:

kubectl set image deployments/nginx-deployment nginx=nginx:1.161 --record

这部分使用kubectl set image命令来更新Deployment中的容器镜像。deployments/nginx-deployment指定要更新的Deployment名称,nginx=nginx:1.161指定要更新的容器名称和新的镜像名称。--record选项用于记录此次更新的操作。

kubectl rollout status deployment/nginx-deployment

这部分使用kubectl rollout status命令来检查Deployment的滚动更新状态。deployment/nginx-deployment指定要检查的Deployment名称。该命令会输出滚动更新的状态信息,包括当前副本集的数量、可用副本的数量等。

kubectl rollout history deployments/nginx-deployment

这部分使用kubectl rollout history命令来查看Deployment的更新历史。deployments/nginx-deployment指定要查看历史的Deployment名称。该命令会输出Deployment的历史记录,包括每个修订版本的编号、更新时间等。

kubectl rollout history deployment.v1.apps/nginx-deployment --revision=3

这部分使用kubectl rollout history命令来查看特定修订版本的Deployment历史。deployment.v1.apps/nginx-deployment指定要查看历史的Deployment名称和API版本,--revision=3指定要查看的修订版本号。该命令会输出特定修订版本的Deployment的详细信息。

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

这部分使用kubectl rollout undo命令来回退Deployment到指定的修订版本。deployments/nginx-deployment指定要回退的Deployment名称,--to-revision=2指定要回退到的修订版本号。

kubectl rollout status deployment/nginx-deployment

这部分使用kubectl rollout status命令来检查Deployment的滚动更新状态。deployment/nginx-deployment指定要检查的Deployment名称。该命令会输出滚动更新的状态信息,包括当前副本集的数量、可用副本的数量等。这将显示回退后Deployment的状态。

kubectl get deployments.apps,replicasets.apps,pods -l app=nginx

这部分使用kubectl get命令来获取Deployment、ReplicaSet和Pod的状态信息。-l app=nginx选项用于筛选具有app=nginx标签的对象,并显示它们的详细信息。这将显示更新或回退后的Deployment的状态,包括新的副本集和Pod的信息。

三.伸缩Deployment

伸缩Deployment是指根据需求增加或减少Pod副本的数量,以实现应用程序的水平扩展或收缩。Kubernetes提供了一种简单的方式来伸缩Deployment,即使用kubectl scale命令。

以下是伸缩Deployment的详细解释:

kubectl scale deployment/nginx-deployment --replicas=5

这部分使用kubectl scale命令来伸缩Deployment。deployment/nginx-deployment指定要伸缩的Deployment名称,--replicas=5指定要设置的Pod副本数量为5。执行此命令后,Kubernetes会创建或删除Pod副本,以使Deployment中的Pod副本数量达到指定的数量。

kubectl get deployment nginx-deployment

这部分使用kubectl get命令来获取Deployment的状态信息。nginx-deployment是要获取状态信息的Deployment的名称。执行此命令后,将显示Deployment的详细信息,包括副本数量、可用副本数量等。您可以验证Deployment是否已成功伸缩到所需的副本数量。

伸缩Deployment可以根据负载需求动态调整Pod副本的数量,以适应应用程序的需求变化。这可以帮助您实现应用程序的弹性和高可用性。

1.将指定的deployment副本更改为5。

代码如下(示例):
kubectl scale deployments/nginx-deployment --replicas=5
kubectl get deployments.apps,replicasets.apps,pods -l app=nginx

在这里插入图片描述

2.删除deployment

代码如下(示例):
kubectl delete deployments.apps nginx-deployment
kubectl get deployments.apps,replicasets.apps,pods -l app=nginx

在这里插入图片描述

3.解释

下面是对每个命令的详细解释:

kubectl scale deployments/nginx-deployment --replicas=5

这部分使用kubectl scale命令来伸缩Deployment。deployments/nginx-deployment指定要伸缩的Deployment名称,--replicas=5指定要设置的Pod副本数量为5。执行此命令后,Kubernetes会创建或删除Pod副本,以使Deployment中的Pod副本数量达到指定的数量。

kubectl get deployments.apps,replicasets.apps,pods -l app=nginx

这部分使用kubectl get命令来获取Deployment、ReplicaSet和Pod的状态信息。-l app=nginx选项用于筛选具有app=nginx标签的对象,并显示它们的详细信息。执行此命令后,将显示更新后的Deployment、ReplicaSet和Pod的状态信息,包括副本数量、可用副本数量等。

kubectl delete deployments.apps nginx-deployment

这部分使用kubectl delete命令来删除Deployment。deployments.apps nginx-deployment指定要删除的Deployment名称。执行此命令后,Kubernetes将删除指定的Deployment及其相关的ReplicaSet和Pod。

kubectl get deployments.apps,replicasets.apps,pods -l app=nginx

这部分使用kubectl get命令来获取Deployment、ReplicaSet和Pod的状态信息。-l app=nginx选项用于筛选具有app=nginx标签的对象,并显示它们的详细信息。执行此命令后,将显示删除后的Deployment、ReplicaSet和Pod的状态信息。您可以验证Deployment是否已成功删除。

通过使用这些kubectl命令,您可以方便地伸缩Deployment、查看其状态信息,以及删除Deployment。这些命令使您能够灵活地管理和操作Kubernetes集群中的应用程序。


总结

以上是今天要讲的内容,学到了更新Deployment;回退Deployment;伸缩Deployment。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

K要努力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值