在哪里可以找到部署在 minikube 中的应用程序的主机 IP 地址
Where do I find the host IP address for an app deployed in minikube
我正在 minikube 中部署 spring 启动应用程序,它连接到主机上的数据库 运行。我在哪里可以找到应用程序可以用来返回主机的 IP 地址?对于 docker,我可以使用 ifconfig
并从 docker0
条目中获取 IP 地址。 ifconfig
显示另一台 IP 地址为 172.18.0.1
的设备。这就是我的应用返回主机的方式吗?
我想我理解正确,这就是您的要求。
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
从集群内部连接到 webapp,或者使用 Minikube IP
和端口 31317
从集群外部连接到 webapp。
我还建议阅读 Hello Minikube 教程。
这是 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
在 configmap 中设置,并将凭据 SPRING_DATASOURCE_PASSWORD
和 SPRING_DATASOURCE_USERNAME
设置为机密。
有关 configmap 和秘密的更多信息是 here。
我正在 minikube 中部署 spring 启动应用程序,它连接到主机上的数据库 运行。我在哪里可以找到应用程序可以用来返回主机的 IP 地址?对于 docker,我可以使用 ifconfig
并从 docker0
条目中获取 IP 地址。 ifconfig
显示另一台 IP 地址为 172.18.0.1
的设备。这就是我的应用返回主机的方式吗?
我想我理解正确,这就是您的要求。
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
从集群内部连接到 webapp,或者使用 Minikube IP
和端口 31317
从集群外部连接到 webapp。
我还建议阅读 Hello Minikube 教程。
这是 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
在 configmap 中设置,并将凭据 SPRING_DATASOURCE_PASSWORD
和 SPRING_DATASOURCE_USERNAME
设置为机密。
有关 configmap 和秘密的更多信息是 here。