Как экспортировать порты Kubernetes на хост macOS?

Как экспортировать порты Kubernetes на хост macOS?

Я хочу настроить локальный кластер Kubernetes для тестирования на macOS. Я выбралmicrok8sпредоставлено Canonical. Kubernetes не работает на macOS, а использует виртуальную машину Linux, предоставленнуюмногопроходной.

Установка прошла гладко, а развертываниеkubernetes-учебный лагерьКажется, сработало. Вот что я получил на данный момент:

microk8s kubectl get services

NAME                  TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
kubernetes            ClusterIP   10.152.183.1     <none>        443/TCP          5h9m
kubernetes-bootcamp   NodePort    10.152.183.226   <none>        8080:31004/TCP   4h10m

multipass list

Name                    State             IPv4             Image
microk8s-vm             Running           192.168.64.2     Ubuntu 18.04 LTS

Пинг экземпляра с помощью ping ping 192.168.64.2работает так, как и ожидалось.

Обновлять: Я дополнительно протестировал подключение, установив nginx внутри VM. Использование curl http://192.168.64.2стартовой страницы nginx внутри VM проявилось на macOS.

Теперь, когда я подключаюсь к виртуальной машине с помощью shell multipass exec microk8s-vm -- bash, я могу curlвойти в свою развернутую службу, как и ожидалось, с помощью обоих:

  • curl http://127.0.0.1:31004
  • curl http://10.152.183.226:8080

Получение ожидаемого результата:

Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-57978f5f5d-d977w | v=1

Однако я пропустил шаг для доступа к этим URL из macOS (и curl, и браузер). Я безуспешно пытался:

  • curl http://10.152.183.226:8080
  • curl http://10.152.183.226:31004
  • curl http://192.168.64.2:8080
  • curl http://192.168.64.2:31004

Я, очевидно, упускаю шаг, чтобы сделать работающие службы доступными с хоста macOS. Что я упустил? Помощь очень ценится!

решение1

Эта 192.168.64.2 выглядит как сеть только для хоста и может быть внутренней сетью только для хоста. Можете ли вы пропинговать 192.168.64.2 с терминала Mac? multipass по умолчанию использует NAT для сети и не дает возможности изменить его на мостовой до multipass 1.6. Которая в данный момент является только источником. Я вижу 1.5, когда набираю multipass --version.

Вы можете обойти это в любом случае, используя ssh для перенаправления многопроходного порта на хост Mac. Из многопроходной оболочки AKA, multipass shellкоторая по умолчанию является первичной, запустите . Добавьте , если вы хотите, чтобы команда ssh port forward выполнялась в фоновом режиме, и добавьте , если вы хотите разрешить подключения с других хостов в той же сети, что и ваш Mac. Если ssh недоступен на вашем Mac, включите удаленный доступ или просто ssh logins (ssh server) для вашего имени пользователя в панели управления общим доступом в настройках на вашем Mac.ssh -R 8080 -R 31004 [email protected]-f-g

Связанный контент