DeploymentConflictingPorts

當兩個服務選擇相同的工作負載,且具有相同的 targetPort 但不同的 port 時,會出現此訊息。

範例

考量具有下列服務的 Istio 網格

apiVersion: v1
kind: Service
metadata:
  name: nginx-a
spec:
  ports:
    - port: 8080
      protocol: TCP
      targetPort: 80
  selector:
    app: nginx
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-b
spec:
  ports:
    - port: 80
      protocol: TCP
      targetPort: 80
  selector:
    app: nginx

在此範例中,服務 nginx-a 和服務 nginx-b 選擇相同的工作負載 nginx,且具有相同的 targetPort 但不同的 port

如何解決

這可以透過兩種方式修正

  • 讓兩個服務使用相同的 port。這會需要重新設定其中一個服務的用戶端,以連線到不同的 port
  • 讓兩個服務使用不同的 targetPort。這會需要設定其中一個服務的工作負載 Pod,以監聽與另一個服務相同的 targetPort