簡體   English   中英

REST api 在 minikube 中的兩個 pod 之間調用

[英]REST api call between two pods in minikube

我在 minikube 集群上運行一個 REACT 應用程序,該集群包括相同命名空間default中的前端和后端。 當前端向后端發送請求時,請求不會到達后端。 負載平衡通過ingress-nginx發生。

前端服務...

apiVersion: v1
kind: Service
metadata:
  name: frontend-service
spec:
  type: ClusterIP
  selector:
    app: frontend-panel
  ports:
  - port: 3000
    targetPort: 3000

后端服務

apiVersion: v1
kind: Service
metadata:
  name: backend-service
spec:
  type: ClusterIP
  selector:
    app: backend-panel
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 8080

前端是一個 react 應用程序,它調用在同一個 minikube 集群中運行的不同服務..,react 的配置文件。

window.config = {
  backend: {
    backend_service: "http://backend-service:8080/"
  }
}

kubectl describe svc backend-service的結果。

Name:              backend-service
Namespace:         default
Labels:            <none>
Annotations:       Selector:  app=backend-panel
Type:              ClusterIP
IP:                10.106.135.236
Port:              <unset>  8080/TCP
TargetPort:        8080/TCP
Endpoints:         172.17.0.10:8080
Session Affinity:  None
Events:            <none>

除了"http://backend-service:8080/"我試過"http://backend-service.default.svc.cluster.local:8080/" 但是在沒有失敗請求的情況下,它會掛起很長時間。

服務看起來不錯,因為它有 POD IP 和 PORT 作為Endpoints 驗證您是否能夠從集群中的另一個 pod 使用curl 172.17.0.10:8080直接通過 PODIP 和 PORT 訪問 pod。 如果這不起作用,那么可能有兩個原因

  1. 應用程序未在端口8080上偵聽。 僅在 pod yaml 中指定containerPort: 8080不會使應用程序偵聽端口8080

  2. 應用程序正在偵聽127.0.0.1而不是0.0.0.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM