在docker desktop macos中部署时,外部IP无法访问kubernetes

mkshixfv  于 12个月前  发布在  Docker
关注(0)|答案(1)|浏览(151)

我在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,但我仍然没有找到正确的。请帮助我,如果你有任何理想的做。
谢谢你,谢谢

gv8xihay

gv8xihay1#

如果你正在使用minikube,那么我建议你使用minikube tunnel命令来访问你的服务。

minikube service <service-name> --url

字符串
你可以从这里阅读更多

相关问题