Istio试点正在创建TCP监听器,应该是HTTP

问题描述 投票:1回答:1

安装程序Kubernetes V1.13&Istio 1.0.5

我运行到其中Istio服务发现是建立符合TCP监听器,而不是HTTP侦听特使配置的问题。

通信是工作在服务网格,但我需要特使,作为一个7层代理服务器,而不是一个4层的通过。我没有得到我需要通过特使的HTTP请求日志。

以下是我在车斗istio代理日志中看到:

[2019-02-05T15:40:59.403Z] - 5739 7911 149929 “127.0.0.1:80” 入站| 80 || API-endpoint.default.svc.cluster.local 127.0.0.1:44560 10.244.3.100:80 10.244 .3.105:35204

这时候我检查特使配置在车斗 - 这是该日志消息的相应配置。

      "name": "envoy.tcp_proxy",
      "config": {
       "cluster": "inbound|80||api-endpoint.default.svc.cluster.local",
       "access_log": [
        {
         "name": "envoy.file_access_log",
         "config": {
          "path": "/dev/stdout",
          "format": "[%START_TIME%] %RESPONSE_FLAGS% %BYTES_RECEIVED% %BYTES_SENT% %DURATION% \"%UPSTREAM_HOST%\" %UPSTREAM_CLUSTER% %UPSTREAM_LOCAL_ADDRESS% %DOWNSTREAM_LOCAL_ADDRESS% %DOWNSTREAM_REMOTE_ADDRESS%\n"
         }
        }
       ],
       "stat_prefix": "inbound|80||api-endpoint.default.svc.cluster.local"
      }

所以我的问题是:为什么试点提供特使为HTTP服务TCP配置?

kubernetes istio
1个回答
2
投票

我碰到过这样的,在我的情况为我服务的端口名称是不是在形式http-xyz

Istio /特使假定交通TCP,除非它从端口名称,这是其他一些协议的提示。

https://istio.io/help/faq/traffic-management/#naming-port-convention

命名端口:服务端口必须命名。

端口名称必须是形式协议后缀以http,http2,GRPC,蒙戈,或redis的作为协议的,以便采取的Istio的路由功能。

例如,名称:http2foo或名称:http都是有效的端口名称,但名称:http2foo不是。如果端口名称不符合公认的前缀开头,或者如果端口是无名,端口流量将作为普通的TCP流量进行处理(除非该端口明确地使用协议:UDP以表示UDP端口)。

© www.soinside.com 2019 - 2024. All rights reserved.