我正在尝试将简单的 nginx pod 连接到 Nodeport 服务。但我收到一个错误,即连接被拒绝
I am trying to Connect simple nginx pod to Nodeport service. but i am getting a error i.e, Connection refused
root@Master:~# cat new-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: zero-pod
labels:
app: my-ns
spec:
containers:
- image: nginx
name: zero-pod
root@Master:~# cat nps.yaml
apiVersion: v1
kind: Service
metadata:
name: my-ns
spec:
ports:
- port: 80
protocol: TCP
targetPort: 8080
selector:
app: my-ns
type: NodePort
root@Master:~# kubectl get svc my-ns
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-ns NodePort 10.105.183.144 <none> 80:30007/TCP 48m
root@Master:~# curl 10.2.0.4:30007
curl: (7) Failed to connect to 10.2.0.4 port 30007: Connection refused
我创建了另一个连接到同一个 nodeport 服务的简单 helloworld pod,它正在运行。
root@Master:~# curl 10.2.0.4:30007
Hello, world!
Version: 2.0.0
Hostname: pod-theta
基本的东西是什么,我在这里面遗漏了什么,或者我们根本无法将 nginx 服务器连接到 nodeport。
如果没有,我看到 nginx 正在通过部署连接到 nodeport,它是如何工作的,有人可以解释一下吗??
官方 nginx
容器中的 nginx
服务监听端口 80
,而不是端口 8080
。您需要更新 Service
:
中的 targetPort
设置
apiVersion: v1
kind: Service
metadata:
name: my-ns
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: my-ns
type: NodePort
虽然不是绝对必要,但我会在您的 Pod
清单中定义端口,可能带有名称,这样您最终会得到这个 Pod
清单:
apiVersion: v1
kind: Pod
metadata:
name: zero-pod
labels:
app: my-ns
spec:
containers:
- image: nginx
name: zero-pod
ports:
- containerPort: 80
name: http
还有这个Service
:
apiVersion: v1
kind: Service
metadata:
name: my-ns
spec:
ports:
- port: 80
protocol: TCP
targetPort: http
selector:
app: my-ns
type: NodePort
root@Master:~# cat new-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: zero-pod
labels:
app: my-ns
spec:
containers:
- image: nginx
name: zero-pod
root@Master:~# cat nps.yaml
apiVersion: v1
kind: Service
metadata:
name: my-ns
spec:
ports:
- port: 80
protocol: TCP
targetPort: 8080
selector:
app: my-ns
type: NodePort
root@Master:~# kubectl get svc my-ns
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-ns NodePort 10.105.183.144 <none> 80:30007/TCP 48m
root@Master:~# curl 10.2.0.4:30007
curl: (7) Failed to connect to 10.2.0.4 port 30007: Connection refused
我创建了另一个连接到同一个 nodeport 服务的简单 helloworld pod,它正在运行。
root@Master:~# curl 10.2.0.4:30007
Hello, world!
Version: 2.0.0
Hostname: pod-theta
基本的东西是什么,我在这里面遗漏了什么,或者我们根本无法将 nginx 服务器连接到 nodeport。
如果没有,我看到 nginx 正在通过部署连接到 nodeport,它是如何工作的,有人可以解释一下吗??
官方 nginx
容器中的 nginx
服务监听端口 80
,而不是端口 8080
。您需要更新 Service
:
targetPort
设置
apiVersion: v1
kind: Service
metadata:
name: my-ns
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: my-ns
type: NodePort
虽然不是绝对必要,但我会在您的 Pod
清单中定义端口,可能带有名称,这样您最终会得到这个 Pod
清单:
apiVersion: v1
kind: Pod
metadata:
name: zero-pod
labels:
app: my-ns
spec:
containers:
- image: nginx
name: zero-pod
ports:
- containerPort: 80
name: http
还有这个Service
:
apiVersion: v1
kind: Service
metadata:
name: my-ns
spec:
ports:
- port: 80
protocol: TCP
targetPort: http
selector:
app: my-ns
type: NodePort