创建服务。执行 curl http://$(minikube ip):32000

问题描述 投票:0回答:1

(WSL2、minikube、Windows 11、Calico 插件、Docker-Desktop)

我根本不明白为什么curl在做

curl http://$(minikube ip):32000
的时候会超时。 我看到了SO问题但它们不适用。

$ k create deploy nginxsvc --image=nginx --replicas=3
$ k expose deploy nginxsvc --port=80

然后我编辑服务以将服务类型更改为 NodePort。

$ k get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 18d
nginxsvc NodePort 10.103.11.225 <none> 80:32000/TCP 19m
regular-encourager NodePort 10.102.236.129 <none> 8080:32058/TCP 15d

$ curl http://$(minikube ip):32000
curl: (28) Failed to connect to 192.168.49.2 port 32000: Connection timed out

$ k describe svc nginxsvc

Name: nginxsvc

Namespace: default

Labels: app=nginxsvc

Annotations: <none>

Selector: app=nginxsvc

Type: NodePort

IP Family Policy: SingleStack

IP Families: IPv4

IP: 10.103.11.225

IPs: 10.103.11.225

Port: <unset> 80/TCP

TargetPort: 80/TCP

NodePort: <unset> 32000/TCP

Endpoints: 10.244.1.233:80,10.244.1.234:80,10.244.1.235:80

Session Affinity: None

External Traffic Policy: Cluster

Events: <none>

$ k get svc nginxsvc -o yaml
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: "2023-03-28T23:18:04Z"
  labels:
    app: nginxsvc
  name: nginxsvc
  namespace: default
  resourceVersion: "531373"
  uid: fcd7960e-8610-4099-a014-9b4ce94cdec2
spec:
  clusterIP: 10.103.11.225
  clusterIPs:
  - 10.103.11.225
  externalTrafficPolicy: Cluster
  internalTrafficPolicy: Cluster
  ipFamilies:
  - IPv4
  ipFamilyPolicy: SingleStack
  ports:
  - nodePort: 32000
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    app: nginxsvc
  sessionAffinity: None
  type: NodePort
status:
  loadBalancer: {}
kubernetes windows-subsystem-for-linux kubernetes-ingress minikube docker-desktop
1个回答
0
投票

正如@glv 所指出的out,

如果在Darwin、Windows上使用Docker驱动,网络会受限, 或 WSL,节点 IP 无法直接访问。

解决方案是

  1. 从 WSL 中删除 minikube

    minikube 删除 --purge

  2. 然后在 Windows 上安装 VirtualBox

  3. 安装 Ubuntu

  4. 在 Ubuntu 上安装 docker 然后安装 minikube

  5. 启动 minikube

    minikube 启动 --memory=6g --cpus=4 --driver=docker --cni=calico

现在所有之前失败的网络现在都在工作!

© www.soinside.com 2019 - 2024. All rights reserved.