<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Contour on Hxysayhi</title>
    <link>https://hxysayhi.github.io/tags/contour/</link>
    <description>Recent content in Contour on Hxysayhi</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 09 May 2022 22:13:26 +0000</lastBuildDate>
    <atom:link href="https://hxysayhi.github.io/tags/contour/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>envoy 动态路由配置信息查看</title>
      <link>https://hxysayhi.github.io/posts/61a05b5d/</link>
      <pubDate>Mon, 09 May 2022 22:13:26 +0000</pubDate>
      <guid>https://hxysayhi.github.io/posts/61a05b5d/</guid>
      <description>&lt;p&gt;envoy 通过静态配置和动态配置接口共同决定 路由配置信息。在contour +  envoy 的部署使用模式下，envoy 的静态配置中主要定义了如何从contour 获取动态配置信息，而contour 作为 envoy 的控制面 xds server运行，将从k8s 集群 的ingress 资源描述中获取到的路由信息通过xds发送给 envoy。&lt;/p&gt;&#xA;&lt;p&gt;因此，我们可以通过两种方式来获取 envoy路由配置的相关信息：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;一种是通过contour 暴露的接口，去看 contour 给 envoy 发送的内容&lt;/li&gt;&#xA;&lt;li&gt;一种是通过 envoy 暴露的接口去看envoy接收生效的内容&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;查看-contour发送的内容&#34;&gt;查看 contour发送的内容&lt;/h3&gt;&#xA;&lt;p&gt;contour 提供了命令行交互能力，可以执行命令 &lt;code&gt;contour cli eds&lt;/code&gt; 等命令去获取endpoint等配置的信息。&lt;/p&gt;&#xA;&lt;p&gt;相关命令：&lt;/p&gt;&#xA;&lt;p&gt;获取 contour pod信息：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CONTOUR_POD&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;kubectl -n projectcontour get pod -l app&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;contour -o jsonpath&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;{.items[0].metadata.name}&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;进入该pod执行查看命令：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl -n projectcontour exec &lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;CONTOUR_POD&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt; -c contour -- contour cli eds --cafile&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;/certs/ca.crt --cert-file&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;/certs/tls.crt --key-file&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;/certs/tls.key&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;其中eds 表示查看 endpoint 相关配置&lt;/p&gt;&#xA;&lt;p&gt;支持以下基本信息查看：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;eds： endpoint 信息&lt;/li&gt;&#xA;&lt;li&gt;cds： cluster信息&lt;/li&gt;&#xA;&lt;li&gt;rds： route信息&lt;/li&gt;&#xA;&lt;li&gt;lds： listener 信息&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;注意这个是一个持续监听的接口，执行后不会退出，当k8s集群ingress相关资源对象发生变化时，又或获取最新配置内容。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
