Я пытаюсь настроить образец роя докеров для работы с моими микросервисами на облачной платформе Google. Проблема в том, что когда я закончил выполнять шаги во множественном числе, я не могу получить доступ к службе из указанного порта.
Сначала я установил docker и docker swarm через консоль каждого вычислительного движка Google.
Как я настроил брандмауэр:
Я создал новое правило брандмауэра, в котором было указано, что диапазоны фильтров: 0.0.0.0/0 и целевые теги: докер-менеджер и докер (мои экземпляры облачных вычислений Google).
Как я настроил диспетчер роя докеров:
Я выполнил следующую команду: sudo docker swarm init --advertise-addr 10.128.0.2:2377 --listen-addr 0.0.0.0:2377
рекламируемый адрес - это внутренний IP-адрес в облачном движке Google
Как я настроил присоединение к узлу для работника роя:
Я выполнил следующую команду: sudo docker swarm join --token SWMTKN-1-56672dd646yhdx7n1t62tmegakwxbvzc0kgj366otmdu5da086-eis4e8xqqgn1tn5iwxtdoy8he 10.128.0.2:2377 --advertise-addr enslisten.0: 2 377
Как я создал сервис:
Я выполнил следующую команду: sudo docker service create --name psight1 -p 8080: 8080 --replicas 5 nigelpoulton / pluralsight-docker-ci
Но когда я обращаюсь к сервису на внешнем IP-адресе облачных движков Google через порт 8080, он говорит, что его нельзя достичь. Я не понимаю.
правило брандмауэра состоит из 3 основных частей: источника, назначения и портов, которые вы хотите разрешить. Вы упомянули, что указали диапазон 0.0.0.0/0 и целевые теги назначения docker-manager и docker-worker.
1) «Целевые теги» относятся к сетевым тегам. Это не имя ваших экземпляров виртуальной машины, тег - это сетевой тег который вы добавили в свою виртуальную машину.
2) Вы должны либо открыть все порты, либо выбрать указанные порты и / или протоколы. Убедитесь, что трафик на порт 8080 разрешен. Не рекомендуется устанавливать фильтр источника на 0.0.0.0/0 и открывать все порты, это угроза безопасности.
Наконец, вы можете убедиться, что служба работает, подключившись к ней с одного экземпляра, используя внутренний IP-адрес вместо внешнего, чтобы убедиться, что служба настроена и работает правильно.