灰度发布及声明式资源管理(yaml文件)

一、三种常见的项目发布方式

1)蓝绿发布

2)灰度发布【常用】

3)滚动发布

应用程序升级,面临最大的问题是新旧业务之间的切换

立项-定稿-需求发布-开发-测试-发布,测试上线后,再完美也会有问题,为了不影响所有用户,产生上述三种发布方式

1)蓝绿发布

定义:把应用服务集群标记为两个组,认为分成蓝组和绿组。先升级蓝组,要把蓝组从负载均衡中移除,绿组继续提供服务,蓝组升级完毕,将蓝组加入到负载均衡中。再把绿组从负载均衡中移除,升级绿组,再将绿组加入到负载均衡中,完成对外服务

②特点

 一旦出现问题,影响范围很大

 发布策略较简单

 基于现在的云计算和微服务,成本大大降低,用户无感知

 升级和回滚都比较方便

③缺点:对硬件资源要求很高,在发布升级过程中,只有一部分集群对外服务,集群的负载能力可能会下降,响应变慢,需要给集群增加负载能力,短时间内可能会浪费一定的资源(一般是半夜升级,没有特殊需要可以不加)

2)灰度发布【常用】

必须基于deployment控制器创建的服务才可以使用灰度发布方式,在滚动更新的基础上,加入暂停功能。发布过程中,暂时停止,只有一部分pod先升级,其他pod还是旧版本,只有一部分用户可以访问新版本,绝大多数用户还是旧版本,确定完全没问题后,全部升级成新版本,取消暂停,继续发布,若有问题可以立即回滚(暂停不是回滚,一旦取消暂停,只能全部升级完毕后,才能回滚)

先更新一个pod版本

kubectl set image deployment nginx nginx=nginx:1.24 --record && kubectl rollout pause deployment nginx

继续更新剩下的pod版本

kubectl rollout resume deployment nginx

特点

 自动化要求比较高,对运维人员要求较高

 方便发现问题,及时解决,影响范围较小

 用户无感知,实现平滑过度,节约资源

 发布策略复杂

 不易回滚,必须全部发布成功之后才能回滚

二、声明式资源管理(yaml文件)

1、优点

①声明式管理适合对资源的修改操作

②声明式管理依赖于yaml文件,所有的内容都在yaml文件中声明

③编辑好的yaml文件仍然依赖于陈述式命令发布到k8s集群中

2、发布yaml文件的三种方式

kubectl create

只能创建,不能更新。从指定的yml文件中读取配置,创建服务,不能更新

kubectl apply -f

(常用)

既可以创建资源对象,也可以更新资源对象,若yml文件更改,apply可以直接更新资源对象

kubectl delete -f

删除yml文件中声明的资源对象

3、生成yaml文件

①手打

②基于已有的资源直接生成

查看控制器的yaml文件格式

kubectl get deployments.apps -o yaml

查看service的yaml文件格式

kubectl get service -o yaml

查看pod的yaml文件格式

kubectl get pod -o yaml

基于已有的资源直接生成yaml文件

后面加上--force强制升级可以不需要导出新的yaml文件再升级

4、在k8s中支持两种声明式的资源管理方式

(1)yaml格式:用于配置和管理资源对象

(2)json格式:用于在API接口之间传递消息

5、三种yaml文件

(1)deployment的yaml文件(deployment、daemeonset、statefulset)

(2)service的yaml文件

(3)不基于控制器的pod的yaml文件

(1)deployment的yaml文件

(2)service的yaml文件

(3)不基于控制器创建yaml文件

Always

在容器退出时重启容器,无论退出状态如何

Never

用于短期任务或批处理,其中容器应运行一次,然后不会重新启动

OnFailure

仅在容器以非0状态退出时才会重启容器

重启策略不会影响 Pod 本身的终止状态。只要 Pod 中至少有一个容器在运行,就认为 Pod 处于“正在运行”阶段。如果 Pod 中的所有容器都退出,则 Pod 会过渡到“已完成”或“失败”阶段,具体取决于最后一个容器的退出状态

command

定义容器运行的命令参数,类似于docker的CMD和entrypoint。args可以理解为docker中的CMD,可以给command传参。command和args都会覆盖原容器内部的标准输出【面试题】

args

/bin/bash

指定输出脚本

-c

指定输出内容

注:command和args只能有一个

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

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

相关文章

基于回溯搜索算法优化的Elman神经网络数据预测 - 附代码

基于回溯搜索算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于回溯搜索算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于回溯搜索优化的Elman网络5.测试结果6.参考文献7.Matlab代码 摘要&…

50、实战 - 利用 conv + bn + relu + add 写一个残差结构

上一节介绍了残差结构,还不清楚的同学可以返回上一节继续阅读。 到了这里,一个残差结构需要的算法基本都介绍完了,至少在 Resnet 这种神经网络中的残差结构是这样的。 本节我们做一个实战,基于之前几节中手写的 conv / bn 算法,来搭建一个残差结构。其中,relu 的实现和…

EasyCode代码生成器插件

EasyCode文档:https://gitee.com/makejava/EasyCode/wikis/pages?sort_id725187&doc_id166248 EasyCode 优点 可以生成controller层的代码。可以一次性生成多张表的各层代码。可以自定义模板。 EasyCode使用 在插件市场下载easy code插件 在idea中进行数据…

MySQL中的事务到底是怎么一回事儿

