系列:6、Kubernetes 的升级与部署策略

Kubernetes 的升级与部署策略

以下将一起介绍Kubernetes的升级与部署策略

1、节点升级和驱逐(Node Upgrade and Eviction)

您将如何升级节点通常取决于您如何设置集群。 如果使用 kubeadm 工具设置,则需要手动升级节点。 为此,您需要在每个节点上升级 kubeadm 和 kubelet 版本。 所以基本上你必须 ssh 到你想要升级的节点,然后:

对于 kubeadm:

apt-get upgrade -y kubeadm=1.23.4
kubeadm upgrade apply v1.23.4

对于 kubelet :

apt-get upgrade -y kubelet=1.23.4
systemctl restart kubelet

这应该在每个节点上重复以上操作,当然包括主(控制平面)节点。 更多信息请参考文档:https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/

在升级期间,我们不希望在该特定节点上调度任何 Pod,因此我们需要将其标记为不可调度。 为此:

kubectl cordon < node name >

但是如果我们想要升级节点并且有 pod 在它们上面运行呢? 然后我们首先需要排空节点。

排空一个节点:

kubectl drain <node name>

这会将 Pod 移动到另一个工作节点(如果它是可调度的,则移动到主节点)并将其标记为不可调度(即 cordon)。

升级后,我们可以通过以下方式再次将其标记为可调度:

kubectl uncordon <node name>

2、部署升级(Deployment Upgrade)

想象一下,我们有一个应用程序,我们最近发布了它的更新版本。 或者在我们的应用程序中,我们正在使用开发人员最近更新的第三方应用程序。 在这两种方式中,在某些时候,我们也希望更新我们的 Kubernetes 部署。

让我们通过一个例子来讨论如何做到这一点。 首先,让我们创建我们的 nginx 部署。

kubectl create deployment nginx --image=nginx:1.14.2

这里我使用了 nginx 1.14.2 镜像。 出于某种原因,我想更新此镜像。 我们可以通过编辑部署的镜像参数来做到这一点。

kubectl set image deployment nginx nginx=nginx:1.16.1

通常,此命令与“ --record ”标志一起使用,以便将其显示在滚动历史(rollout hisotry)记录中。

通过describe 查看最新的镜像

kubectl describe pod nginx

同时,我们也可以查看 deployment历史

kubectl rollout history deployment nginx

如果新映像不能与其他产品无法兼容,或者由于某些其他原因我们想要回滚升级:

kubectl rollout undo deployment nginx

系列:1、Kubernetes 简介

系列:2、创建Kubernetes集群

系列:3、Kubectl 的使用

系列:4.1、Kubernetes 对象

系列:4.2、Kubernetes 工作负载

系列:4.3、Kubernetes 服务

系列:4.4、Kubernetes 存储

系列:4.5、Kubernetes 配置对象

系列:5、Kubernetes中的调度

系列:6、Kubernetes 的升级与部署策略(本文)

系列:7、 Kubernetes 安全性

系列:8、部署一个全栈应用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值