Kubernetes资源扩容、项目发布策略

Master扩容

100台node,2台master足够了

这个在集群中讲过,可以参考之前的

Node扩容

这个在集群中讲过,可以参考之前的

Pod 扩容

以下是手动扩容为5个
kubectl scale --replicas=5 deployment php-demo -n test

以下是手动缩容为3个
kubectl scale --replicas=3 deployment php-demo -n test

自动扩容还得在研究

项目发布策略

蓝绿发布
现在我们公司用的就是蓝绿发布策略
A组 预发布环境 192.168.1.100 192.168.1.101
B组 生成环境 192.168.1.102
nginx 负载均衡 通过upstream 将192.168.1.100 192.168.1.101 192.168.1.102 都加入进来

发布时,将B组上线(从upstream剔除A组的服务器),更新A组的代码,等待A组代码更新完成,将A组更新上线,B组下线,更新B组的,等待B组更新完成,
再将A组,B组一起都上线,我们公司通过shell脚本管理的

特点:
? 策略简单
? 升级/回滚速度快
? 用户无感知,平滑过渡

缺点:
? 需要两倍以上服务器资源
? 比如当A组或者B组上线任意一台上线后能否满足并发

灰度发布
A组 192.168.1.100
B组 192.168.1.101
C组 192.168.1.102

配置:nginx.conf 判断:远程地址=公司的公网IP时,就需要转发到C组上
发布前:先将C组更新代码,因为是公司的网络可以访问到最新的代码,先让其测试验证(此时外面的用户访问的还是旧的代码,服务并没有停止),没问题后,则发布到A组,B组,让所有用户都能访问最新代码

滚动发布
滚动发布:每次只升级一个或多个服务,升
级完成后加入生产环境,不断执行这个过程,
直到集群中的全部旧版升级新版本。
特点:
? 用户无感知,平滑过渡
缺点:
? 部署周期长
? 发布策略较复杂
? 不易回滚

Kubernetes中的滚动更新

deployment 控制器默认就是滚动更新

若是有3个pod,若升级第一个pod没问题的话,就升级第二个,第二个没有问题就升级第三个

通过rs属性来操作:

原文地址:http://blog.51cto.com/jacksoner/2340189

时间: 2024-10-12 19:28:18

Kubernetes资源扩容、项目发布策略的相关文章

第一次项目发布的心得体会

昨晚, —— 不, 应该是今天凌晨, —— 注定是个不简单的时刻. 我入职后参与的第一个项目发布,而且自己所做的工作是数据订正,涉及用户数据的操作总是非常敏感而重要的.因此,心理还是比较紧张的. 果然是真实环境更能锻炼人.虽然事先检查了好几遍,可是实际执行时还是出问题了. 事情是这样的: 我写了几个 .py  脚本用来操作数据库,需要更新10000多个用户的资源记录,每个用户的资源记录涉及好几个数据库的几张表.  在具体执行时,发现每一个用户的资源更新都比较慢,——但实际上,仅从操作上来看并不能

项目发布的相关知识(3)

按照步骤开发一个最简单的应用程序,一行代码都不用写,就可以得到一个可运行的apk1:apk签名1)通过ADT提供的图形化界面完成apk签名:右键项目——> Android Tools ——>Export Signed Application Package... ——> 打开图形界面2)通过ADT提供的图形化界面完成apk签名:右键项目——> Export ——>Android+ Export Android Application——> 打开图形界面命令行的方式就不说

Maven 系列 六 :将项目发布到私服

1 . 修改私服中仓库的部署策略 Release版本的项目应该发布到Releases仓库中,对应的,Snapshot版本应该发布到Snapshots仓库中.Maven根据pom.xml文件中版本号<version>节点的属性是否包含-SNAPSHOT,来判断该项目是否是snapshot版本.如果是snapshot版本,在执行mvn deploy部署命令时,maven会自动将项目发布到Snapshots仓库.要发布项目,首先需要将Releases仓库和Snapshots仓库的“Deploymen

利用ant进行项目发布

虽然现在maven很流行,我也看了下,屡屡浅尝辄止.还是比较喜欢ant,而且对于我当前的工作,ant也够用了,所以对maven的学习也就没了兴趣,仅剩下对新事物的热情. 一个较复杂的工程项目可能包含很多目录,包括源代码文件.资源文件.文档等等一系列的东东,而且在项目发布时,除了考虑自动化.方便性(比如从cvs取最新版本.编译.打包.关闭应用服务器.部署.重新启动服务器等等)以外,还要考虑一些用户级的问题(比如修改了页面js后,怎样保证用户端从服务器端下载最新的js而不是用其本地浏览器缓存的js)

linux下项目发布

修改tomcat server.xml (1)端口指向80 <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8446" URIEncoding="UTF-8"/> (2)项目发布映射 <Host name="域名或者localhost或者127.0.0.1"

学习——JavaWeb02:修改端口和web项目发布

学习--JavaWeb02:修改端口和web项目发布 壹:修改端口 1.         Tomcat服务器的配置,全部都需要在tomcat的安装目录下conf目录下完成: Tomcat的默认端口号是8080: 找到Tomcat->conf目录下的server.xml文件,双击打开: 很容易就能看到端口号有关的代码,将之修改为你要修改的端口号(注意端口号的取值范围:1-65535). 贰:项目发布 1.        只要把开发好的项目复制到webapps下面即可.这时候不用重启Tomcat服务

Docker Kubernetes 容器扩容与缩容

Docker Kubernetes 容器扩容与缩容 环境: 系统:Centos 7.4 x64 Docker版本:18.09.0 Kubernetes版本:v1.8 管理节点:192.168.1.79 工作节点:192.168.1.78 工作节点:192.168.1.77 创建环境: 1.Deployment名称:nginx-deployment 2.pods副本数为:3  3.image镜像:nginx1.9 管理节点:扩容或缩容deploymnet的pod副本数. kubectl scale

Tomcat的安装配置与web项目发布

Tomcat的安装配置与web项目发布 今日内容 1.Web开发基本概念(了解) 2.tomcat的安装和配置(必会) 3.web项目的发布(必会) 4.Http协议简介(理解) Web开发基本概念 1.软件的架构 常用的软件:QQ.京东.淘宝.kgc 1)C/S架构 解释:客户端/服务器. 特点:需要下载并安装,每次更新需要下载,客户端和服务器有可能都需要更新 控件炫酷,因为它调用的是系统底层的图形的API 2)B/S架构 解释:浏览器/服务器架构.它是基于Http协议的,用的是请求/响应模式

.NET+C#项目发布过程及出现问题记录

一.iis服务器设置 二.VS项目发布 1.css,js文件资源不加载 解决方法:在打开windows功能 中点选择internet信息服务-万维网服务-常见HTTP功能-静态内容 2.项目发布之后图片资源不显示 原因分析:应该是直接复制到项目资源路径,导致VS的解决方案没能自动识别 解决方法:方法一:手动将原项目资源加入到发布之后的目录中 方法二:将资源手动复制到解决方案中 三.数据库连接 登陆之后出现数据库用户登陆失败 解决方法: 1.在IIS-应用程序池-当前应用程序右键-高级设置-进程模