我在Alibaba ECS
中有以下配置:
公共连接器和三个测试节点
Connector
在公共互联网上具有网络连接,并且在默认VPC
中具有默认VSwitch
。Connector
是使用 ECS Web 界面创建的。testnode[0-2]
计算机是使用 Alibaba cli 命令在脚本中创建的:aliyun.
当实例开始运行时,连接器无法 ping 任何实例。如果我在任何测试节点上设置密码,然后重新启动测试节点,ping 将开始工作。该脚本使用Connector
的快照作为测试节点的映像。"连接器"具有随机生成的、长且忘记的根密码。根访问是通过带有密码保护密钥对的 ssh 进行的。对于测试代码的非 root 用户,它也具有相同的功能。
我尝试的是使用以下CreateInstance
选项创建测试节点:
-
没有
--Password
,也没有--InheritPassword
选项(初衷:为什么要设置密码?我从连接器映像具有所需的访问权限( -
--InheritPassword
选项(我需要 root 密码才能使专用网络接口正常工作,连接器映像中的 root 密码很好( -
--Password
选项(我需要在测试节点上显式设置root密码(
结果都是一样的,直到我使用 ECS Web 界面设置密码并重新启动测试节点,Console
无法 ping 测试节点。
我所知道的:
-
这不是默认安全组、VPC 或交换机的问题,因为我没有接触这些实体上的任何设置以使 ping 正常工作。
-
这不是实例映像的问题,因为只要 ping 工作,测试节点的 ssh 也可以工作。
我做错了什么,或者我错过了什么?整个目的是启动实例,而无需在 ECS Web 界面上键入。我弄清楚了移动专用网络流量需要什么,因为我想调试测试节点上的情况,为此,我必须设置一个 root 密码并从 ECS Web 控制台获得访问权限,这再次违背了脚本的目的。
Aliyun
用于创建测试节点的命令:
aliyun ecs CreateInstance --ImageId m-2vchb2oxldfuloh51wp9 --RegionId=cn-chengdu --InstanceType=ecs.c6.xlarge --SpotStrategy SpotWithPriceLimit --SpotPriceLimit 0.25 --ZoneId cn-chengdu-a --InternetChargeType PayByTraffic --InternetMaxBandwidthOut 99 --InstanceName TEST_NODE-0 --HostName testnode0 --Password 'notgoingtotellyou'
所有实例的操作系统都是Ubuntu 18.0.4。
阿里云命令版本为3.0.30。
我得到了两个答案。一个来自同事。一个来自阿里巴巴。
同事的回答: 配置失败,因为我为非公共测试计算机创建的Unbuntu 18.0.4映像对内部网络接口使用了静态地址。我更改了内部网络接口(eth0
(以使用dhcp,并且全部工作。有关如何更改 IP 地址分配的信息,请参阅 netplan 配置示例。
阿里巴巴的回答是: 尝试使用aliyun ecs RunInstances
而不是三个单独的aliyun ecs CreateInstance
和aliyun ecs StartInstance
调用。我没有尝试这个解决方案,因为它会涉及重写我的脚本。阿里巴巴本可以通过解释为什么RunInstances
会产生与CreateInstance
和StartInstance
相结合不同的结果来激励我。