gpt4 book ai didi

docker - NodePort 错误连接被拒绝(Docker Desktop、Windows、Kubernetes)

转载 作者:行者123 更新时间:2023-12-05 02:42:57 25 4
gpt4 key购买 nike

每次我尝试访问我机器上的 NodePort 时,它都会显示“错误连接被拒绝”。我不明白,因为我在网上阅读的示例暗示我可以在我的笔记本电脑上运行 Docker Desktop,连接到集群,并通过它们的节点端口访问服务。

我的机器:

  • Windows 10
  • Docker Desktop(使用 k3sminikube 进行了额外测试,结果相似)
  • Kubernetes 1.19+

Kubernetes 配置:

apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: ngnix-service
spec:
selector:
app: nginx
type: NodePort
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 30007

输出和 cURL 测试:

PS C:\Users\ME\nginx> kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 169m
ngnix-service NodePort 10.108.214.243 <none> 80:30007/TCP 7m19s

PS C:\Users\ME\nginx> curl.exe http://localhost:30007
curl: (7) Failed to connect to localhost port 30007: Connection refused

我也尝试过节点 ip:

PS C:\Users\ME\nginx> kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
docker-desktop Ready master 6d v1.19.7 192.168.65.4 <none> Docker Desktop 5.10.25-linuxkit docker://20.10.5

PS C:\Users\ME\nginx> curl.exe http://192.168.65.4:30007
curl: (7) Failed to connect to 192.168.65.4 port 30007: Timed out

尝试从我的浏览器 (Chrome) 访问 NodePort 时,我得到了相同的响应。 ERR_CONNECTION_REFUSED

有什么我想念的吗?为什么所有 NodePort 都无法访问?

最佳答案

Kubernetes 在本地运行,仍然在其内部网络上运行。

curl.exe http://192.168.65.4:30007

这里您使用的是内部 Kubernetes 网络的 IP 地址。您必须公开您的 Kubernetes 服务,以便它获得集群外部地址。

看这部分:

EXTERNAL-IP
<none>

您通常使用类型为Loadbalancer 的服务或使用 Ingress-gateway 在集群外部公开服务。

查看此 answer关于如何将服务从 type:NodePort 更改为 type: LoadBalancer 以将其公开给本地主机。

访问服务的最简单方法是使用kubectl port-forward,例如

kubectl port-forward ngnix-service 8080:80

然后你就可以在localhost:8080上访问了。

参见 Use Port Forwarding to Access Applications in a Cluster

关于docker - NodePort 错误连接被拒绝(Docker Desktop、Windows、Kubernetes),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67167114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com