1
opengps 2020-01-02 09:29:07 +08:00
系统镜像(单机包含完整系统运行环境)+已有资源的利用率监控+自动扩容的黑白名单
必须用负载均衡,不然没办法参会集群负载,负载均衡除了自己分流功能之外,还起到"统一入口"功能,对外只提供负载均衡的公网 IP |
2
keroppi OP 感谢,如果我代码经常有更新,弹性伸缩又有 N 台机器在跑是怎么处理代码同步的问题?
|
4
opengps 2020-01-02 09:39:28 +08:00
@keroppi (涉及到升级系统代码,需要手动,还需要考虑是否允许新旧版本同时运行)具体操作起来步骤要求比较繁琐,还有几个坑要注意避免。
1,准备新自定义镜像,生成好机器,加入伸缩组 2,要下线的机器权重改为 0 (注意:不接受新链接,但是老链接依然还在) 3,确认负载能力,要下线的机器是否可以关机,没问题的话关了甚至释放都可以 4,一次性替换或者多次循环替换所有机器 以上是我随口说的,可能存在不严谨的地方。另外恭喜你开始体会到上云的价值,大部分人其实只是用了云服务器就认为"上云"了,其实并没发挥到真正价值 |
5
luckyrayyy 2020-01-02 09:41:52 +08:00
1、每次拉取的都是最新的或者指定稳定分支上的通过测试的代码啊。
2、A 肯定是一个统一网管,后面才是具体的服务,网关不会变动的。 3、肯定需要有负载均衡 |
7
opengps 2020-01-02 10:07:33 +08:00
@vanton NAS 存内部使用的文件合适,但是对于 web 端引用的文件(比如用户上传的头像等),建议使用对象存储 OSS,配合 CDN 加速,避免出流量占用负载均衡带宽或者流量
|
9
d5 2020-01-02 10:09:10 +08:00
如果要比较简单点的实践,可以简单在 dns 层面设置分流:
华为 dns + daocloud 或 k8s 现在大多 dns 解析商都提供了 restful api 接口,并可以设置 a 记录的权重和线路. 当检测到主机配置不够的时候,直接起新的容器 /复制相同主机,然后获得 ip 地址,用 http 接口增加新的 a 记录。 |
10
C603H6r18Q1mSP9N 2020-01-02 10:31:14 +08:00
阿里云的我们一直再用
负载均衡要的,伸缩服务器会 自动添加和移除负载 常规做法是拿其中一台做镜像,然后其他的在重新部署,这种适合代码不怎么动的情况 我们还做过代码可以手动同步,写的脚本 |
11
lqy2575395 2020-01-02 10:38:17 +08:00
有个开机脚本,代码自己写个脚本开机的时候去同步一份最近代码,最好在做下校验
|
12
ReallllQCloud 2020-01-02 11:00:28 +08:00
1. 代码怎么同步
-- 代码放到镜像里,然后在 userdata 里写个开机启动服务的脚本,每次更新代码后更新镜像,这样扩容出来机器就是最新代码,固定的机器需要手动升级(或者用镜像重装,如果要保持服务不断要手动扩一台机器撑着,重装完缩掉) 2. 如果假设我解析域名到 A 服务器,现在因为 A 服务器资源到达我预设的值增加了服务器,那么这个域名解析怎么办? -- 只能自己写个脚本,监听弹性伸缩生命周期然后修改,当然更好方法见 3 3. 要使用负载均衡这个产品吗? -- 最好使用,原因是方便,因为弹性伸缩是与负载均衡天然打通的(腾讯云、阿里云、AWS,其他不确定),也就是增加的机器会自动挂载到负载均衡监听器下面,结合 2 考虑你的架构(最前 域名 www.xxx.com ==> 负载均衡 ===> AS ),这样全流程都是使用云产品,你自己不需要搞个什么脚本找个机器跑了 |
13
nrtEBH 2020-01-02 11:24:47 +08:00
代码更新用 docker image 最方便
或者用虚拟机模版的 userdata 基本厂商都支持 启动时候跑一个脚本同步数据 负载均衡会处理域名解析问题 你把域名指向负载均衡的别名就可以了 找几个厂商的产品文档看下理解会更深刻 |