ExternalNameServiceTypeInvalidPortName

このメッセージは、ポートがIstioサービスポートの命名規則に従っていない場合、ポートに名前がない場合、またはポートの名前がtcpである場合に、ExternalNameタイプのサービスに対して発生します。

このメッセージが表示されます

Warning [IST0150] (Service nginx.default) Port name for ExternalName service is invalid. Proxy may prevent tcp named ports and unmatched traffic for ports serving TCP protocol from being forwarded correctly.

クラスタに次のサービスがある場合

apiVersion: v1
kind: Service
metadata:
  name: nginx
spec:
  externalName: nginx.example.com
  ports:
  - name: tcp
    port: 443
    protocol: TCP
    targetPort: 443
  type: ExternalName

この例では、ポート名はtcpであり、構文はname: <protocol>に従っています。しかし、ExternalNameサービスの場合、サービスIPは定義されていないため、ルーティングにはSNIフィールドが必要です。

解決方法

  • ExternalNameサービスの種類を使用していて、プロトコルがTCPの場合、ポート名を<protocol>[-<suffix>]または<protocol>に名前変更してください。ここで、protocolはhttpsまたはtlsです。詳細については、明示的なプロトコル選択に関するドキュメントを参照してください。