k8s-09-Deployment

news/2024/7/4 23:58:08/文章来源:https://www.cnblogs.com/colasdn/p/18278269

Deployment

  1. 微服务化:将一个大规模系统拆分成各个独立运行的组件

  2. 更新 pod:

    • 直接删除所有现有的 pod, 然后创建新的 pod。
    • 先创建新的 pod, 并等待它们成功运行之后, 再删除旧的 pod。
    • 按顺序创建新的 pod, 然后逐渐删除旧的 pod。
  3. 第 1 种会导致应用程序在一定的时间内不可用。2、3 种需要支持两个版本同时对外提供服务。如果你的应用程序使用数据库存储数据, 那么新版本不应该对原有的数据格式或者数据本身进行修改, 从而导致之前的版本运行异常。

  4. kubectl set selector 命令来修改 Service 的 pod 选择器

  5. 滚动更新

    kubectl rollout <old-pod-name> <new-pod-name> --image=<image-version>
    # 伸缩的请求是由 kubectl 客户端执行的,而不是由 Kubemetes master 执行的。
    
  6. 在使用 Deployment 时, 实际的 pod 是由 Replicaset 创建和管理的, 而不是由 Deployment 直接创建和管理

  7. 创建 Deployment

    kubectl .... --record
    # 记录历史版本号
    
  8. 查看 Deployment 信息

    kubectl describe deploy <deploy-name>
    kubectl rollout status deploy <deploy-name>
    
  9. 默认策略是执行滚动更新(策略名为 RollingUpdate )。另一种策略为 Recreate,它会一次性删除所有旧版本的pod, 然后创建新的 pod, 整个行为类似于修改 Replication Controller 的 pod 模板, 然后删除所有的 pod。

  10. kubectl patch 修改单个或者少量资源属性

    kubectl patch deployment kubia -p '{"spec": {"minReadySeconds": 10}}'
    
  11. 触发 Deployment 滚动更新

    kubectl set image deploy <deployment-name> <image-name>=<image:version>
    kubectl set image deployment kubia nodejs=luksa/kubia:v2
    
  12. 如果 Deployment 中的 pod 模板引用了一个 ConfigMap (或 Secret ), 那么更改 ConfigMap 资原本身将不会触发升级操作。如果真的需要修改应用程序的配置并想触发更新的话, 可以通过创建一个新的 ConfigMap 并修改pod 模板引用新的 ConfigMap。

  13. 回滚升级

    kubectl rollout undo deploy <deploy-name>
    
  14. 显示升级历史

    kubectl rollout history deploy <deploy-name> [--to-revision=<history-num>]
    
  15. 暂停和恢复滚动更新

    kubectl rollout pasue deploy <deploy-name>
    kubectl rollout resume deploy <deploy-name>
    
  16. 如果部署被暂停, 那么在恢复部署之前, 撤销命令不会撤销它

  17. minReadySeconds 属性指定新创建的 pod 至少要成功运行多久之后, 才能将其视为可用。

  18. 如果只定义就绪探针没有正确设置 minReadySeconds , 一旦有一次就绪探针调用成功, 便会认为新的 pod 已经处于可用状态。因此最好适当地设置 minReadySeconds 的值。

  19. 滚动升级失败的超时时间, 通过 的progressDeadlineSeconds 来指定

  20. 小结

    • 使用 ReplicationController 管理 pod 并执行滚动升级
    • 创建 Deployment, 而不是底层的 ReplicationController 和 ReplicaSet
    • 通过更新 Deployment 定义的 pod 模板来更新 pod
    • 回滚 Deployment 到上个版本或历史版本列表中的任意一个历史版本
    • 中止 Deployment 滚动升级
    • 通过 maxSurge 和 maxUnavailable 属性控制滚动升级的速率
    • 使用 minReadySeconds 和就绪探针自动避免错误版本的升级
    • 在一个单一的 YAML 文件内使用三个横杠(---)作为分隔符定义多个资源

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/735835.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IOT2050基本使用和指令集

