通常,公有云厂商提供的云主机服务可用性不低于99.95%,也就是一台云主机,每月的最大不可用时间是21.92分钟(365.25 * 24 * 60 * (1 - 0.9995) / 12)。对一些要求更高可用性的应用组件(比如Web前端、数据库服务等),通常会采用主备份方式搭建,并通过自动切换主备满足更高的可用性。
京东云提供的高可用组功能,把主服务器(Master Server)和备用服务器(Slave Server)分别部署在不同可用区的不同故障域(故障域是相互隔离的物理资源池),并利用通过Keepalived调用京东云命令行实现公网IP在两台云主机之间自动漂移,缩短故障恢复时间(MTTR, Mean time to recovery),从而提升整个接入服务组件的可用性。
本文包括如下内容:京东云命令行简介
如何利用高可用组实现云主机反亲和部署
利用Keepalived和京东云命令行实现弹性公网IP漂移
京东云命令行简介
京东云控制台提供浏览器操作界面,同时也提供OpenAPI和命令行。通过命令行,可快速批量创建京东云资源,并避免图形化界面的手工操作错误。
注意,安装京东云命令行的云主机需要能访问互联网。
下面是当前京东云命令行的版本信息和帮助信息:1MacBook:~ user001$ jdc --help
2usage: jdc [-h] [--debug] [--quiet] [--output {json}] [-v]
3 {mps,cps,rds,jke,vpc,xdata,mongodb,configure,streambus,ipanti,baseanti,datastar,redis,nc,monitor,iam,disk,cr,streamcomputer,sop,clouddnsservice,vm,oss}
4 ...
5
6 京东云CLI使用方法简介:
7
8 1) 配置默认Profile
9 jdc configure add --access-key your-ak --secret-key your-sk
10 说明:access-key和secret-key可以从京东云控制台申请开通。默认为华北区域。
11
12 2) 配置自动完成,方便输入指令。输入两次TAB键可联想出子命令或参数。
13 ...
14MacBook:~ user001$ jdc --version
150.7.2
在使用命令行之前,需要通过jdc configure配置访问信息。下面是jdc configure add增加配置信息的命令:1jdc configure add --access-key {ACCESS_KEY} --secret-key {SECRET_KEY} --region-id {REGION_ID} --endpoint {ENDPOIN} --scheme {SCHEME} --profile {PROFILE}
上述命令中每个参数的简要介绍如下:ACCESS_KEY和SECRET_KEY:是从京东云控制台的账户管理, Access Key管理界面获得。
REGION_ID:当前京东云提供华北-北京、华东-宿迁、华东-上海和华南-广州四个区域,每个区域对应的Region ID分布是cn-north-1、cn-east-1、cn-east-2和cn-south-1。详细信息参:https://docs.jdcloud.com/cn/common-declaration/api/introduction
ENDPOINT: 命令行操作的服务器URL。在公网环境下使用命令行,endpoint是http://www.jdcloud-api.com,如果是在京东云服务器通过内网使用命令行时,endpoint是openapi.internal.{region_id}.http://jdcloud-api.com。其中 {region_id}替换为对应区域的region_id值。
SCHEME: 使用命令行时的传输协议,在公网环境使用命令行时scheme是“https",在内网环境时shceme是“http"。
PORFILE: 创建的配置名称,可为任意字符串,但配置名称不能相同。
下面是在公网环境下的命令行配置信息,通过该配置,可操作京东云华东-上海区域的云资源:1MacBook:~ user001$ jdc configure show-current
2================= cn-east-2 ================
3access_key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
4secret_key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX<