У меня есть следующая конфигурация в Alibaba ECS
:
Public Connector и три тестовых узла
Connector
имеет сетевые подключения к общедоступному Интернету и по умолчанию VSwitch
по умолчанию VPC
. Connector
создано с помощью веб-интерфейса ECS. Компьютеры testnode[0-2]
были созданы в скрипте с помощью команды Alibaba cli: aliyun.
Когда экземпляры начинают работать, коннектор не может проверить связь ни с одним из них. Если я устанавливаю пароль на любом из тестовых узлов, а затем перезапускаю тестовый узел, ping начинает работать. Сценарий использует снимок Connector
в качестве образа для тестовых узлов. «Коннектор» имеет случайно сгенерированный, длинный и забытый пароль root. Доступ root осуществляется через ssh с парой ключей, защищенной паролем. Он также имеет то же самое для пользователя без полномочий root для тестового кода.
Я пробовал создавать тестовые узлы со следующими параметрами CreateInstance
:
Нет параметров
--Password
и--InheritPassword
(первоначальный замысел: зачем устанавливать пароль? У меня есть доступ, который мне нужен, из образа Connector)Вариант
--InheritPassword
(мне нужен пароль root для работы частных сетевых интерфейсов, пароль root в образе Connector подходит)Опция
--Password
(мне нужно явно установить пароль root на тестовых узлах)
Результат все тот же, пока я не использую веб-интерфейс ECS для установки пароля и перезапуска тестового узла, Console
не может пропинговать тестовые узлы.
Что я знаю:
Это не проблема с группой безопасности по умолчанию, VPC или VSwitch, поскольку я не трогаю настройки этих объектов, чтобы пинг работал.
Это не проблема с образом экземпляра, потому что, как только работает ping, работает и ssh для тестовых узлов.
Что я делаю не так, или что я упускаю? Вся цель состоит в том, чтобы развернуть экземпляры без необходимости вводить данные в веб-интерфейсе ECS. Я понял, что нужно для того, чтобы запустить трафик частной сети, потому что я хотел отладить ситуацию на тестовых узлах, и для этого мне нужно было установить пароль root и получить доступ из веб-консоли ECS, что опять же побеждает цель скриптинга.
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.
Команда Aliyun версия 3.0.30.
1 ответ
Я получил два ответа. Один от коллеги. Один от Алибабы.
Ответ коллеги: Конфигурация не удалась, потому что образ Unbuntu 18.0.4, который я создал для закрытых тестовых компьютеров, использовал статический адрес для внутреннего сетевого интерфейса. Я изменил внутренний сетевой интерфейс (eth0
) на использование dhcp, и все заработало. См. примеры конфигурации netplan, чтобы узнать, как изменить назначенный IP-адрес.
Ответ Alibaba: Попробуйте использовать aliyun ecs RunInstances
вместо трех отдельных вызовов aliyun ecs CreateInstance
и aliyun ecs StartInstance
. Я не пробовал это решение, так как оно потребовало бы переписывания моих сценариев. Alibaba могла бы сделать больше, чтобы мотивировать меня, объяснив, почему RunInstances
даст другой результат, чем комбинация CreateInstance
и StartInstance
.
Похожие вопросы
Новые вопросы
alibaba-cloud
Alibaba Cloud (www.alibabacloud.com), дочерняя компания Alibaba Group, является глобальной компанией облачных вычислений. Alibaba Cloud предоставляет набор услуг облачных вычислений, который охватывает эластичные вычисления, хранение объектов, реляционную базу данных, анализ больших данных и искусственный интеллект в пятнадцати географических регионах по всему миру.