mirror of https://github.com/istio/istio.io.git
48 lines
23 KiB
HTML
48 lines
23 KiB
HTML
<!doctype html><html lang=zh itemscope itemtype=https://schema.org/WebPage><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=theme-color content=#466BB0><meta name=title content=分布式追踪的常见问题><meta name=description content=分布式追踪问答。><meta name=keywords content=microservices,services,mesh><meta property=og:title content=分布式追踪的常见问题><meta property=og:type content=website><meta property=og:description content=分布式追踪问答。><meta property=og:url content=/v1.2/zh/faq/distributed-tracing/><meta property=og:image content=/v1.2/img/istio-whitelogo-bluebackground-framed.svg><meta property=og:image:alt content="Istio Logo"><meta property=og:image:width content=112><meta property=og:image:height content=150><meta property=og:site_name content=Istio><meta name=twitter:card content=summary><meta name=twitter:site content=@IstioMesh><title>Istioldie 1.2 / 分布式追踪的常见问题</title><script async src="https://www.googletagmanager.com/gtag/js?id=UA-98480406-2"></script><script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}
|
||
gtag('js',new Date());gtag('config','UA-98480406-2');</script><link rel=alternate type=application/rss+xml title="Istio Blog" href=/v1.2/feed.xml><link rel="shortcut icon" href=/v1.2/favicons/favicon.ico><link rel=apple-touch-icon href=/v1.2/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/v1.2/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/v1.2/favicons/favicon-32x32.png sizes=32x32><link rel=icon type=image/png href=/v1.2/favicons/android-36x36.png sizes=36x36><link rel=icon type=image/png href=/v1.2/favicons/android-48x48.png sizes=48x48><link rel=icon type=image/png href=/v1.2/favicons/android-72x72.png sizes=72x72><link rel=icon type=image/png href=/v1.2/favicons/android-96x96.png sizes=96xW96><link rel=icon type=image/png href=/v1.2/favicons/android-144x144.png sizes=144x144><link rel=icon type=image/png href=/v1.2/favicons/android-192x192.png sizes=192x192><link rel=manifest href=/v1.2/manifest.json><meta name=apple-mobile-web-app-title content=Istio><meta name=application-name content=Istio><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Work+Sans:400|Chivo:400|Work+Sans:500,300,600,300italic,400italic,500italic,600italic|Chivo:500,300,600,300italic,400italic,500italic,600italic"><link rel=stylesheet href=/v1.2/css/all.css><script src=/v1.2/js/themes_init.min.js></script></head><body class="language-unknown archive-site"><script>const branchName="release-1.2";const docTitle="分布式追踪的常见问题";const iconFile="\/v1.2/img/icons.svg";const buttonCopy='复制到剪切板';const buttonPrint='打印';const buttonDownload='下载';</script><script src="https://www.google.com/cse/brand?form=search-form" defer></script><script src=/v1.2/js/all.min.js data-manual defer></script><header><nav><a id=brand href=/v1.2/zh/><span class=logo><svg viewBox="0 0 300 300"><circle cx="150" cy="150" r="146" stroke-width="2" /><path d="M65 240H225L125 270z"/><path d="M65 230l60-10V110z"/><path d="M135 220l90 10L135 30z"/></svg></span><span class=name>Istioldie 1.2</span></a><div id=hamburger><svg class="icon"><use xlink:href="/v1.2/img/icons.svg#hamburger"/></svg></div><div id=header-links><a title="了解如何部署、使用和运维 Istio。" href=/v1.2/zh/docs/>文档</a>
|
||
<a title="关于使用 Istio 的博客文章。" href=/v1.2/zh/blog/2019/announcing-1.1.3/>博客</a>
|
||
<span title=关于Istio的常见问题。>FAQ</span>
|
||
<a title=关于Istio的说明。 href=/v1.2/zh/about/>关于</a><div class=menu><button id=gearDropdownButton class=menu-trigger title=选项和设置 aria-label="Options and Settings" aria-controls=gearDropdownContent><svg class="icon"><use xlink:href="/v1.2/img/icons.svg#gear"/></svg></button><div id=gearDropdownContent class=menu-content aria-labelledby=gearDropdownButton role=menu><a tabindex=-1 role=menuitem lang=en id=switch-lang-en>English</a>
|
||
<a tabindex=-1 role=menuitem lang=zh id=switch-lang-zh class=active>中文</a><div role=separator></div><a tabindex=-1 role=menuitem class=active id=light-theme-item>亮主题</a>
|
||
<a tabindex=-1 role=menuitem id=dark-theme-item>暗主题</a><div role=separator></div><a tabindex=-1 role=menuitem id=syntax-coloring-item>代码高亮</a><div role=separator></div><h6>本站的其它版本</h6><a tabindex=-1 role=menuitem onclick="navigateToUrlOrRoot('https://istio.io/faq\/distributed-tracing\/');return false;">当前版本</a>
|
||
<a tabindex=-1 role=menuitem onclick="navigateToUrlOrRoot('https://preliminary.istio.io/faq\/distributed-tracing\/');return false;">下个版本</a>
|
||
<a tabindex=-1 role=menuitem href=https://archive.istio.io>旧版本</a></div></div><button id=search-show title=搜索istio.io aria-label=Search><svg class="icon"><use xlink:href="/v1.2/img/icons.svg#magnifier"/></svg></button></div><form id=search-form name=cse role=search><input type=hidden name=cx value=013699703217164175118:iwwf17ikgf4>
|
||
<input type=hidden name=ie value=utf-8>
|
||
<input type=hidden name=hl value=en>
|
||
<input type=hidden id=search-page-url value=/v1.2/search.html>
|
||
<input id=search-textbox class=form-control name=q type=search aria-label=搜索istio.io>
|
||
<button id=search-close title="Cancel search" type=reset aria-label="Cancel search"><svg class="icon"><use xlink:href="/v1.2/img/icons.svg#cancel-x"/></svg></button></form></nav></header><main class="primary notoc"><div id=sidebar-container class="sidebar-container sidebar-offcanvas"><nav id=sidebar aria-label="Section Navigation"><div class=directory><div class=card><div id=header0 class=header title=关于Istio的常见问题。><svg class="icon"><use xlink:href="/v1.2/img/icons.svg#faq"/></svg>FAQ</div><div class="body default" aria-labelledby=header0><ul role=tree aria-expanded=true class=leaf-section aria-labelledby=header0><li role=none><a role=treeitem title=常见问题。 href=/v1.2/zh/faq/general/>常见问题</a></li><li role=none><a role=treeitem title="安装 Q & A。" href=/v1.2/zh/faq/setup/>安装</a></li><li role=none><a role=treeitem title=安全方面的常见问题。 href=/v1.2/zh/faq/security/>安全</a></li><li role=none><a role=treeitem title="Mixer Q & A。" href=/v1.2/zh/faq/mixer/>Mixer</a></li><li role=none><a role=treeitem title=度量和日志的常见问题。 href=/v1.2/zh/faq/metrics-and-logs/>度量和日志</a></li><li role=none><a role=treeitem title="遥测 Q & A." href=/v1.2/zh/faq/telemetry/>遥测</a></li><li role=none><span role=treeitem class=current title=分布式追踪问答。>分布式追踪</span></li><li role=none><a role=treeitem title="流量管理 Q & A。" href=/v1.2/zh/faq/traffic-management/>流量管理</a></li></ul></div></div></div></nav></div><div class=article-container><nav aria-label=Breadcrumb><ol><li><a href=/v1.2/zh/>Istio</a></li><li><a href=/v1.2/zh/faq/ title=关于Istio的常见问题。>FAQ</a></li><li>分布式追踪</li></ol></nav><article aria-labelledby=title><div class=title-area><i class=title-icon><svg class="icon"><use xlink:href="/v1.2/img/icons.svg#faq"/></svg></i><div><h1 id=title>分布式追踪的常见问题</h1></div></div><nav class="toc-inlined toc-forced"><hr><div class=directory role=directory><nav id=InlineTableOfContents><ol><li role=none aria-label="如何使用 Istio 实现分布式追踪?"><a href=#how-distributed-tracing-works>如何使用 Istio 实现分布式追踪?</a></li><li role=none aria-label="使用 Istio 进行分布式追踪需要什么?"><a href=#how-to-support-tracing>使用 Istio 进行分布式追踪需要什么?</a></li><li role=none aria-label="基于 Envoy 的追踪是如何工作的?"><a href=#how-envoy-based-tracing-works>基于 Envoy 的追踪是如何工作的?</a></li><li role=none aria-label="基于 Mixer 的追踪是如何工作的?"><a href=#how-mixer-based-tracing-works>基于 Mixer 的追踪是如何工作的?</a></li><li role=none aria-label="分布式追踪所需的最小 Istio 配置是什么?"><a href=#minimal-requirements>分布式追踪所需的最小 Istio 配置是什么?</a></li><li role=none aria-label="初始的 Zipkin (B3) HTTP header 由谁生成?"><a href=#initial-zipkin-header>初始的 Zipkin (B3) HTTP header 由谁生成?</a></li><li role=none aria-label="为什么 Istio 不能取代应用程序来传播 header?"><a href=#istio-copy-headers>为什么 Istio 不能取代应用程序来传播 header?</a></li><li role=none aria-label=为什么我的请求没有被追踪?><a href=#no-tracing>为什么我的请求没有被追踪?</a></li><li role=none aria-label=如何控制追踪数量?><a href=#control-sampling>如何控制追踪数量?</a></li><li role=none aria-label=如何禁用追踪?><a href=#disabling-tracing>如何禁用追踪?</a></li><li role=none aria-label="Istio 可以将追踪信息发送到外部的 Zipkin 兼容实例后端吗?"><a href=#external-zipkin>Istio 可以将追踪信息发送到外部的 Zipkin 兼容实例后端吗?</a></li><li role=none aria-label="Istio 支持请求跟踪 vert.x 事件总线消息吗?"><a href=#vert.x>Istio 支持请求跟踪 vert.x 事件总线消息吗?</a></li><li role=none aria-label="Mixer 在 Istio 的跟踪过程中起到了什么作用?"><a href=#mixer-role>Mixer 在 Istio 的跟踪过程中起到了什么作用?</a></li><li role=none aria-label="为什么我只在部分分布式追踪中看到 `istio-mixer` span ?"><a href=#why-mixer-spans>为什么我只在部分分布式追踪中看到 `istio-mixer` span ?</a></li></ol></nav></div><hr></nav><div class=faq><h5 id=how-distributed-tracing-works class=question>如何使用 Istio 实现分布式追踪?</h5><div class=answer><p>Istio 以两种不同的方式与分布式追踪系统集成:
|
||
<a href=#how-envoy-based-tracing-works>基于 Envoy 的</a>和<a href=#how-mixer-based-tracing-works>基于 Mixer 的</a>。
|
||
这两种追踪集成方法,都由<a href=#istio-copy-headers>应用程序负责为后续传出请求转发追踪的 header 信息</a>。</p><p>您可以在 Istio 分布式追踪(<a href=/v1.2/zh/docs/tasks/telemetry/distributed-tracing/jaeger/>Jaeger</a>、<a href=/v1.2/zh/docs/tasks/telemetry/distributed-tracing/lightstep/>LightStep</a>、<a href=/v1.2/zh/docs/tasks/telemetry/distributed-tracing/zipkin/>Zipkin</a>)任务以及
|
||
<a href=https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/observability/tracing>Envoy 追踪文档</a> 中找到更多信息。</p></div><h5 id=how-to-support-tracing class=question>使用 Istio 进行分布式追踪需要什么?</h5><div class=answer><p>Istio 允许报告服务网格中工作负载到工作负载间通信的追踪 span。
|
||
然而,为了将各种追踪 span 整合在一起以获得完整的流量图,应用程序必须在传入和传出请求之间传播追踪上下文信息。</p><p>特别是,Istio 依赖于应用程序<a href=https://github.com/openzipkin/b3-propagation>传播 B3 追踪 header</a> 以及由 Envoy 生成的请求 ID。
|
||
这些 header 包括:</p><ul><li><code>x-request-id</code></li><li><code>x-b3-traceid</code></li><li><code>x-b3-spanId</code></li><li><code>x-b3-parentspanid</code></li><li><code>x-b3-sampled</code></li><li><code>x-b3-flags</code></li><li><code>b3</code></li></ul><p>如果使用 LightStep,您还需要转发以下 header:</p><ul><li><code>x-ot-span-context</code></li></ul><p>header 传播可以通过客户端库完成,例如 <a href=https://zipkin.io/pages/tracers_instrumentation.html>Zipkin</a> 或 <a href=https://github.com/jaegertracing/jaeger-client-java/tree/master/jaeger-core#b3-propagation>Jaeger</a>。
|
||
当然,这也可以手动完成,正如<a href=/v1.2/zh/docs/tasks/telemetry/distributed-tracing/overview/#trace-context-propagation>分布式追踪任务</a>中所描述的那样。</p></div><h5 id=how-envoy-based-tracing-works class=question>基于 Envoy 的追踪是如何工作的?</h5><div class=answer><p>对于基于 Envoy 的追踪,Envoy(sidecar 代理)直接将追踪信息发送给代表被代理应用程序的追踪后端。</p><p>Envoy:</p><ul><li>当请求通过代理时生成请求 ID 和 追踪 header(例如,<code>X-B3-TraceId</code>)</li><li>基于请求和响应元数据信息(例如,响应时间)为每个请求生成追踪 span</li><li>发送生成的追踪 span 到追踪后端</li><li>将追踪 header 转发给被代理的应用程序</li></ul><p>Istio 支持与基于 Envoy 的<a href=/v1.2/zh/docs/tasks/telemetry/distributed-tracing/lightstep/>LightStep</a>、<a href=/v1.2/zh/docs/tasks/telemetry/distributed-tracing/zipkin/>Zipkin</a> 进行追踪集成,也支持与所有 Zipkin API 兼容后端集成,包括 <a href=/v1.2/zh/docs/tasks/telemetry/distributed-tracing/jaeger/>Jaeger</a>。</p></div><h5 id=how-mixer-based-tracing-works class=question>基于 Mixer 的追踪是如何工作的?</h5><div class=answer><p>对于基于 Mixer 的追踪,由 Mixer (通过 <code>istio-telemetry</code> 服务)提供与追踪后端的集成支持。
|
||
Mixer 追踪允许对分布式追踪进行额外级别的操作控制,包括对追踪 span 中包含数据的细粒度选择。
|
||
它还提供了将追踪数据发送到不被 Envoy 直接支持的后端的能力。</p><p>对于基于 Mixer 的追踪集成,Envoy:</p><ul><li>当请求通过代理时生成请求 ID 和 追踪 header(例如,<code>X-B3-TraceId</code>)</li><li>调用 Mixer 异步进行遥测数据汇报</li><li>将追踪 header 转发给被代理的应用程序</li></ul><p>Mixer:</p><ul><li>基于 <em>operator-supplied</em> 配置为每个请求生成追踪 span</li><li>发送生成的追踪 span 到 <em>operator-designated</em> 追踪后端</li></ul><p><a href=https://cloud.google.com/istio/docs/istio-on-gke/installing#tracing_and_logging>Stackdriver 与 Istio 的追踪集成</a>是通过 Mixer 进行追踪集成的一个例子。</p></div><h5 id=minimal-requirements class=question>分布式追踪所需的最小 Istio 配置是什么?</h5><div class=answer><p>启用了追踪功能的 Istio <a href=/v1.2/zh/docs/setup/kubernetes/install/helm/>最小配置文件</a>是 Istio 与 Zipkin 兼容后端集成所需的全部内容。</p></div><h5 id=initial-zipkin-header class=question>初始的 Zipkin (B3) HTTP header 由谁生成?</h5><div class=answer><p>如果请求没有提供 header,Istio sidecar 代理(Envoy)将为其生成初始 <a href=https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_conn_man/headers#x-request-id>header</a>。</p></div><h5 id=istio-copy-headers class=question>为什么 Istio 不能取代应用程序来传播 header?</h5><div class=answer><p>尽管 Istio sidecar 将处理与之关联的应用程序实例的入站和出站请求,但它并不能隐式地将出站请求和与该出站请求对应的入站请求建立联系。
|
||
实现这种相关性的唯一方法是应用程序<a href=/v1.2/zh/docs/tasks/telemetry/distributed-tracing/overview/#trace-context-propagation>传递从入站请求到出站请求的关联信息</a>(比如,header)。
|
||
header 的传播可以通过客户端库或手动完成。
|
||
<a href=/v1.2/zh/faq/distributed-tracing/#how-to-support-tracing>使用 Istio 进行分布式追踪需要什么?</a>提供了进一步的讨论。</p></div><h5 id=no-tracing class=question>为什么我的请求没有被追踪?</h5><div class=answer><p>从 Istio 1.0.3 开始,使用 helm chart 安装的 Istio,其默认追踪采样率已经降低到 1%。
|
||
这意味着 Istio 捕获的 100 个追踪实例中只有 1 个将被报告给追踪后端。
|
||
<code>istio-demo.yaml</code> 文件中的采样率仍设为 100%。
|
||
有关如何设置采样率的更多信息,可参见<a href=/v1.2/zh/docs/tasks/telemetry/distributed-tracing/overview/#trace-sampling>本节</a>。</p><p>如果您仍然没有看到任何追踪数据,请确认您的端口符合 Istio <a href=/v1.2/zh/faq/traffic-management/#naming-port-convention>端口命名规范</a>,
|
||
并公开适当的容器端口(例如,通过 pod spec)来使得 sidecar 代理(Envoy)能够对流量进行捕获。</p></div><h5 id=control-sampling class=question>如何控制追踪数量?</h5><div class=answer><p>Istio 通过 Envoy,目前支持基于百分比的采样策略来生成追踪信息。</p><p>有关如何设置此采样率的更多信息,请参阅<a href=/v1.2/zh/docs/tasks/telemetry/distributed-tracing/overview/#trace-sampling>本节</a>。</p></div><h5 id=disabling-tracing class=question>如何禁用追踪?</h5><div class=answer><p>如果您已经安装了启用追踪功能的 Istio,可以通过执行如下步骤禁用它:</p><pre><code class=language-plain data-expandlinks=true># 用您的 Istio mesh 命名空间名填充下述命令中的 <istio namespace>。例如:istio-system
|
||
TRACING_POD=`kubectl get po -n <istio namespace> | grep istio-tracing | awk '{print $1}'`
|
||
$ kubectl delete pod $TRACING_POD -n <istio namespace>
|
||
$ kubectl delete services tracing zipkin -n <istio namespace>
|
||
# 从 Mixer Deployment 中移除对 zipkin url 的引用
|
||
$ kubectl -n istio-system edit deployment istio-telemetry
|
||
# 现在,手动从文件中移除 trace_zipkin_url 的实例,保存文件
|
||
</code></pre><p>然后遵循<a href=/v1.2/zh/docs/tasks/telemetry/distributed-tracing/zipkin/#清理>分布式追踪任务的清理部分</a>的步骤进行后续操作。</p><p>如果您根本不想要追踪功能,那么就在安装 Istio 时<a href=/v1.2/zh/docs/tasks/telemetry/distributed-tracing/zipkin/#开始之前>禁用追踪</a>。</p></div><h5 id=external-zipkin class=question>Istio 可以将追踪信息发送到外部的 Zipkin 兼容实例后端吗?</h5><div class=answer><p>为此,您必须使用 Zipkin 兼容实例的完全限定域名。
|
||
例如:<code>zipkin.mynamespace.svc.cluster.local</code>。</p></div><h5 id=vert.x class=question>Istio 支持请求跟踪 vert.x 事件总线消息吗?</h5><div class=answer><p>Istio 目前不提供对发布/订阅和事件总线协议的支持。
|
||
对这些技术的任何使用都是尽力而为(best-effort),并且可能遭到破坏。</p></div><h5 id=mixer-role class=question>Mixer 在 Istio 的跟踪过程中起到了什么作用?</h5><div class=answer><p>缺省情况下,Envoy 代理会选择一部分需要进行跟踪的请求,由 Mixer 生成 Span。这样一来,在网格中基于 Mixer 策略实施机制就可以为运维人员所观察了。如果 <code>istio-policy</code> 在网格范围内被禁用,Mixer 就无法用这种方式参与跟踪了。</p><p><code>istio-telemetry</code> 服务中的 Mixer 也可以用于从数据平面流量中生成跟踪数据。Mixer 的 Stackdriver 适配器就是一个例子,展示了支持这种方式的适配方式。</p><p>Mixer 生成的跟踪数据,Istio 还需依赖 Envoy 来生成跟踪上下文,并传递给需要传播上下文数据的应用之中。Envoy 不会直接把跟踪信息发送给跟踪后端,Mixer 会从 Envoy 上报数据中,根据运维策略提取请求中的客户端和服务端跟踪信息。这种情况下,运维人员可以精确的控制如何以及何时生成数据,还可以完全的把某些服务从跟踪信息中移除,或要求某些命名空间中的服务提供更多跟踪信息。</p></div><h5 id=why-mixer-spans class=question>为什么我只在部分分布式追踪中看到 `istio-mixer` span ?</h5><div class=answer><p>Mixer 为携带追踪 header 并到达 Mixer 的请求生成应用程序级追踪信息。
|
||
Mixer 会生成 span,并将其标记为 <code>istio-mixer</code> 以便用于它所做的任何关键工作,包括分发到各个适配器。</p><p>Envoy 缓存在数据路径上对 Mixer 的调用。
|
||
因此,通过 <code>istio-policy</code> 服务对 Mixer 发出的调用只会在特定的请求中发生,例如:缓存过期或者请求具有不同特征。
|
||
正是由于这个原因,您只看到了 Mixer 参与了您的 <em>一些</em> 追踪(而非全部)。</p><p>要关闭 Mixer 的应用程序级追踪,您必须编辑 <code>istio-policy</code> 的部署配置,删除命令行参数 <code>--trace_zipkin_url</code>。</p></div></div></article><nav class=pagenav><div class=left><a title="遥测 Q & A." href=/v1.2/zh/faq/telemetry/><svg class="icon"><use xlink:href="/v1.2/img/icons.svg#left-arrow"/></svg>遥测</a></div><div class=right><a title="流量管理 Q & A。" href=/v1.2/zh/faq/traffic-management/>流量管理<svg class="icon"><use xlink:href="/v1.2/img/icons.svg#right-arrow"/></svg></a></div></nav><div id=endnotes-container aria-hidden=true><h2>链接</h2><ol id=endnotes></ol></div></div></main><footer><div class=user-links><a class=channel title="Go download Istio 1.2.5 now" href=https://github.com/istio/istio/releases/tag/1.2.5 aria-label="Download Istio"><span>download</span><svg class="icon"><use xlink:href="/v1.2/img/icons.svg#download"/></svg>
|
||
</a><a class=channel title="加入 Istio discussion board 参与讨论获取帮助" href=https://discuss.istio.io aria-label="Istio discussion board"><span>discuss</span><svg class="icon"><use xlink:href="/v1.2/img/icons.svg#discourse"/></svg></a>
|
||
<a class=channel title="Stack Overflow 中列举了针对实际问题以及部署、配置和使用 Istio 的各项回答" href=https://stackoverflow.com/questions/tagged/istio aria-label="Stack Overflow"><span>stack overflow</span><svg class="icon"><use xlink:href="/v1.2/img/icons.svg#stackoverflow"/></svg></a>
|
||
<a class=channel title="在 Slack 上与 Istio 社区交互讨论开发问题(仅限邀请)" href=https://istio.slack.com aria-label=slack><span>slack</span><svg class="icon"><use xlink:href="/v1.2/img/icons.svg#slack"/></svg></a>
|
||
<a class=channel title="关注我们的 Twitter 来获取最新信息" href=https://twitter.com/IstioMesh aria-label=Twitter><span>twitter</span><svg class="icon"><use xlink:href="/v1.2/img/icons.svg#twitter"/></svg></a><div class=tag>对于用户</div></div><div class=info><p class=copyright>中文内容由 ServiceMesher 社区维护,部分文档可能稍微滞后于英文版本,同步工作持续进行中<br>Istio 归档
|
||
1.2.5<br>© 2019 Istio Authors, <a href=https://policies.google.com/privacy>隐私政策</a><br>归档于 2019年9月12日</p></div><div class=dev-links><a class=channel title="Istio 的代码在 GitHub 上开发" href=https://github.com/istio/community aria-label=GitHub><span>github</span><svg class="icon"><use xlink:href="/v1.2/img/icons.svg#github"/></svg></a>
|
||
<a class=channel title="如果您想深入了解 Istio 的技术细节,请查看我们日益完善的设计文档" href=https://groups.google.com/forum/#!forum/istio-team-drive-access aria-label="team drive"><span>drive</span><svg class="icon"><use xlink:href="/v1.2/img/icons.svg#drive"/></svg></a>
|
||
<a class=channel title="如果您想为 Istio 项目做出贡献,请考虑加入我们的工作组" href=https://github.com/istio/community/blob/master/WORKING-GROUPS.md aria-label="working groups"><span>working groups</span><svg class="icon"><use xlink:href="/v1.2/img/icons.svg#working-groups"/></svg></a><div class=tag>对于开发者</div></div></footer><div id=scroll-to-top-container aria-hidden=true><button id=scroll-to-top title=回到顶部><svg class="icon"><use xlink:href="/v1.2/img/icons.svg#top"/></svg></button></div></body></html> |