Когда minikube на Ma c запрашивается URL-адрес, почему он вместо этого запускает службу в туннеле? - PullRequest
2 голосов
/ 06 августа 2020

Я установил последнюю версию Docker, Minikube и kubectl на свой Ma c (Catalina). У меня также есть недавний MySQL с правильно установленной командной строкой в ​​PATH. Я использую стандартный терминал (zsh).

Docker запускается нормально, сообщает мне об установленных модулях.

Minikube запускается нормально, а kubectl получает все отчеты на его артефактах просто отлично.

Jeromes-MacBook-Pro:cloudnative-statelessness jerome$ kubectl get all
NAME                         READY   STATUS    RESTARTS   AGE
pod/mysql-7dbfd4dbc4-sz8ps   1/1     Running   0          15m

NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
service/kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP          20m
service/mysql-svc    NodePort    10.111.176.15   <none>        3306:30022/TCP   15m

NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/mysql   1/1     1            1           15m

NAME                               DESIRED   CURRENT   READY   AGE
replicaset.apps/mysql-7dbfd4dbc4   1         1         1       15m

Когда я запускаю службу minikube mysql -sv c --url, я ожидаю получить URL-адрес, как этот, с другой машины: http://192.168.99.101: 31067 . Вместо этого я вижу кое-что о запуске службы в «туннеле»:

Jeromes-MacBook-Pro:cloudnative-statelessness jerome$ minikube service mysql-svc --url
?  Starting tunnel for service mysql-svc.
|-----------|-----------|-------------|------------------------|
| NAMESPACE |   NAME    | TARGET PORT |          URL           |
|-----------|-----------|-------------|------------------------|
| default   | mysql-svc |             | http://127.0.0.1:64966 |
|-----------|-----------|-------------|------------------------|
http://127.0.0.1:64966
❗  Because you are using a Docker driver on darwin, the terminal needs to be open to run it.

В этот момент терминал не отвечает.

Я считаю, что сервис minikube SERVICENAME должен попытаться запустить службу, а также вернуть этот блок текста. Я также считаю, что суффикс --url должен просто возвращать то, что находится в столбце URL, и пропускать запуск службы.

Любые хорошие объяснения того, как я могу получить желаемый результат на моем Ma c?

И, кстати, как мне восстановить контроль над сеансом терминала, если в нем говорится «Потому что ...»?

Спасибо,

Джером.

ОБНОВЛЕНИЕ ОТ 14.08.2020:

Я последовал совету Сараванана. Я удалил Docker со своего Ma c и использовал homebrew для установки docker + docker -machine + virtualbox (см. https://www.robinwieruch.de/docker-macos). Когда я запускаю «minikube service mysql -sv c --url», проблема с туннелем больше не возникает. Спасибо, Сараванан.

Мои проблемы переросли в получение правильной версии моих контейнеров (скомпилированные приложения, затем запускаемые через docker сборку) из Docker Hub. В файле YAML у меня есть точки на моем аккаунте, но я боюсь, что у меня устаревшая версия. Что мне сделать, чтобы перезаписать текущую версию на моем Ma c или удалить контейнеры Docker, чтобы kubectl create мог получить обновленную версию?

1 Ответ

2 голосов
/ 13 августа 2020

Причина в том, что ваш образ minikube запущен в контейнере. Попробуйте изменить конфигурацию, чтобы запустить ее в виртуальном поле. Тогда вы сможете подключиться к своему модулю sql без туннелирования.

# first delete the existing minikube image
$ minikube delete

# change the minikube driver to virtualbox
$ minikube config set vm-driver virtualbox

# start minikube again
$ minikube start

Убедитесь, что у вас установлен виртуальный ящик, прежде чем продолжить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...