安装系统镜像 -- debianIOT镜像地址下载及镜像版本说明Win32 disk Imager下载,用于SD卡安装镜像文件使用win32磁盘映像工具镜像操作如下:如果需要把SD卡中的镜像写入到eMMC卡:将烧录好的SD卡插入设备,修改SD卡启动顺序为默认启动设备。 如果已经存在emmc系统,则先格式化em…

K8S学习教程(一):使用PetaExpress云服务器安装Minikube 集群

什么是MinikubeMinikube是一款工具,主要用于在本地运行 Kubernetes 集群。Kubernetes 开源的平台,用于自动化容器化应用的部署、扩展和管理,而Minikube 使得开发人员能够在本地机器上轻松创建一个单节点的 Kubernetes 集群,从而方便开发、测试和学习 Kubernetes。我们看下如…

蓝牙芯片认证

前言: BLE产品工作在2.4G频段。产品具有蓝牙功能并且在产品外观上标明蓝牙标志,则必须通过认证。 各个国家的认证标准不同,但是大同小异。例如FCC/MIC/CE/BQB等。具体需要过某个认证可以查看出口国家。 认证可以分为传导和空气耦合。传导是测试芯片发射信号的波形;耦合是测…

Linux下二进制可执行文件分析 (nm,readelf,objdump 命令使用)

最近在调试一些问题,发现几个命令很实用,记录一下。 一 背景也许大家都遇到过这种场景,就是有二进制代码,比如深度分析下此文件到底是什么格式的图片等,这篇文章就记录我分析下二进制可执行文件的过程,已经自己读写二进制文件的一些坑。分析的二进制执行文件为linux下的可…

hypernetwork在SD中是怎么工作的

大家在stable diffusion webUI中可能看到过hypernetwork这个词,那么hypernetwork到底是做什么用的呢?大家在stable diffusion webUI中可能看到过hypernetwork这个词,那么hypernetwork到底是做什么用的呢? 简单点说,hypernetwork模型是用于修改样式的小型神经网络。 什么是…

使用 ROS2的多机器人探索

原文链接:https://www.youtube.com/watch?v=J0RZP_xJ3XA This video shows a demonstration of the SOS project, dedicated to forest fire detection using a fleet of robots. Several important issues are addressed. 这段视频展示了SOS项目的演示,该项目致力于使用机…

企业生产环境Nacos集群部署示例

Nacos运行环境需要jdk环境,集群各节点服务器需安装jdk1.8: jdk-8u341-linux-x64.tar 第一步:上次安装包 第二步:解压 sudo tar -zxvf jdk-8u341-linux-x64.tar.gz 第三步: 配置环境变量sudo vim /etc/profile 第四步:添加以下内容 export JAVA_HOME=/usr/local/jdk1.8.0…

Identity-aware Graph Neural Networks

