Я хочу настроить локальный кластер 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