gpt4 book ai didi

kubernetes - 无法通过使用来自不同 pod 的 cluster-ip curl 进入服务,面临连接超时,退出代码 7

转载 作者:行者123 更新时间:2023-12-02 11:39:44 24 4
gpt4 key购买 nike

在 Minikube 中,我使用下面提供的配置创建了一个 pod

kind: Pod
metadata:
name: node-js-pod
spec:
containers:
- name: node-js-pod
image: bitnami/apache:latest
ports:
- containerPort: 8080

然后我使用下面提供的配置创建了一个 cluster-ip 类型的服务

kind: Service
metadata:
name: node-js-internal
labels:
name: node-js-internal
spec:
ports:
- port: 8081
selector:
name: node-js

创建服务后,我使用命令检查了服务的集群 ip:kubectl get services -l name=node-js-internal输出为:

NAME               TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
node-js-internal ClusterIP 10.106.71.114 <none> 8081/TCP 18m

创建此服务后,我尝试使用以下命令从 node-js-pod 内部访问此服务:kubectl exec node-js-pod -- curl 10.106.71.114:8081当 curl 7 连接超时时给出错误消息:

$ kubectl exec node-js-pod -- curl 10.106.71.114:8081
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:02:10 --:--:-- 0curl: (7) Failed to connect to 10.106.71.114 port 8081: Connection timed out
command terminated with exit code 7

如何从 minikube 中的 pod node-js 连接到 node-js-internal 服务?

最佳答案

在服务中使用与容器正在监听的端口相同的端口。

kind: Service
metadata:
name: node-js-internal
labels:
name: node-js-internal
spec:
ports:
- port: 8080
selector:
name: node-js-pod

如果你想在服务中有一个不同的端口,而不是容器正在监听,你需要在服务中指定一个映射

ports:
- protocol: TCP
port: 8081
targetPort: 8080

关于kubernetes - 无法通过使用来自不同 pod 的 cluster-ip curl 进入服务,面临连接超时,退出代码 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55783128/

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