ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

envoy 动态路由配置信息查看

2022-07-25 22:36:22  阅读:162  来源: 互联网

标签:查看 配置 envoy 信息 xx pod contour 路由


envoy 通过静态配置和动态配置接口共同决定 路由配置信息。在contour + envoy 的部署使用模式下,envoy 的静态配置中主要定义了如何从contour 获取动态配置信息,而contour 作为 envoy 的控制面 xds server运行,将从k8s 集群 的ingress 资源描述中获取到的路由信息通过xds发送给 envoy。

因此,我们可以通过两种方式来获取 envoy路由配置的相关信息:

  1. 一种是通过contour 暴露的接口,去看 contour 给 envoy 发送的内容
  2. 一种是通过 envoy 暴露的接口去看envoy接收生效的内容

查看 contour发送的内容

contour 提供了命令行交互能力,可以执行命令 contour cli eds 等命令去获取endpoint等配置的信息。

相关命令:

获取 contour pod信息:

CONTOUR_POD=$(kubectl -n projectcontour get pod -l app=contour -o jsonpath='{.items[0].metadata.name}')

进入该pod执行查看命令:

kubectl -n projectcontour exec ${CONTOUR_POD} -c contour -- contour cli eds --cafile=/certs/ca.crt --cert-file=/certs/tls.crt --key-file=/certs/tls.key

其中eds 表示查看 endpoint 相关配置

支持以下基本信息查看:

  • eds: endpoint 信息
  • cds: cluster信息
  • rds: route信息
  • lds: listener 信息

注意这个是一个持续监听的接口,执行后不会退出,当k8s集群ingress相关资源对象发生变化时,又或获取最新配置内容。

查看envoy收到生效的配置内容

contour 提供 shutdown-manager 的 envoy pod中,会通过 9001 端口暴露一个进行了过滤的管理接口,提供了以下一些路由相关配置的获取接口:

  • /clusters
  • /listeners
  • /config_dump (全量配置)

因为pod上没有做9001端口的暴露,我们通过kubectl port-forward 去作转发:

kubectl -n projectcontour port-forward --address 0.0.0.0 ${pod-name} ${local-port}:9001

例如:

在ip为xx.xx.xx.xx的节点上对 pod/envoy-xxxxx 进行端口转发,指定本地转发端口为9901:

kubectl -n projectcontour port-forward --address 0.0.0.0 pod/envoy-xxxxx 9901:9001

访问以下地址可获取配置信息:

http://xx.xx.xx.xx:9901/config_dump

如果想将配置信息dump到文件,可将返回内容重定向到文件

curl http://xx.xx.xx.xx:9901/config_dump > ./envoy_config.dump


个人博客hxysayhi: envoy 动态路由配置信息查看

标签:查看,配置,envoy,信息,xx,pod,contour,路由
来源: https://www.cnblogs.com/hxysayhi/p/16519076.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有