Я развертываю приложение весенней загрузки в minikube, которое подключается к базе данных, запущенной на хосте. Где мне найти IP-адрес, который приложение может использовать для возврата к хосту? Для докера я могу использовать ifconfig
и получить IP-адрес из записи docker0
. ifconfig
показывает другое устройство с IP-адресом 172.18.0.1
. Так мое приложение вернется на хост?
Где найти IP-адрес хоста для приложения, развернутого в minikube
Ответы (2)
Думаю, я правильно вас понял, и это то, о чем вы просите.
Minikube запускается на вашем компьютере как виртуальная машина. Вам нужно знать IP, с которого начинается Minikube. Это можно сделать с помощью minikube status
или minikube ip
, вывод может выглядеть так:
$ minikube status
minikube: Running
cluster: Running
kubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.1
Это предоставит вам только IP-адрес Minikube, а не ваше приложение. Чтобы подключиться к вашему приложению извне Minikube, вам необходимо предоставить его как Сервис.
Пример Service
может выглядеть так:
apiVersion: v1
kind: Service
metadata:
name: webapp
spec:
type: NodePort
ports:
- nodePort: 31317
port: 8080
protocol: TCP
targetPort: 8080
selector:
app: webapp
Вы можете увидеть результаты:
$ kubectl get services -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
postgres ClusterIP 10.0.0.140 <none> 5432/TCP 32m app=postgres
webapp NodePort 10.0.0.235 <none> 8080:31317/TCP 2s app=webapp
Вы сможете подключиться к веб-приложению изнутри кластера, используя 10.0.0.235:8080
из вне кластера, используя Minikube IP
и порт 31317
.
Я также рекомендую пройти курс Hello Minikube.
Это был 172.18.0.1
IP-адрес. Я передал его приложению Spring, работающему в minikube, с такой конфигурационной картой:
kubectl create configmap springdatasourceurl --from-literal=SPRING_DATASOURCE_URL=jdbc:postgresql://172.18.0.1:5432/bookservice
Приложению также необходимо, чтобы SPRING_DATASOURCE_DRIVER_CLASS_NAME
было установлено в карте конфигурации, а учетные данные SPRING_DATASOURCE_PASSWORD
и SPRING_DATASOURCE_USERNAME
были установлены как секреты.
Дополнительную информацию о configmap и секрете можно найти здесь.