Я слежу этот руководство по началу работы с Kubernetes с использованием контейнеров Docker, которое является разновидностью этот официальное руководство изменено для использования docker-compose
.
Мне удалось дойти до перечисления узлов, используя
kubectl get nodes
но я могу это сделать, только если у меня открыто SSH-соединение с контейнером в другом окне, открытом с помощью
docker-machine ssh docker-vm -L 8080:localhost:8080
Это довольно неприятно, и я хотел бы справиться с этим в docker-compose.yml
, но я не знаю как
Я пробовал использовать ports
и expose
опции в iml файле, но они не работают. Когда я пытаюсь перенаправить / открыть порт 8080 и получить узлы, используя приведенный выше kubectl
команду, я получаю следующую ошибку:
error: couldn't read version from server: Get http://localhost:8080/api: EOF
Я использовал docker-compose.yml
по первой ссылке вверху, и внесли следующие изменения:
aipserver:
ports:
- "8080:8080"
expose:
- "8080"
Я пробовал это на всех контейнерах, указанных в docker-compose.yml
, но проблема не устранена.
Как я могу использовать docker-compose.yml
пересылать / открывать порты в моих контейнерах без необходимости открывать SSH-соединение с -L
опция указана.
Сервер API доступен в хост-сети на 127.0.0.1:8080
Если вы хотите выставить его на докер-машине vm, вам нужно изменить флаг --address на --address = 0.0.0.0: 8080 вместо --address = 127.0.0.1: 8080
Это отобразит его на адресе виртуальной машины на вашем компьютере (например, 1.2.3.4)
Если у вас правильно настроена переадресация портов виртуального ящика, это также сделает его доступным на localhost: 8080 на вашем компьютере.