当前位置: 首页 > news >正文

陈述式资源管理(2)

命令行。声明式资源管理

三种常见的项目发布方式:

1、蓝绿发布

2、金丝雀发布(灰度发布)

3、滚动发布

应用程序升级,最大困难就是新旧业务之间的切换。立项 --- 定稿 --- 需求发布 --- 开发 --- 测试 --- 发布。测试之后上线,再完美也会有问题。为了不让发生的问题影响所有用户,上述的三种发布方式

蓝绿发布:把应用服务集群标记为蓝组和绿组。先升级蓝组,要把蓝组从负载均衡当中移除,绿组继续提供服务。蓝组升级完毕,再把绿组从负载均衡中移除,绿组升级,然后都加入回负载均衡中,完成对外服务

蓝绿发布的特点:

1、一旦出现问题,影响的范围会很大

2、发布策略简单

3、基于现在云计算和微服务,用户是无感知的

4、升级和回滚都比较方便

蓝绿发布的缺点:

在发布升级的过程中,只有一部分集群在对外提供服务,可能会是集群的负载能力下降,响应变慢,需要注意给集群增加负载能力(一般来说没什么特殊需求)

在短时间内可能会浪费一定的资源成本

金丝雀发布(灰度发布):

deployment控制器创建的服务,才可以使用这种发布方式,滚动更新,暂停。发布的过程中,暂时停止,只有一部分的pod先升级。其他的pod还是处于老版本。只有一部分用户可以访问新的版本,绝大多数用户还是处于老版本。确定没有问题之后,再把剩下的老版本升级成新版本,把暂停取消,继续发布。如果有问题,可以立即回滚。暂停不是回滚,一旦取消暂停只能全部升级完毕之后再回滚

灰度发布特点

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

2、方便发现问题及时解决。影响范围比较小

3、用户无感知,平滑过度。节约资源

4、发布策略比较复杂

5、不易回滚。必须等全部发布成功后才能回滚

滚动更新:

deployment的默认方式

声明式管理方法(yaml文件):

1、适合对资源的修改操作

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

3、编辑好的yaml文件,还是要依靠陈述式的命令发布到k8s集群当中

create -f 只要创建,不能更新。从指定yaml文件中读取配置,创建服务,不能更新

apply -f  既可以创建资源对象,也可以更新资源对象。如果yaml文件更改了,apply可以直接更新资源对象

delete -f  删除yaml文件中声明的资源对象

yaml:

deployment

pod

service

yaml如何生成:

1、手打

2、根据已有的资源直接生成

1、deployment的yaml文件(daemonset statefulset)

2、service的yaml文件格式

3、不急于控制器的pod的yaml文件

k8s当中支持两种声明式的资源管理方式:

1、yaml格式,用于配置和管理资源对象

2、json格式: 主要用于在api接口之间消息的传递

kubectl explain deploy

command

args

定义容器运行的命令参数,类似于docker的CMD和entrypoint

args可以理解成docker中的cmd,给command传参。

command和args都会覆盖原容器的标准输出(CMD和ENTRYPOINT)

相关文章:

  • 动画墙纸:将视频、网页、游戏、模拟器变成windows墙纸——Lively Wallpaper
  • 阿里云2核2G3M服务器上传速度多少?下载速度快吗?
  • 编程语言的进化:智能化与多样化的未来
  • 机器学习之主成分分析(Principal Component Analysis,PCA)案例解析附代码
  • 深度理解Flutter:有状态Widget与无状态Widget的详细对比
  • 华为ipsec双冗余配置案例
  • 为什么游戏服务端用开发效率低的C++来写,其他语言无法胜任吗?
  • Go语言程序设计-第5章--函数
  • 【Swagger】常用注解的使用、SpringBoot的整合及生产环境下屏蔽Swagger
  • [每周一更]-(第43期):Golang版本的升级历程
  • linux安装anaconda
  • 自定义html5中日期选取器的样式
  • uniapp-H5项目的坑
  • 经典卷积神经网络-VGGNet
  • Qt 中使用 MySQL 数据库保姆级教程(下)
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 《剑指offer》分解让复杂问题更简单
  • 07.Android之多媒体问题
  • AHK 中 = 和 == 等比较运算符的用法
  • JavaScript DOM 10 - 滚动
  • JavaScript 基本功--面试宝典
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • JS函数式编程 数组部分风格 ES6版
  • leetcode98. Validate Binary Search Tree
  • uva 10370 Above Average
  • Vue2 SSR 的优化之旅
  • 反思总结然后整装待发
  • 缓存与缓冲
  • ------- 计算机网络基础
  • 开源SQL-on-Hadoop系统一览
  • 力扣(LeetCode)56
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 前端js -- this指向总结。
  • 延迟脚本的方式
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 正则学习笔记
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ​批处理文件中的errorlevel用法
  • $.ajax,axios,fetch三种ajax请求的区别
  • (12)目标检测_SSD基于pytorch搭建代码
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (三)mysql_MYSQL(三)
  • (算法)N皇后问题
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转载)hibernate缓存
  • ./configure、make、make install 命令
  • .Net CF下精确的计时器