VSCode devcontainer подключается к кластеру Kubernetes на виртуальной машине

Конечная цель

Из контейнера devcontainer dotnet / core / sdk (с использованием удаленных контейнеров VSCode) отладьте приложение .NET Core, работающее в кластере kubernetes, размещенном на другой виртуальной машине моего хоста.

Текущая настройка

  • Docker Desktop for Windows running via Hyper-V
    • default DockerNAT network adapter
  • Ubuntu VM (multipass) running on same Hyper-V host
    • microk8s cluster running on this ubuntu instance
    • сетевой адаптер по умолчанию "Коммутатор по умолчанию"

Ошибки

  • Когда я пытаюсь выполнить эхо-запрос ubuntu vm из контейнера докеров по имени хоста, IP-адрес разрешается правильно, но я получаю сообщение об ошибке «Destination Host Unreachable»
  • Когда я пытаюсь скрутить api кластера, я получаю сообщение об ошибке «Нет маршрута к хосту».

person matrumz    schedule 22.01.2020    source источник
comment
Итак, у вас есть машина, на которой работает Windows (в виртуальной среде) и виртуальная Ubuntu, которая, в свою очередь, запускает micro k8s. Правильно ли я в этом вопросе? Можете ли вы пинговать, например, 8.8.8.8 из контейнера докеров? Можете ли вы получить доступ к кластеру aoi из Ubuntu?   -  person Nick    schedule 23.01.2020
comment
Моя хост-машина - это Windows 10 Pro, на которой запущен Docker для рабочего стола (контейнеры Linux) и виртуальный Ubuntu. Докер Bock и ubuntu работают через Hyper-V. Кластер microk8s работает в виртуальной Ubuntu. Из контейнера докеров я могу без проблем пинговать 8.8.8.8 и google.com. Из ubuntu vm я могу получить доступ к api кластера. Из контейнера докеров я могу разрешить имя хоста ubuntu (microk8s.mshome.net), но получаю Destination Host Unreachable.   -  person matrumz    schedule 23.01.2020
comment
Похоже, проблема с сетью между Docker и Ubuntu. Вы пытались создать единый NAT и подключить к нему виртуальные машины, как описано в docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/?   -  person Nick    schedule 27.01.2020
comment
Я поместил обе виртуальные машины в сеть DockerNAT по умолчанию, но это не сработало. Я бы попробовал ваше предложение, но по неизвестным причинам проблема больше не воспроизводится, как я объясню в своем решении.   -  person matrumz    schedule 27.01.2020


Ответы (1)


Я отложил эту проблему на неделю, и за это время хост был перезагружен несколько раз, но никаких дальнейших изменений в сети, настройке Hyper-V и т. Д. Не производилось.

При запуске виртуальной машины Ubuntu сегодня IP-адрес изменился с того, что было раньше 172.?.?.? на 192.168.92.x. Я не знаю, что вызвало это изменение.

Теперь контейнеры Docker Desktop могут проверить связь с виртуальной машиной Ubuntu и свернуть конечную точку microk8s / api. До тех пор, пока я не смогу воспроизвести проблему, я помечу этот вопрос как «решенный», открою повторно и попробую рекомендованное Ником решение, если проблема вернется.

person matrumz    schedule 27.01.2020