目录概ID-GNNYou J., Gomoes-Selman J., Ying R. and Leskovec J. Identity-aware graph neural networks. AAAI, 2021.概 提出了一种能够超越 1-WL-Test 的 GNN. ID-GNNID-GNN 的 motivation 主要如下:主要到, 传统的 MPNN, 即第 \(k\) 层: \[\mathbf{m}_u^{(k)} = \text{MSG}…

AMM论文阅读笔记

AMM: Attentive Multi-field Matching for News Recommendation论文阅读笔记 Abstract 现存的问题: ​ 个性化新闻推荐是帮助用户找到感兴趣新闻的关键技术,而如何精确匹配用户兴趣和候选新闻是新闻推荐的核心。现有研究一般通过聚合用户浏览过的新闻来学习用户的兴趣向量,…

没有MAC电脑,如何申请苹果开发证书、上架APP Store?

【引言】 使用uni-app进行跨平台APP开发时,苹果ios平台最终还是要通过APP Store渠道发布,调试时uni-app基座也必须使用开发者证书签名后才能安装。对于使用MAC电脑的开发者,倒也不存在什么大障碍,照着文档操作就行,但是对于不使用MAC电脑,身边也没有MAC电脑,采购预算又紧…

知网文献下载助手 ——油猴脚本推荐

知网文献下载收费太贵了,只能逼我去找脚本来下载了。 在Greasyfork尝试了很多个脚本,坑爹的比较多,对比下来,我觉得这个“知网下载助手”比较容易用, 当然是纯免费的,需要的可以试试:知网下载助手https://greasyfork.org/zh-CN/scripts/492511

类人型自主机器人会打太极拳,但功夫很弱-斯坦福HumanPlus机器人

原文链接:https://newatlas.com/robotics/autonomous-humanoid-robot-shadows-humans/ The HumanPlus, with a 0-0 record, lands a 1, 2 left, right punch Stanford Humanplus HumanPlus以0比0的战绩,命中了1次左、右两拳。 斯坦福…

Rougamo、Fody 实现静态Aop

最近在看项目,看到别人使用Rougamo框架,好奇花了点时间仔细研究了,在这里记录一下。 0. 静态编织 Aop 首先,我们先了解什么是Aop? Aop 是指面向切面编程 (Aspect Oriented Programming),而所谓的切面,可以认为是具体拦截的某个业务点。 我们常用的aop框架是 AspectCore,…

WhaleStudio 2.6正式发布,WhaleTunnel同步性能与连接器数量再创新高!

在这个数据驱动的大模型时代,数据集成的作用和意义愈发重要。数据不仅仅是信息的载体,更是推动企业决策和创新的关键因素。作为全球最流行的批流一体数据集成工具,WhaleTunnel随着WhaleStudio 2.6版本正式发布,带来了多项功能增强和新特性,性能大幅提升,连接器和功能方面…

代码随想录算法训练营第四十二天 | 1049最后一块石头的重量II 494.目标和 474.一和零

1049.最后一块石头的重量 题目链接 文章讲解 视频讲解解题思路:将石头尽量分为相等的两堆,两堆最差即为所求结果石头的重量就是石头的价值动规五部曲:dp[j]:表示背包容量为j时可以装的石头的总价值 递推公式:dp[j] = max(dp[j], dp[j-stones[i]] + stones[i] 初始化:均初…

Apache DolphinScheduler社区又一PMC获推选通过!

PROFILE姓名:程鑫 公司:阿里云 职位:开发工程师 Github ID: rickchengx 从事领域:大数据调度系统开发 兴趣爱好:健身推举理由 他于2022年8月2日开始了他的DolphinScheduler之旅,在社区工作了将近两年,并于2023年5月12日成为Committer。成为Committer后的一年里,他继续保…

BOSHIDA 探讨DC/AC电源模块为绿色能源应用提供可靠的转换解决方案

BOSHIDA 探讨DC/AC电源模块为绿色能源应用提供可靠的转换解决方案 DC/AC电源模块是一种能够将直流电源转换为交流电源的装置。随着绿色能源的不断发展和应用,DC/AC电源模块在可再生能源、电动车辆、太阳能发电等领域中扮演着重要的角色。本文将着重探讨DC/AC电源模块为绿色能源…

Centos7 安装Rabbitmq3.9.11

安装erlang 安装依赖包yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel下载wget https://github.com/erlang/otp/releases/download/OTP-24.1.7/otp_src_24.1.7.tar.gz解压tar -zxvf otp_src_24.1.7.tar.gz转移到…

mysql数据库简介

一、数据库介绍 1.数据库基本概念 数据(Data) 描述事物的符号记录 包括数字,文字、图形、图像、声音、档案记录等 以“记录”形式按统一的格式进行存储 表 将不同的记录组织在一起 用来存储具体数据 数据库 表的集合,是存储数据的仓库 以一定的组织方式存储的相互有关的数据…

mac 电脑查看已安装的谷歌插件

1、打开谷歌浏览器 地址栏上面输入  chrome://version/ 2、找到 个人资料路径: /Users/admin/Library/Application Support/Google/Chrome/Default3、打开个新窗口 地址了上输入:个人资料路径 ,并找到 Extensions/ 文件夹 4、里面都是已安装的谷歌插件, 想要哪个插件…