我有一个简单的同源(一个控制器,几个服务器),5个appscale虚拟机的集群部署。在测试中,他们在我设置的最大和最小边界内运行我想要运行的appengine程序的数量。然后,在负载下,一个节点发生故障。其余的继续运行。我的独立负载平衡器处理得很好。我很高兴冗余能够让我恢复活力。尼斯。但是,如何让这个节点重新发挥作用呢?
如果快速回答是“它不受支持”,那么我真正的问题是:如何使用cassandra作为我的数据存储区进行黑客攻击?
答案 0 :(得分:0)
有一个名为appscale-add-instances
的命令可以为您解决此问题。还有更多文档here,但摘要是:
编写包含其IP地址的YAML文件。添加单个节点的示例如下:
memcache:192.168.10.3
taskqueue_slave:192.168.10.3
appengine:192.168.10.3
这表明我们有一台运行memcache,taskqueue和appengine服务的机器。
appscale-add-keypair --add_to_existing --ips your-yaml-file.yaml
以在新节点上同步SSH密钥。如果在Amazon EC2,Google Compute Engine或Eucalyptus上运行,请跳过此步骤。appscale-add-instances --ips your-yaml-file.yaml
添加新节点!旧答案(为子孙后代保存,以及我们如何实施此支持的演练):
所以快速回答是“它不受支持”。我看到添加崩溃节点的情况与一般添加新节点的情况非常相似,因此破解AppScale使其工作的方式如下:
appscale-add-nodes
的bin中创建一个新命令,该命令将一系列节点添加到当前正在运行的AppScale部署中。add_nodes_from_ips
(请参阅djinnServer.rb了解如何公开方法通过SOAP及其在djinn.rb
中的定义来了解它们如何实现它),它接受一个参数,即作为AppScale节点启动的IP列表。appscale-add-nodes
连接到Shadow AppController(其IP地址位于〜/ .appscale / locations-appscale.yaml中)并使用IP列表调用新的SOAP暴露方法以启动AppScale。< / LI>
醇>
您的SOAP暴露方法应该在每个IP地址上调用start_appcontroller
,以便在那里启动AppController守护程序并可以连接回其他AppControllers。要启动的角色列表取决于您 - 我建议使用open角色,以便AppScale可以决定使用新节点的内容。
这肯定是很多东西,但我很高兴在回复评论时更新这个答案(当然,我会在AppScale维基上为每个部分添加一个页面,如何通常将SOAP方法添加到AppController中。