亚马逊AWS
本教程中,我们将向您说明如何在AWS上创建一个3节点集群。
请在阅读本文时,获取源码并参考contrib/ec2中的脚本。
安装AWS命令行介面
为了使用亚马逊的API,我们需要安装awscli:
$ pip install awscli
Downloading/unpacking awscli
Downloading awscli-1.5.0.tar.gz (248kB): 248kB downloaded
...
Successfully installed awscli
配置aws-cli
运行aws configure设置你的AWS认证信息:
$ aws configure
AWS Access Key ID [None]: ***************
AWS Secret Access Key [None]: ************************
Default region name [None]: us-west-1
Default output format [None]:
上传密钥
生成并上传新的密钥对到AWS上,确保密钥对的名字为deis。
$ ssh-keygen -q -t rsa -f ~/.ssh/deis -N '' -C deis
$ aws ec2 import-key-pair --key-name deis --public-key-material file://~/.ssh/deis.pub
选择实例数量
脚本将默认开通3台服务器。你可以通过设置DEIS_NUM_INSTANCES修改该值:
$ export DEIS_NUM_INSTANCES=5
注意,为保证调度正常工作,集群必须至少由三个节点组成,并且成员数量永远为奇数。更多信息,见“最佳的etcd集群规模”。
不支持少于三个节点的Deis集群。
生成新的发现URL
发现URL将节点的地址和元数据保存在一个唯一的标识下,以将etcd实例连接在一起。在仓库根目录下运行以下命令来生成一个带有新的发现URL的contrib/coreos/user-data文件:
$ make discovery-url
user-data中包含了必要的脚本,因此不要在未运行make discovery-url前开通Deis集群。
自定义cloudformation.json
任何deis.template.json中默认定义的参数都能被cloudformation.json中设置的值覆盖,比如:
{
"ParameterKey": "InstanceType",
"ParameterValue": "m3.xlarge"
},
{
"ParameterKey": "KeyPair",
"ParameterValue": "jsmith"
},
{
"ParameterKey": "EC2VirtualizationType",
"ParameterValue": "PV"
},
{
"ParameterKey": "AssociatePublicIP",
"ParameterValue": "false"
}
cloudformation.json中用于启动集群的唯一必要的条目是KeyPair,这已经填写好了。其他设置将由默认值指定。
如果使用update-ec2-cluster.sh进行更新,InstanceType参数将只影响新部署的实例(#1758)。
注意:最小的推荐实例规模很大。使用集群时,CPU或内存不足将引起各种问题。
启动现存VPC
默认情况下,提供的CloudFormation脚本将为Deis创建一个新VPC。不过,这个脚本也支持开通到现有VPC中。你需要一台配置了因特网网关的VPC和一个健全的路由表(一个区域内的初始VPC已经准备完成)。
为了在现有VPC中启动集群,需要设置三个额外的环境变量:
- VPC_ID
- VPC_SUBNETS
- VPC_ZONES
VPC_ZONES必须按顺序列出子网的可用区域。
比如,假设你的VPC的ID是vpc-a26218bf,由子网subnet-04d7f942(位于us-east-1b)和subnet-2b03ab7f(us-east-1c),你需要设置:
export VPC_ID=vpc-a26218bf
export VPC_SUBNETS=subnet-04d7f942,subnet-2b03ab7f
export VPC_ZONES=us-east-1b,us-east-1c
运行开通脚本
运行cloudformation开通脚本来生成一个新的CoreOS集群:
$ cd contrib/ec2
$ ./provision-ec2-cluster.sh
{
"StackId": "arn:aws:cloudformation:us-west-1:413516094235:stack/deis/9699ec20-c257-11e3-99eb-50fa01cd4496"
}
Your Deis cluster has successfully deployed.
Please wait for all instances to come up as "running" before continuing.
检查AWS EC2网页控制面板,并等待所有实例的“Status Checks”通过。这将花费数分钟时间。
配置DNS
参考“配置DNS”获取正确设置Deis相关DNS记录的更多信息。
安装Deis平台
现在你已经完成了集群开通,请参考“安装Deis平台”开始平台安装。