![](/img/trans.png)
[英]Kubernetes - do I need to use https for container communication inside a pod?
[英]Pod to Pod communication is not working in kubernetes
我正在使用 Spring Boot 創建 REST API 並在加載時訪問 MongoDB。 我正在為 REST API 制作一項部署和服務,為 mongodb 制作一項部署和服務。
但是我的 REST API pod 壞了,在加載時沒有出現,它尋找 mongodb 服務,但它無法 ping 那個主機。
我已將 mongodb 作為服務公開,並將 REST API 作為服務公開。 REST API 作為 NodePort 公開,mongodb 作為 ClusreIP 公開。
我嘗試過的一切,但沒有解決方案。
================================== MongoDB部署============ ============
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
================================== MongoDB 服務============ ============
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
==========================REST API 部署==================== ============
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
==============================REST API 服務================ ==============
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
幾乎肯定不是您想要發生的事情,因為這將填充Endpoints
的負擔完全放在您身上 - 或者外部控制器( StatefulSet
控制器就是這樣的一個例子)。
您必須刪除,然后重新創建tech-hunt-mongodb
Service
,以便將其clusterIP
從None
更改為自動填充的值,但您應該首先這樣做。
但是我的 REST API pod 壞了,在加載時沒有出現,它尋找 mongodb 服務,但它無法 ping 那個主機。
作為僅供參考,您將永遠無法“ping” Service
IP,因為這些地址是“假的”; 只有Service
IP 的元組及其流量端口(因此,在您的兩個示例中為27017
或5000
)將響應任何數據包。 您應該使用curl
或nc
來測試連接性,而不是ping
。
我使用了錯誤的 mongodb 圖像,該圖像無法訪問客戶端。 因此,創建的容器無論如何都無法通過 curl 左右進行 ping 操作。 我正在使用 NodePort,我的其余 API 容器能夠從 mongodb 容器獲得響應。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.