基于云的集群设置¶
用于集群管理的 Anaconda 可以在各种云服务上启动和引导集群。我们目前支持Amazon EC2。Microsoft Azure、Rackspace、Google Cloud Platform 等其他提供商也在我们的路线图中。如果您有兴趣使用此处未列出的云提供商,请通过sales @ anaconda与我们联系。com .
云配置涉及使用profiles
和providers
。拆分配置允许用户轻松共享和分发特定的集群配置 ( 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
上面的名称替换为集群的实际名称。
发出上述命令后,系统将提示您确认终止指定的集群。