我使用部署结构部署了我的应用程序。我的广告连播的状态为Running
,并且对广告连播的IP进行 curl 会返回应用程序内容。但是,当我使用kubectl expose deployment
创建服务并且 curl 服务的IP时,curl会引发Connection refused
错误。为什么呢?
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
cge-frontend-5d4595469b-qvcsd 0/1 Running 0 19s 10.40.0.4 compute04 <none> <none>
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
cge-frontend ClusterIP 10.98.212.184 <none> 80/TCP 16m
$ curl 10.98.212.184
curl: (7) Failed connect to 10.98.212.184:80; Connection refused
答案 0 :(得分:1)
使用kubectl describe svc
命令调查了我的服务之后。我冒充我的服务没有Endpoints
-端点部分应列出pod的IP。
$ kubectl describe svc cge-frontend
Name: cge-frontend
Namespace: default
Labels: app=cge-frontend
Annotations: <none>
Selector: app=cge-frontend
Type: ClusterIP
IP: 10.98.212.184
Port: <unset> 80/TCP
TargetPort: 80/TCP
Endpoints:
Session Affinity: None
事实证明,错误是由我的probe
之一导致我的广告连播处于Running
状态而不是Ready
状态引起的。固定探针,固定我的吊舱,然后固定服务。
修复探针后,我的吊舱现在处于正确状态READY 1/1
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
cge-frontend-5d4595469b-qvcsd 1/1 Running 0 19s 10.40.0.5 compute04 <none> <none>