Networking 在kubernetes中,吊舱对吊舱通信不起作用
我使用SpringBoot创建RESTAPI,并在加载时访问MongoDB。 我正在为RESTAPI做一个部署和服务,为mongodb做一个部署和服务 但我的restapipod正在崩溃,无法在加载时运行,它正在寻找mongodb服务,但它无法ping该主机 我已经将mongodb作为服务公开,也将RESTAPI作为服务公开。 RESTAPI作为NodePort公开,mongodb作为ClusReport公开 我尝试了一切,但没有解决办法 ================================================================MongoDB部署========================Networking 在kubernetes中,吊舱对吊舱通信不起作用,networking,kubernetes,Networking,Kubernetes,我使用SpringBoot创建RESTAPI,并在加载时访问MongoDB。 我正在为RESTAPI做一个部署和服务,为mongodb做一个部署和服务 但我的restapipod正在崩溃,无法在加载时运行,它正在寻找mongodb服务,但它无法ping该主机 我已经将mongodb作为服务公开,也将RESTAPI作为服务公开。 RESTAPI作为NodePort公开,mongodb作为ClusReport公开 我尝试了一切,但没有解决办法 ============================
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: tech-hunt-mongodb
spec:
replicas: 1
template:
metadata:
name: tech-hunt-mongodb
labels:
app: tech-hunt
module: mongodb
spec:
containers:
- image: <image>
name: tech-hunt-mongodb
ports:
- containerPort: 27017
apiVersion: v1
kind: Service
metadata:
name: tech-hunt-mongodb
spec:
#type: ClusterIP
selector:
app: tech-hunt
module: mongodb
ports:
- port: 27017
targetPort: 27017
protocol: TCP
clusterIP: None
#nodePort: 30000
#protocol: TCP
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: tech-hunt-api
spec:
template:
metadata:
name: tech-hunt-api
labels:
app: tech-hunt
module: rest-api
spec:
containers:
- image: <image>
name: tech-hunt-api
ports:
- containerPort: 4000
apiVersion: v1
kind: Service
metadata:
name: tech-hunt-api-client
spec:
type: NodePort
selector:
app: tech-hunt
module: rest-api-client
ports:
- port: 5000
targetPort: 5000
nodePort: 30010
==============================================REST API部署================================
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: tech-hunt-mongodb
spec:
replicas: 1
template:
metadata:
name: tech-hunt-mongodb
labels:
app: tech-hunt
module: mongodb
spec:
containers:
- image: <image>
name: tech-hunt-mongodb
ports:
- containerPort: 27017
apiVersion: v1
kind: Service
metadata:
name: tech-hunt-mongodb
spec:
#type: ClusterIP
selector:
app: tech-hunt
module: mongodb
ports:
- port: 27017
targetPort: 27017
protocol: TCP
clusterIP: None
#nodePort: 30000
#protocol: TCP
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: tech-hunt-api
spec:
template:
metadata:
name: tech-hunt-api
labels:
app: tech-hunt
module: rest-api
spec:
containers:
- image: <image>
name: tech-hunt-api
ports:
- containerPort: 4000
apiVersion: v1
kind: Service
metadata:
name: tech-hunt-api-client
spec:
type: NodePort
selector:
app: tech-hunt
module: rest-api-client
ports:
- port: 5000
targetPort: 5000
nodePort: 30010
clusterIP:None
这几乎肯定不是您希望发生的事情,因为这将填充端点的负担完全放在您或外部控制器上(例如StatefulSet
控制器)
您必须删除然后重新创建tech hunt mongodb
服务
,以便将其clusterIP
从None
更改为自动填充的值,但您必须首先确保这样做
但我的restapipod正在崩溃,无法在加载时运行,它正在寻找mongodb服务,但它无法ping该主机
仅供参考,您将永远无法“ping”a服务
IP,因为这些地址是“假的”;只有Service
IP的元组及其流量端口(在您的两个示例中是27017
或5000
)将响应任何数据包。您应该使用curl
或nc
来测试连接,而不是ping
clusterIP:None
这几乎肯定不是您希望发生的事情,因为这将填充端点的负担完全放在您或外部控制器上(例如StatefulSet
控制器)
您必须删除然后重新创建tech hunt mongodb
服务
,以便将其clusterIP
从None
更改为自动填充的值,但您必须首先确保这样做
但我的restapipod正在崩溃,无法在加载时运行,它正在寻找mongodb服务,但它无法ping该主机
仅供参考,您将永远无法“ping”a服务
IP,因为这些地址是“假的”;只有Service
IP的元组及其流量端口(在您的两个示例中是27017
或5000
)将响应任何数据包。您应该使用curl
或nc
来测试连接,而不是ping
我使用了错误的mongodb映像,无法访问客户端。因此,创建的容器不能通过curl或其他方式ping。
我正在使用NodePort,并且我的rest API容器能够从mongodb容器获得响应。我使用了错误的mongodb映像,无法访问客户端。因此,创建的容器不能通过curl或其他方式ping。
我正在使用NodePort,我的restapi容器能够从mongodb容器获得响应。您好,谢谢您的回答。我的服务现在起作用了,我犯了愚蠢的错误。现在我使用了正确的mongodb图像,一切都很好。嗨,Matthew,谢谢你的回答。我的服务现在起作用了,我犯了愚蠢的错误。现在我使用了正确的mongodb图像,现在一切正常。