简单来说,事务就是要保证一组数据库操作,要么全部成功,要么全部失败。在MySQL中,事务支持是在引擎层实现的,但并不是所有的引擎都支持事务,如MyISAM引擎就不支持事务,这也是MyISAM被InnoDB取代的…

【教学类-43-14】 20240103 (4宫格数独:正确版:576套) 不重复的基础模板数量:576套

作品展示::——4宫格 576套不重复模板(48页*12套题) 背景需求: 生成4宫格基础模板768套,观看64页内容时,明显看到有错误 【教学类-43-13】 20240103 (4宫格数独:错误版…

[C#]C# OpenVINO部署yolov8实例分割模型

【官方框架地址】 https://github.com/ultralytics/ultralytics.git 【算法介绍】 YOLOv8 抛弃了前几代模型的 Anchor-Base。 YOLO 是一种基于图像全局信息进行预测的目标检测系统。自 2015 年 Joseph Redmon、Ali Farhadi 等人提出初代模型以来,领域内的研究者们…

Python算法例32 统计数字

1. 问题描述 计算数字k在0~n中出现的次数,k可能是0~9中的一个数字。 2. 问题示例 n12,k1,在[0,1,2,3,4,5,6,7,8,9,10&a…

C++ 实现Windows WIFI管理器

文章目录 前言一、代码二、补充知识三、遇到的问题字符集转换 四、剩余问题总结 前言 出于项目需要,需要用C开发一个wifi界面,实现wifi扫描、wifi连接与断开、wifi密码记住的基础功能。 一、代码 话不多说,直接上代码。 #pragma once #inc…

我在CSDN的2023年

一、引言 在2023年的这一年当中,在CSDN的生活让我得到许多知识与启发,也让我获得一些快乐和成就 二、自己的收获 在这一年当中,我从一个只会看别人写的文章解决问题到,可以自己写文章帮别人解决问题,这种成就感是极大…

好用免费的WAF---如何安装雷池社区版

什么是雷池​ 雷池(SafeLine)是长亭科技耗时近 10 年倾情打造的 WAF,核心检测能力由智能语义分析算法驱动。 Slogan: 不让黑客越雷池半步。 什么是 WAF​ WAF 是 Web Application Firewall 的缩写,也被称为 Web 应用防火墙。 …

基于VS2019的C++动态链接库DLL生成与调用

一、理论知识及实践经验 实验注意事项及部分程序编写规范(部分源自ChatGPT-3.5): Ⅰ __declspec(dllexport)和__declspec(dllimport)是用于在C中定义动态链接库(DLL)的关键字。在编写动态链接库时,__declsp…

AIGC年度回顾!2024向量数据库是否还是AI发展方向之一?

引言 2023 年,是 AI 技术大爆发的一年,从年初到年末,全球关心技术发展的人们见证了一次次的 AI 技术升级,也逐步加深着对 AGI 发展的畅想。而伴随着生成式人工智能的飞速发展,向量数据库以其独特的技术优势逐渐崭露头角…

修复移动硬盘显示盘符但打不开问题

问题: 移动硬盘显示盘符,但无法打开。点击属性不显示磁盘使用信息。 分析解决: 这是由于硬盘存在损坏导致的,可以通过系统自带的磁盘检查修复解决,而无需额外工具。 假设损坏的盘符是E,在命令行运行以下命令…

流媒体学习之路(WebRTC)——Pacer与GCC(5)

流媒体学习之路(WebRTC)——Pacer与GCC(5) —— 我正在的github给大家开发一个用于做实验的项目 —— github.com/qw225967/Bifrost目标:可以让大家熟悉各类Qos能力、带宽估计能力,提供每个环节关键参数调节接口并实现一个json全…

数据库-MySQL 启动方式

以管理员身份运行命令行 或者Shell net start //查看所有服务 net start MYSQL80 //启动服务 net stop MYSQL80 //停止服务完整安装MySQL社区版本的 会有这个 启动服务 停止服务 重启服务

C# 进阶语法,Linq入门到详解

什么是Linq LINQ (Language Integrated Query) 即语言集成查询–用来作查询一些操作类库主要负责对象的查询。 1、LINQ to Objects 主要负责对象的查询 2、LINQ to XML 主要负责XML的查询。 3、LINQ to ADO.NET 主要负责数据库的查询。 linq核心就是对数据源的操作 学linq另外…

15、Kubernetes核心技术 - 探针

目录 一、概述 二、探针类型 2.1、就绪探针(Readiness Probe) 2.2、存活探针(Liveness Probe) 三、探针探测方法 3.1、exec 3.2、httpGet 3.3、tcpSocket 四、探针配置项 五、探针使用 5.1、就绪探针(Readin…

Java框架相关高频面试题

一,Spring 1,Spring框架中单例bean是线程安全的吗? 2,什么是AOP?你项目有用过吗? 3,Spring事务的失效场景有哪些? 发生自身调用(类中使用this调用本类的方法&#xff0…

这货能大大增强ChatGpt的战斗力

今天我给你介绍一个能大大增强ChatGpt的战斗力的工具: gapier。 注册gapier ChatGpt推出了GPTs的功能,在创建GPTs的时候有个Actions的选项,是给我们调用第三方接口用的,以前一直不知道这么用。 直到我发现了一个网站&#xff1a…

11.盛水最多的容器(双指针,C解法)

题目描述: 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:…