Rackspace

我们将主要遵循Rackspace上的CoreOS指南。你需要具备一个安装有pip完整的python环境(sudo easy_install pip)。

请在阅读本文时,获取源码并参考contrib/rackspace中的脚本。

安装supernova

  1. $ sudo pip install keyring
  2. $ sudo pip install rackspace-novaclient
  3. $ sudo pip install supernova

配置supernova

编辑~/.supernova以符合如下设定:

  1. [production]
  2. OS_AUTH_URL = https://identity.api.rackspacecloud.com/v2.0/
  3. OS_USERNAME = {rackspace用户名}
  4. OS_PASSWORD = {rackspace API密钥}
  5. OS_TENANT_NAME = {rackspace账号ID}
  6. OS_REGION_NAME = DFW (或ORD或其他区域)
  7. OS_AUTH_SYSTEM = rackspace

你的账号ID显示在云控制面板界面的右上角,你的API密钥可以在Account Settings页面找到。

生成SSH密钥

deisctl工具使用SSH通道与远程主机进行通讯。如果你没有SSH密钥,以下命令将生成一个名为deis的密钥对:

  1. $ ssh-keygen -q -t rsa -f ~/.ssh/deis -N '' -C deis

设置你的密钥

将密钥对信息发送给supernova,并给定一个可识别的名称:

  1. $ supernova production keypair-add --pub-key ~/.ssh/deis.pub deis-key

生成新的发现URL

发现URL将节点的地址和元数据保存在一个唯一的标识下,以此协助etcd实例连接在一起。在仓库根目录下运行以下命令来生成一个带有新的发现URL的contrib/coreos/user-data文件:

  1. $ make discovery-url

user-data中包含了必要的脚本,因此不要在未运行make discovery-url前开通Deis集群。

选择实例数量

默认情况下,开通脚本将开通3台服务器。你可以通过设置DEIS_NUM_INSTANCES覆盖这项数值:

  1. $ DEIS_NUM_INSTANCES=5 ./provision-rackspace-cluster.sh deis-key

注意,为保证调度正常工作,集群必须至少由三个节点组成,并且成员数量永远为奇数。更多信息,见“最佳的etcd集群规模”。

不支持少于三个节点的Deis集群。

运行开通脚本

运行Rackspace开通脚本来生成一个新的CoreOS集群。你需要提供刚刚添加的密钥对名称。另外,你还可以指定一个配置名以及要使用的supernova环境。默认情况下,环境值为production,配置名为performance1-2。

  1. $ cd contrib/rackspace
  2. $ ./provision-rackspace-cluster.sh
  3. Usage: provision-rackspace-cluster.sh <key pair name> [flavor] [environment]
  4. $ ./provision-rackspace-cluster.sh deis-key
注意
开通脚本默认开通performance1-2服务器。不推荐选择更小的服务器规格。请在选择运行Deis的服务器规格时参考“系统需求”中的资源要求。

配置DNS

参考“配置DNS”获取正确设置Deis相关DNS记录的更多信息。

配置负载均衡器

你需要在Rackspace上创建两个负载均衡器来处理你的集群:

  1. Load Balancer 1
  2. Port 80
  3. Protocol HTTP
  4. Health Monitoring -
  5. Monitor Type HTTP
  6. HTTP Path /health-check
  7. Load Balancer 2
  8. Virtual IP Shared VIP on Another Load Balancer (select Load Balancer 1)
  9. Port 2222
  10. Protocol TCP

安装Deis平台

现在你已经完成了集群开通,请参考“安装Deis平台”开始平台安装。