我正在minikube中部署一个Spring Boot应用程序,该应用程序连接到主机上运行的数据库。我在哪里可以找到应用可用于返回主机的IP地址?对于docker,我可以使用ifconfig
并从docker0
条目中获取IP地址。 ifconfig
显示了另一个IP地址为172.18.0.1
的设备。那将是我的应用回到主机的方式吗?
答案 0 :(得分:0)
我想我正确地理解了你,这就是你要的。
Minikube作为计算机上的VM启动。您需要知道Minikube起始的IP。可以使用minikube status
或minikube ip
完成,输出可能类似于:
$ minikube status
minikube: Running
cluster: Running
kubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.1
这只会为您提供Minikube的IP地址,而不是您的应用程序。 为了从Minikube外部连接到您的应用,您需要将其公开为Service。
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
从群集内部连接到webapp。
我还建议您阅读Hello Minikube教程。
答案 1 :(得分:0)
它是172.18.0.1
IP地址。我将它传递给在minikube中运行的Spring应用程序,其配置图如下:
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和secret的更多信息是here。