基于云的集群设置

用于集群管理的 Anaconda 可以在各种云服务上启动和引导集群。我们目前支持Amazon EC2。Microsoft Azure、Rackspace、Google Cloud Platform 等其他提供商也在我们的路线图中。如果您有兴趣使用此处未列出的云提供商,请通过sales @ anaconda与我们联系com .

云配置涉及使用profilesproviders。拆分配置允许用户轻松共享和分发特定的集群配置 ( profiles),同时保留私有身份验证凭据 ( providers)。

1. 提供者设置

身份验证和云定义在客户端计算机上的单个提供程序文件中进行管理:~/.acluster/providers.yaml. 一个提供程序文件可以包含多个具有不同设置和凭据的提供程序。

一个示例提供程序文件包含在用于集群管理的 Anaconda 的新安装中,位于~/.acluster/providers.yaml 客户端计算机上的文件中。您可以编辑此文件的内容以反映您的云提供商的设置和凭据。

下面显示~/.acluster/providers.yaml了一个名为aws_east为 Amazon EC2 配置的提供商的示例文件:

aws_east:
  cloud_provider: ec2
  keyname: my-private-key
  location: us-east-1
  private_key: ~/.ssh/my-private-key.pem
  secret_id: AKIAXXXXXX
  secret_key: XXXXXXXXXX

请注意,您需要访问从客户端计算机到集群节点的端口 22、4505 和 4506,以通过 SSH 和 Salt 配置集群。

有关提供程序设置(包括安全组)的更多详细信息,请参阅提供程序设置页面。

Linux 或 Mac:您应该将providers.yaml文件的权限设置为0600.

2. 配置文件设置

每个集群的设置都在一个配置文件中进行管理。

用于集群管理的 Anaconda 的新安装包含一个示例配置文件,位于~/.acluster/profiles.d/客户端计算机上的目录中。您可以编辑此文件的内容以反映集群的设置。

位于~/.acluster/profiles.d/profile_name.yaml 并命名profile_name的配置为使用aws_east提供程序的示例配置文件如下所示:

name: profile_name
provider: aws_east
num_nodes: 4
node_id: ami-d05e75b8  # Ubuntu 14.04, us-east-1 region
node_type: m3.large
user: ubuntu

用于集群管理的 Anaconda 支持并在 Amazon EC2(us-east-1 区域)上使用以下基于 Linux 的 AMI 进行测试,这些 AMI 可以设置为 node_id

操作系统 AMI 用户
Ubuntu 12.04 ami-08faa660 乌本图
Ubuntu 14.04 ami-d05e75b8 乌本图
CentOS 6.6 ami-d89fb7b0

有关在其他 Amazon EC2 区域中可用的 AMI 的更多信息,请参阅 Amazon EC2 文档Ubuntu Amazon EC2 AMI 定位器

有关配置文件设置的更多详细信息,请参阅配置文件设置页面。

3. 创建集群

使用以下命令启动具有指定配置文件的集群:

$ acluster create demo_cluster --profile profile_name

注意:替换demo_cluster为您的集群 profile_name名称和您的配置文件的名称。

执行此命令后,将创建基于云的集群,您将在任务和初始化步骤完成时看到更新。

典型的启动需要 5 到 10 分钟,输出类似于以下内容:

$ acluster create demo_cluster --profile profile_name
Creating cluster
Number of existing nodes: 0
Number of requested nodes: 4
Licensed nodes: 16
License is valid for the current number of nodes.
INFO: Creating new cluster "demo_cluster" with profile "profile_name"
INFO: Creating 4 instances
INFO: Instances configuration:
INFO:   Name: demo_cluster
INFO:   Security Group: ['all-open']
INFO:   Number of Nodes: 4
INFO:   Type: <NodeSize: id=m3.large, name=Large Instance, ram=7168
        disk=32000 bandwidth=None price=0.14 driver=Amazon EC2 ...>
INFO:   Location: us-east-1
INFO:   Additional Tags {'billingProject': 'anaconda-cluster'}
INFO: Successfully created instances
INFO: Cluster info: {'ips': ['54.81.228.35', '54.167.198.242',
      '54.145.107.208', '54.166.207.40'], 'user': 'ubuntu',
      'ids': ['i-29818d89', 'i-2c818d8c', 'i-2e818d8e', 'i-2f818d8f'],
      'name': u'demo_cluster'}
Saving cluster file
Cluster "demo_cluster": 4 nodes
Number of existing nodes: 4
Number of requested nodes: 0
Licensed nodes: 16
License is valid for the current number of nodes.
Checking ssh connection
INFO: Checking SSH connection
Checking sudo
Bootstraping conda
INFO: Installing miniconda
INFO: Anaconda URL: https://repo.anaconda.com/miniconda/Miniconda-latest-Linux-x86_64.sh
INFO: Checking conda installation
INFO: Checking conda installation
Bootstraping salt
INFO: Setting up Salt master and Minions
INFO: Creating conda env for salt
INFO: Installing salt
INFO: Settings grains/roles
INFO: Head roles: []
INFO: Compute roles: []
Starting salt
INFO: Flushing iptables rules
INFO: Setting SELinux to permissive
INFO: Starting salt-master daemon
INFO: Starting salt-minion daemon
Checking salt connection
Uploading formulas
INFO: Uploading formulas to head
INFO: Uploading profile
Syncing formulas
Done

集群现在可以使用了。

如果您在创建集群时遇到错误,请查看故障排除常见问题

4. 销毁集群

如果要销毁集群,请使用以下命令:

$ acluster destroy demo_cluster

注意:将demo_cluster上面的名称替换为集群的实际名称。

发出上述命令后,系统将提示您确认终止指定的集群。