ExternalNameServiceTypeInvalidPortName

消息名称ExternalNameServiceTypeInvalidPortName
消息代码IST0150
描述Proxy may prevent tcp named ports and unmatched traffic for ports serving TCP protocol from being forwarded correctly for ExternalName services.
等级Warning

对于 ExternalName 类型的服务,当端口不遵循 Istio 服务端口命名协议、端口未命名或端口命名为 TCP 时,会出现此消息。

例如

您将收到以下信息:

  1. 注意,当 [IST0150] (Service nginx.default) ExternalName 服务的端口名称无效。将收到代理对以 TCP 命名和服务于 TCP 协议的端口中的不匹配流量的正确转发进行阻止。

当您的集群有以下服务:

  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4. name: nginx
  5. spec:
  6. externalName: nginx.example.com
  7. ports:
  8. - name: tcp
  9. port: 443
  10. protocol: TCP
  11. targetPort: 443
  12. type: ExternalName

在本例中,端口名称 tcp 遵循以下语法: name: <protocol> 。但是,对于 ExternalName 服务,由于没有定义服务 IP,因此需要使用 SNI 字段进行路由。

解决方式

  • 如果您有一个服务类型为 ExternalName 并且服务协议为 TCP ,那么将端口重命名为 <protocol>[-<suffix>] 或者 <protocol> ,其中协议指的是 https 或者 tls 。想学得更多相关知识, 请查看显式协议选择文档。