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

2023-11-05

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、部署一个全栈应用

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

系列:6、Kubernetes 的升级与部署策略 的相关文章

随机推荐

  • MQ 入门实践

    MQ Message Queue 消息队列 FIFO 结构 例如电商平台 在用户支付订单后执行对应的操作 优点 异步 削峰 解耦 缺点 增加系统复杂性 数据一致性 可用性 JMS Java Message Service Java消息服务
  • ajax详细用法

    一 基础知识 1 首先让我们了解ajax 通过在后台与服务器进行少量数据交换 AJAX 可以使网页实现异步更新 这意味着可以在不重新加载整个网页的情况下 对网页的某部分进行更新 2 ajax的核心步骤 创建XMLHttpRequest对象
  • Android读取联系人的姓名及电话号码

    Android中联系人的信息是通过ContentProvider来供外部应用获取的 我们使用时只需根据系统联系人ContentProvider的Uri即可获取所需数据 下面讲解如何获取联系人的姓名及电话号码 别的数据如邮箱 照片等数据的获取
  • flutter开发中常用的dart插件

    本文罗列了一些在用flutter进行移动开发时经常会用到的插件 flutter插件官网地址 https pub dartlang org packages 1 image picker 一个可以从图库选择图片 并可以用相机拍摄新照片的flu
  • 关于Java中序列化Serializable的简单注解

    最近学校的实训课程在学习ssm框架 其中有一点实体类里面实现了Serializable序列化的方法 查了一下 仍然有点模糊 序列化和数据库中的字段有关 方便数据存储和传输 import java io Serializable public
  • 计算机专业毕业设计题目大全

    计算机专业毕业设计题目大全 一 ASP类计算机专业毕业设计题目 文章目录 计算机专业毕业设计题目大全 一 ASP类计算机专业毕业设计题目 ASP NET类计算机专业毕业设计题目 Delphi类计算机专业毕业设计题目 JAVA类计算机专业毕业
  • 2020 AI产业图谱启动,勾勒中国AI技术与行业生态

    2020年国务院政府工作报告 提出 重点支持 两新一重 建设 其中 两新一重 中的第一个 新 就是新基建 而人工智能是新基建的重要组成部分 新基建首次被纳入政府工作报告后 各大科技厂商纷纷押注 重金投向 新基建 例如腾讯已经宣布未来五年将投
  • 网络问题导致的github提交失败解决方案

    参考文章 github push过程中的timeout问题 码农家园 1 打开 C Windows System32 drivers etc 下的hosts文件 2 访问 github global ssl Fastly net Serve
  • 质量成本(一致性成本和非一致性成本)

    项目管理知识体系指南第四版 PMBOK2008 8 1 2 2 质量成本 质量成本包括在产品生命周期中为预防不符合要求 为评价产品或服务是否符合要求 以及因未达到要求 而发生的所有成本 质量成本 一致性成本和非一致性成本 一致性成本包括预防
  • 机器学习环境的搭建(miniconda+pycharm)

    一 Python语言环境的安装 miniconda 1 软件安装 直接去官网下载Miniconda速度太慢 建议去清华开源找一个替代的镜像下载 并且在清华该网站上面 还有附带的一些镜像使用帮助 2 anaconda与miniconda的区别
  • STM32CubeMx采集多路ADC

    转载于https blog csdn net qq 24815615 article details 70227385 原文地址https www eemaker com stm32cubemxadc html 单片机为 STM32F103
  • IntelliJ IDEA 好用的插件

    IntelliJ IDEA 好用的插件 1 Maven Helper Maven Helper插件可以方便显示maven的依赖树和方便解决依赖冲突问题 2 Alibaba Java Coding Guidelines Alibaba Jav
  • @FeignClient Get请求、实体参数,自动转POST请求问题

    问题 报错提示不支持POST请求 解决 使用SpringCloud2 1以上版本提供的 SpringQueryMap注解标注在实体对象参数后解决 导入注解包路径 import org springframework cloud openfe
  • lapack安装 matlab,调用 LAPACK 和 BLAS 函数

    将参数从 Fortran 程序传递给 Fortran 函数 您可以从 Fortran MEX 文件中调用 LAPACK 和 BLAS 函数 以下示例使用两个矩阵 并通过调用 BLAS 例程 dgemm 将这两个矩阵相乘 要运行该示例 请将代
  • java生成excel文件并写入数据(附csv)

    写一个超级简单粗暴的小代码了 直接看吧 public static void createxlsFile String filePath String fileName String suffix Map
  • 析构函数详解

    析构函数详解 析构函数的概念 前面通过构造函数的学习 我们知道一个对象是怎么来的 那一个对象又是怎么没呢的 析构函数 与构造函数功能相反 析构函数是完成对象的销毁 局部对象销毁工作是由编译器完成的 而对象在销毁时会自动调用析构函数 完成类的
  • 打砖块游戏实验报告Android,增强学习系列之(三):实现一个打砖块的游戏

    1 Acknowledgement 本篇文章中神经网络的结构主要来自于DeepMind的这篇论文 https www cs toronto edu vmnih docs dqn pdf 2 实现效果 我们要实现的这个游戏 在openai的g
  • 服务器虚拟环境的搭建

    pip 清华镜像 pip install tensorflow i https pypi tuna tsinghua edu cn simple cuda 查看cuda 版本 cat usr local cuda version txt c
  • 常用采样方法

    常用采样方法 最近在学习 MCMC 一种特殊的采样方法 顺便把其他常用的方法了解了一下 为什么要采样 很多问题 我们只需要使用数学解析的方法即可解决 例如对 f x 做积分 如果 f x x 2 那么直接积分就行 很简单 若f x 是标准正
  • 系列:6、Kubernetes 的升级与部署策略

    Kubernetes 的升级与部署策略 以下将一起介绍Kubernetes的升级与部署策略 1 节点升级和驱逐 Node Upgrade and Eviction 您将如何升级节点通常取决于您如何设置集群 如果使用 kubeadm 工具设置