监控
先决条件
部署prometheus kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.8/samples/addons/prometheus.yaml
该任务假定Bookinfo示例将部署在default 名称空间中。如果使用其他名称空间,请更新示例配置和命令。
收集新的指标数据
设置Bookinfo以使用MongoDB。
安装v2了的ratings服务。
如果使用启用了自动边车注入的集群,请使用kubectl以下命令部署服务:
如果使用手动边车注入,请改为运行以下命令:
安装mongodb服务:
如果使用启用了自动边车注入的集群,请使用kubectl以下命令部署服务:
如果使用手动边车注入,请改为运行以下命令:
Bookinfo示例部署了每个微服务的多个版本,因此首先创建目标规则,以定义与每个版本相对应的服务子集以及每个子集的负载均衡策略。
如果启用了双向TLS,请改为运行以下命令:
要显示目标规则,请运行以下命令:
在添加引用这些子集的虚拟服务之前,请等待几秒钟,以便目标规则传播,因为虚拟服务中的子集引用依赖于目标规则。
创建ratings和reviews虚拟服务:
将流量发送到示例应用程序。
对于Bookinfo示例,请http://$GATEWAY_URL/productpage在您的Web浏览器中访问或使用以下命令:
$GATEWAY_URL是在Bookinfo示例中设置的值。 验证是否正在生成和收集TCP度量标准值。
在Kubernetes环境中,使用以下命令为Prometheus设置端口转发:
在Prometheus浏览器窗口中查看TCP度量的值。选择图。输入istio_tcp_connections_opened_total指标或,istio_tcp_connections_closed_total然后选择执行。"控制台"选项卡中显示的表 包含类似于以下内容的条目:
了解TCP遥测收集
在此任务中,您使用Istio配置来自动生成并报告针对网格中TCP服务的所有流量的度量。15s默认情况下,每个活动连接的TCP度量标准都会默认记录一次,并且可以通过设置此计时器tcpReportingDuration。连接的指标也记录在连接的末尾。
tcp属性
几个特定于TCP的属性可在Istio中启用TCP策略和控制。这些属性由Envoy代理生成,并使用Envoy的Node Metadata从Istio获得。Envoy使用基于ALPN的隧道和基于前缀的协议将节点元数据转发给对等Envoy。我们定义了一个新协议istio-peer-exchange,该协议由网状网络中的客户端和服务器边车广告并确定优先级。ALPN协商将协议解析istio-peer-exchange为启用Istio的代理之间的连接,但不解析为启用Istio的代理与任何其他代理之间的连接。该协议对TCP的扩展如下:
作为第一个字节序列,TCP客户端发送一个魔术字节字符串和一个长度为前缀的有效负载。
TCP服务器作为第一个字节序列,发送一个魔术字节序列和一个长度为前缀的有效负载。这些有效载荷是protobuf编码的序列化元数据。
客户端和服务器可以同时写入并且顺序混乱。然后,Envoy中的扩展过滤器在下游和上游进行进一步处理,直到魔术字节序列不匹配或读取整个有效负载为止。
清理
删除port-forward过程:
Last updated