我在数字海洋上安装了 minikube,现在尝试从外部访问我的应用程序。但不知何故它不起作用。
我的服务yaml文件:
apiVersion: v1
kind: Service
metadata:
name: python-data-service
spec:
selector:
app: python-web-selector
tier: backend
ports:
- port: 5000
targetPort: 80
protocol: TCP
externalIPs:
- 64.225.117.89
type: LoadBalancer
64.225.117.89是我的水滴ip。
developer@Kubernetes:~/yaml_Files$ minikube service python-data-service
|-----------|---------------------|-------------|-------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|-----------|---------------------|-------------|-------------------------|
| default | python-data-service | 5000 | http://172.17.0.3:30718 |
|-----------|---------------------|-------------|-------------------------|
🎉 Opening service default/python-data-service in default browser...
developer@Kubernetes:~/yaml_Files$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 57s
python-data-service LoadBalancer 10.111.0.153 64.225.117.89 5000:30718/TCP 16s
sql-python-service ClusterIP None <none> 3306/TCP 15s
developer@Kubernetes:~/yaml_Files$ curl http://172.17.0.3:31306
<html>
<body>
<form method="POST" action="/postdata">
<input type="text" name="student_name">
<input type="text" name="student_id">
<input type="text" name="student_email">
<input type="text" name="student_phone">
<input type="text" name="student_class">
<input type="submit" value="Add">
</form>
</body>
developer@Kubernetes:~/yaml_Files$ curl http://localhost:5000
curl: (7) Failed to connect to localhost port 5000: Connection refused
我更改了数字海洋中的防火墙设置,但没有运气,有什么指示吗?
有两种方式可以通过 NodePort 或 LoadBalancer 访问 minikube 中的应用程序。
LoadBalancer类型的服务可以通过minikube tunnel
命令公开。它作为一个进程运行,使用集群的 IP 地址作为网关,在主机上创建到集群的服务 CIDR 的网络路由。 tunnel 命令将外部 IP 直接公开给主机操作系统上运行的任何程序。该命令当前作为单独的守护进程运行,并创建到 minikube VM 的网络路由。它将分配外部IP给您的服务,然后可以从您的主机访问它。 如果您想使用
NodePort
服务类型访问它,您必须获取 minikube ip 和节点端口,例如使用
minikube service $SERVICE_NAME --url
。要访问
localhost:node_port
,您必须从 minikube 内部访问它 (
minikube ssh
)。
我正在类型为 LoadBalancer 的数字海洋 Droplet 上运行 minikube。 运行 minikube 隧道给出的外部 IP 与服务 IP 相同,但无法借助外部 IP 访问它。
你能告诉我为什么会发生这种情况吗?