(WSL2,minikube,Windows 11,Calico插件,Docker-Desktop)
我只是不明白为什么curl在做curl http://$(minikube ip):32000
的时候会超时。我看到了SO questions,但它们不适用。
$ 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: {}
1条答案
按热度按时间xv8emn3q1#
正如@glv指出的那样
如果在达尔文、Windows或WSL上使用Docker驱动程序,则网络受到限制,并且节点IP无法直接访问。
解决办法是
1.从WSL中删除minikube
minikube delete --purge
1.然后在Windows上安装VirtualBox
1.安装Ubuntu
1.在Ubuntu上安装docker,然后安装minikube,kubectl
1.启动小型机
minikube start --memory=6g --cpu =4 --driver=docker --cni=calico
现在所有的网络,以前失败了,现在工作!