我在docker桌面macOS上通过minikube在本地运行Kubernetes。我想通过外部IP访问Kubernetes服务。我的问题在Stackoverflow上也有一些类似的主题,但它来自1或2年前,我在该主题中做了相应的回答,但没有成功,所以我创建了一个新的主题,其中包含有关我当前案例的完整信息。
kubectl版本:
Client Version: v1.29.0
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.28.3
字符串
minikube版本
minikube version: v1.32.0
型
docker版本
Client:
Cloud integration: v1.0.35+desktop.5
Version: 24.0.7
API version: 1.43
Go version: go1.20.10
Git commit: afdd53b
Built: Thu Oct 26 09:04:20 2023
OS/Arch: darwin/arm64
Context: desktop-linux
Server: Docker Desktop 4.26.1 (131620)
Engine:
Version: 24.0.7
API version: 1.43 (minimum version 1.12)
Go version: go1.20.10
Git commit: 311b9ff
Built: Thu Oct 26 09:08:15 2023
OS/Arch: linux/arm64
Experimental: false
containerd:
Version: 1.6.25
GitCommit: d8f198a4ed8892c764191ef7b3b06d8a2eeb5c7f
runc:
Version: 1.1.10
GitCommit: v1.1.10-0-g18a0cb0
docker-init:
Version: 0.19.0
GitCommit: de40ad0
型
服务的manifest文件,使用服务类型NodePort,Pod和Service仍在运行
kind: Service
apiVersion: v1
metadata:
name: web-service
namespace: default
uid: c5e8ffa5-ac4a-4db0-a692-a1e92c048280
resourceVersion: '12791'
creationTimestamp: '2024-01-02T18:51:05Z'
labels:
app: nginx
managedFields:
# ignore data
spec:
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 31856
selector:
app: nginx
clusterIP: 10.111.115.68
clusterIPs:
- 10.111.115.68
type: NodePort
sessionAffinity: None
externalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
internalTrafficPolicy: Cluster
status:
loadBalancer: {}
型
在终端运行minikube ip
获取外部ip是192.168.49.2,然后运行curl 192.168.49.2:31856
,超时不返回响应
x1c 0d1x的数据
我试着站在minikube节点minikube ssh
,然后再试一次curl 192.168.49.2:31856
,它返回一个响应成功。我想可能是Docker桌面的网络出错了,但找不到修复方法
我继续使用port-forward by命令kubectl port-forward --address 0.0.0.0 service/web-service 80:80
来通过端口服务80进行转发
运行curl localhost:80
,它的响应成功与ssh到minikube
相同
我试试curl 192.168.49.2:80
我想有一个配置可以连接从外部的minikube节点的IP,但我仍然没有找到正确的。请帮助我,如果你有任何理想的做。
谢谢你,谢谢
1条答案
按热度按时间gv8xihay1#
如果你正在使用minikube,那么我建议你使用minikube tunnel命令来访问你的服务。
字符串
你可以从这里阅读更多