ポート名が命名規則に準拠していません
このメッセージは、ポートがIstioサービスポート命名規則に従っていない場合、またはポートに名前が付けられていない場合に発生します。
例
このメッセージは、
Info [IST0118] (Service httpbin.default) Port name foo-http (port: 80, targetPort: 80) doesn't follow the naming convention of Istio port.
クラスターに次のサービスがある場合に表示されます。
apiVersion: v1
kind: Service
metadata:
name: httpbin
labels:
app: httpbin
spec:
ports:
- name: foo-http
port: 8000
targetPort: 80
selector:
app: httpbin
この例では、ポート名`foo-http`は構文`name: <protocol>[-<suffix>]`に従っていません。
解決方法
- サービスポートが提供しているプロトコルがわかっている場合は、ポート名を`<protocol>[-<suffix>]`形式で変更してください。
- サービスポートが提供しているプロトコルがわからない場合は、Prometheusからメトリクスをクエリする必要があります。
- クエリ`istio_requests_total{reporter="destination",destination_service_name="SERVICE_NAME",response_code="200"}[TIME_RANGE]`を実行します。Telemetryメトリクスのオーバーライドを使用している場合は、クエリ`istio_requests_total{reporter="destination",destination_service_name="SERVICE_NAME",response_code="200",destination_port="TARGET_PORT"}[TIME_RANGE]`を実行することもできます。
- 出力が存在する場合、レコードから`request_protocol`を見つけることができます。たとえば、`request_protocol`が「http」の場合、ポート名を「http-foo」に変更します。
- 出力が存在しない場合は、ポートをそのままにしておくことができます。