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
。