V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
keroppi
V2EX  ›  云计算

请教弹性伸缩这个功能是怎么用的?

  •  
  •   keroppi · 2020-01-02 09:26:00 +08:00 · 5950 次点击
    这是一个创建于 1778 天前的主题,其中的信息可能已经有所发展或是发生改变。
    没用过这个功能,所以有点点疑问
    1. 代码怎么同步
    2. 如果假设我解析域名到 A 服务器,现在因为 A 服务器资源到达我预设的值增加了服务器,那么这个域名解析怎么办?
    3. 要使用负载均衡这个产品吗?
    13 条回复    2020-01-02 11:24:47 +08:00
    opengps
        1
    opengps  
       2020-01-02 09:29:07 +08:00
    系统镜像(单机包含完整系统运行环境)+已有资源的利用率监控+自动扩容的黑白名单
    必须用负载均衡,不然没办法参会集群负载,负载均衡除了自己分流功能之外,还起到"统一入口"功能,对外只提供负载均衡的公网 IP
    keroppi
        2
    keroppi  
    OP
       2020-01-02 09:32:00 +08:00
    感谢,如果我代码经常有更新,弹性伸缩又有 N 台机器在跑是怎么处理代码同步的问题?
    opengps
        3
    opengps  
       2020-01-02 09:32:31 +08:00   ❤️ 1
    @keroppi 每次重新制作自定义镜像
    opengps
        4
    opengps  
       2020-01-02 09:39:28 +08:00
    @keroppi (涉及到升级系统代码,需要手动,还需要考虑是否允许新旧版本同时运行)具体操作起来步骤要求比较繁琐,还有几个坑要注意避免。
    1,准备新自定义镜像,生成好机器,加入伸缩组
    2,要下线的机器权重改为 0 (注意:不接受新链接,但是老链接依然还在)
    3,确认负载能力,要下线的机器是否可以关机,没问题的话关了甚至释放都可以
    4,一次性替换或者多次循环替换所有机器
    以上是我随口说的,可能存在不严谨的地方。另外恭喜你开始体会到上云的价值,大部分人其实只是用了云服务器就认为"上云"了,其实并没发挥到真正价值
    luckyrayyy
        5
    luckyrayyy  
       2020-01-02 09:41:52 +08:00
    1、每次拉取的都是最新的或者指定稳定分支上的通过测试的代码啊。
    2、A 肯定是一个统一网管,后面才是具体的服务,网关不会变动的。
    3、肯定需要有负载均衡
    vanton
        6
    vanton  
       2020-01-02 09:47:01 +08:00
    @keroppi #2 使用 NAS
    opengps
        7
    opengps  
       2020-01-02 10:07:33 +08:00
    @vanton NAS 存内部使用的文件合适,但是对于 web 端引用的文件(比如用户上传的头像等),建议使用对象存储 OSS,配合 CDN 加速,避免出流量占用负载均衡带宽或者流量
    vanton
        8
    vanton  
       2020-01-02 10:08:47 +08:00
    @opengps #7 正解,静态文件用 OSS+CDN,这个是常规做法。
    d5
        9
    d5  
       2020-01-02 10:09:10 +08:00
    如果要比较简单点的实践,可以简单在 dns 层面设置分流:

    华为 dns + daocloud 或 k8s

    现在大多 dns 解析商都提供了 restful api 接口,并可以设置 a 记录的权重和线路.
    当检测到主机配置不够的时候,直接起新的容器 /复制相同主机,然后获得 ip 地址,用 http 接口增加新的 a 记录。
    C603H6r18Q1mSP9N
        10
    C603H6r18Q1mSP9N  
       2020-01-02 10:31:14 +08:00
    阿里云的我们一直再用
    负载均衡要的,伸缩服务器会 自动添加和移除负载
    常规做法是拿其中一台做镜像,然后其他的在重新部署,这种适合代码不怎么动的情况
    我们还做过代码可以手动同步,写的脚本
    lqy2575395
        11
    lqy2575395  
       2020-01-02 10:38:17 +08:00
    有个开机脚本,代码自己写个脚本开机的时候去同步一份最近代码,最好在做下校验
    ReallllQCloud
        12
    ReallllQCloud  
       2020-01-02 11:00:28 +08:00
    1. 代码怎么同步
    -- 代码放到镜像里,然后在 userdata 里写个开机启动服务的脚本,每次更新代码后更新镜像,这样扩容出来机器就是最新代码,固定的机器需要手动升级(或者用镜像重装,如果要保持服务不断要手动扩一台机器撑着,重装完缩掉)
    2. 如果假设我解析域名到 A 服务器,现在因为 A 服务器资源到达我预设的值增加了服务器,那么这个域名解析怎么办?
    -- 只能自己写个脚本,监听弹性伸缩生命周期然后修改,当然更好方法见 3
    3. 要使用负载均衡这个产品吗?
    -- 最好使用,原因是方便,因为弹性伸缩是与负载均衡天然打通的(腾讯云、阿里云、AWS,其他不确定),也就是增加的机器会自动挂载到负载均衡监听器下面,结合 2 考虑你的架构(最前 域名 www.xxx.com ==> 负载均衡 ===> AS ),这样全流程都是使用云产品,你自己不需要搞个什么脚本找个机器跑了
    nrtEBH
        13
    nrtEBH  
       2020-01-02 11:24:47 +08:00
    代码更新用 docker image 最方便
    或者用虚拟机模版的 userdata 基本厂商都支持 启动时候跑一个脚本同步数据
    负载均衡会处理域名解析问题 你把域名指向负载均衡的别名就可以了
    找几个厂商的产品文档看下理解会更深刻
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4358 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 05:33 · PVG 13:33 · LAX 21:33 · JFK 00:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.