mirror of https://github.com/istio/istio.io.git
207 lines
71 KiB
HTML
207 lines
71 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="FAQ"><meta name=description content="关于 Istio 的常见问题。"><meta name=keywords content="microservices,services,mesh"><meta property="og:title" content="FAQ"><meta property="og:type" content="website"><meta property="og:description" content="关于 Istio 的常见问题。"><meta property="og:url" content="/v1.20/zh/about/faq/"><meta property="og:image" content="https://raw.githubusercontent.com/istio/istio.io/master/static/img/istio-social.png"><meta property="og:image:alt" content="The Istio sailboat logo"><meta property="og:image:width" content="4096"><meta property="og:image:height" content="2048"><meta property="og:site_name" content="Istio"><meta name=twitter:card content="summary_large_image"><meta name=twitter:site content="@IstioMesh"><title>Istioldie 1.20 / FAQ</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.20/blog/feed.xml><link rel=alternate type=application/rss+xml title="Istio News" href=/v1.20/news/feed.xml><link rel=alternate type=application/rss+xml title="Istio Blog and News" href=/v1.20/feed.xml><link rel="shortcut icon" href=/v1.20/favicons/favicon.ico><link rel=apple-touch-icon href=/v1.20/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/v1.20/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/v1.20/favicons/favicon-32x32.png sizes=32x32><link rel=icon type=image/png href=/v1.20/favicons/android-36x36.png sizes=36x36><link rel=icon type=image/png href=/v1.20/favicons/android-48x48.png sizes=48x48><link rel=icon type=image/png href=/v1.20/favicons/android-72x72.png sizes=72x72><link rel=icon type=image/png href=/v1.20/favicons/android-96x96.png sizes=96xW96><link rel=icon type=image/png href=/v1.20/favicons/android-144x144.png sizes=144x144><link rel=icon type=image/png href=/v1.20/favicons/android-192x192.png sizes=192x192><link rel=icon type=image/svg+xml href=/v1.20/favicons/favicon.svg><link rel=icon type=image/png href=/v1.20/favicons/favicon.png><link rel=mask-icon href=/v1.20/favicons/safari-pinned-tab.svg color=#466BB0><link rel=manifest href=/v1.20/manifest.json><meta name=apple-mobile-web-app-title content="Istio"><meta name=application-name content="Istio"><meta name=msapplication-config content="/browserconfig.xml"><meta name=msapplication-TileColor content="#466BB0"><meta name=theme-color content="#466BB0"><link rel=stylesheet href=/v1.20/css/all.css><link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css2?family=Barlow:ital,wght@0,400;0,500;0,600;0,700;1,400;1,600&display=swap"><script src=/v1.20/js/themes_init.min.js></script></head><body class="language-unknown archive-site"><script>const branchName="release-1.20",docTitle="FAQ",iconFile="/v1.20//img/icons.svg",buttonCopy="复制到剪切板",buttonPrint="打印",buttonDownload="下载"</script><script src="https://www.google.com/cse/brand?form=search-form" defer></script><script src=/v1.20/js/all.min.js data-manual defer></script><header class=main-navigation><nav class="main-navigation-wrapper container-l"><div class=main-navigation-header><a id=brand href=/v1.20/zh/ aria-label=logotype><span class=logo><svg xmlns="http://www.w3.org/2000/svg" width="128" height="60" viewBox="0 0 128 60"><path d="M58.434 48.823A.441.441.0 0158.3 48.497V22.583a.444.444.0 01.134-.326.446.446.0 01.327-.134h3.527a.447.447.0 01.325.134.447.447.0 01.134.326v25.914a.443.443.0 01-.134.326.444.444.0 01-.325.134h-3.527a.444.444.0 01-.327-.134z"/><path d="m70.969 48.477a6.556 6.556.0 01-2.818-1.955 4.338 4.338.0 01-1-2.78v-.345a.443.443.0 01.134-.326.444.444.0 01.326-.135h3.374a.444.444.0 01.326.135.445.445.0 01.134.326v.077a2.014 2.014.0 001.054 1.667 4.672 4.672.0 002.664.709 4.446 4.446.0 002.492-.633 1.862 1.862.0 00.958-1.591 1.426 1.426.0 00-.786-1.322 12.7 12.7.0 00-2.549-.939l-1.457-.46a21.526 21.526.0 01-3.3-1.227 6.57 6.57.0 01-2.262-1.783 4.435 4.435.0 01-.92-2.894 5.081 5.081.0 012.109-4.275 8.993 8.993.0 015.558-1.591 10.445 10.445.0 014.1.748 6.3 6.3.0 012.722 2.07 5 5 0 01.958 3.009.441.441.0 01-.134.326.441.441.0 01-.325.134h-3.258a.441.441.0 01-.326-.134.443.443.0 01-.134-.326 1.974 1.974.0 00-.978-1.667 4.647 4.647.0 00-2.665-.671 4.741 4.741.0 00-2.435.556 1.724 1.724.0 00-.938 1.553 1.512 1.512.0 00.9 1.4 15.875 15.875.0 003.01 1.055l.843.229a27.368 27.368.0 013.412 1.246 6.67 6.67.0 012.338 1.763 4.387 4.387.0 01.958 2.933 4.988 4.988.0 01-2.146 4.275 9.543 9.543.0 01-5.712 1.552 11.626 11.626.0 01-4.227-.709z"/><path d="m97.039 32.837a.443.443.0 01-.326.135h-3.911a.169.169.0 00-.191.192v9.239a2.951 2.951.0 00.632 2.108 2.7 2.7.0 002.013.652h1.15a.444.444.0 01.325.134.441.441.0 01.134.326v2.875a.471.471.0 01-.459.5l-1.994.039a8 8 0 01-4.524-1.035q-1.495-1.035-1.533-3.91V33.166A.17.17.0 0088.164 32.974H85.978A.441.441.0 0185.652 32.839.441.441.0 0185.518 32.513V29.83a.441.441.0 01.134-.326.444.444.0 01.326-.135h2.186a.169.169.0 00.191-.192v-4.485a.438.438.0 01.134-.326.44.44.0 01.325-.134h3.336a.443.443.0 01.325.134.442.442.0 01.135.326v4.485a.169.169.0 00.191.192h3.911a.446.446.0 01.326.135.446.446.0 01.134.326v2.683a.446.446.0 01-.133.324z"/><path d="m101.694 25.917a2.645 2.645.0 01-.767-1.955 2.65 2.65.0 01.767-1.955 2.65 2.65.0 011.955-.767 2.65 2.65.0 011.955.767 2.652 2.652.0 01.767 1.955 2.647 2.647.0 01-.767 1.955 2.646 2.646.0 01-1.955.767 2.645 2.645.0 01-1.955-.767zm-.211 22.906a.441.441.0 01-.134-.326V29.79a.444.444.0 01.134-.326.446.446.0 01.326-.134h3.527a.446.446.0 01.326.134.445.445.0 01.134.326v18.707a.443.443.0 01-.134.326.443.443.0 01-.326.134h-3.527a.443.443.0 01-.326-.134z"/><path d="m114.019 47.734a8.1 8.1.0 01-3.047-4.255 14.439 14.439.0 01-.652-4.37 14.3 14.3.0 01.614-4.371A7.869 7.869.0 01114 30.56a9.072 9.072.0 015.252-1.5 8.543 8.543.0 015.041 1.5 7.985 7.985.0 013.009 4.14 12.439 12.439.0 01.69 4.37 13.793 13.793.0 01-.651 4.37 8.255 8.255.0 01-3.028 4.275 8.475 8.475.0 01-5.1 1.553 8.754 8.754.0 01-5.194-1.534zm7.629-3.1a4.536 4.536.0 001.476-2.262 11.335 11.335.0 00.383-3.221 10.618 10.618.0 00-.383-3.22 4.169 4.169.0 00-1.457-2.243 4.066 4.066.0 00-2.531-.785 3.942 3.942.0 00-2.453.785 4.376 4.376.0 00-1.5 2.243 11.839 11.839.0 00-.383 3.22 11.84 11.84.0 00.383 3.221 4.222 4.222.0 001.476 2.262 4.075 4.075.0 002.549.8 3.8 3.8.0 002.44-.809z"/><path d="m15.105 32.057v15.565a.059.059.0 01-.049.059L.069 50.25A.06.06.0 01.005 50.167l14.987-33.47a.06.06.0 01.114.025z"/><path d="m17.631 23.087v24.6a.06.06.0 00.053.059l22.449 2.507a.06.06.0 00.061-.084L17.745.032a.06.06.0 00-.114.024z"/><path d="m39.961 52.548-24.833 7.45a.062.062.0 01-.043.0L.079 52.548a.059.059.0 01.026-.113h39.839a.06.06.0 01.017.113z"/></svg></span>
|
||
</a><button id=hamburger class=main-navigation-toggle aria-label="Open navigation">
|
||
<svg class="icon menu-hamburger"><use xlink:href="/v1.20/img/icons.svg#menu-hamburger"/></svg>
|
||
</button>
|
||
<button id=menu-close class=main-navigation-toggle aria-label="Close navigation"><svg class="icon menu-close"><use xlink:href="/v1.20/img/icons.svg#menu-close"/></svg></button></div><div id=header-links class=main-navigation-links-wrapper><ul class=main-navigation-links><li class=main-navigation-links-item><a class="main-navigation-links-link has-dropdown"><span>关于</span><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></a><ul class=main-navigation-links-dropdown><li class=main-navigation-links-dropdown-item><a href=/v1.20/zh/about/service-mesh class=main-navigation-links-link>服务网格</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.20/zh/about/solutions class=main-navigation-links-link>解决方案</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.20/zh/about/case-studies class=main-navigation-links-link>案例学习</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.20/zh/about/ecosystem class=main-navigation-links-link>生态系统</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.20/zh/about/deployment class=main-navigation-links-link>部署</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.20/zh/about/faq class=main-navigation-links-link>FAQ</a></li></ul></li><li class=main-navigation-links-item><a href=/v1.20/zh/blog/ class=main-navigation-links-link><span>博客</span></a></li><li class=main-navigation-links-item><a href=/v1.20/zh/news/ class=main-navigation-links-link><span>新闻</span></a></li><li class=main-navigation-links-item><a href=/v1.20/zh/get-involved/ class=main-navigation-links-link><span>加入我们</span></a></li><li class=main-navigation-links-item><a href=/v1.20/zh/docs/ class=main-navigation-links-link><span>文档</span></a></li></ul><div class=main-navigation-footer><button id=search-show class=search-show title='搜索 istio.io' aria-label=搜索><svg class="icon magnifier"><use xlink:href="/v1.20/img/icons.svg#magnifier"/></svg></button>
|
||
<a href=/v1.20/zh/docs/setup/getting-started class="btn btn--primary" id=try-istio>试用 Istio</a></div></div><form id=search-form class=search name=cse role=search><input type=hidden name=cx value=002184991200833970123:iwwf17ikgf4>
|
||
<input type=hidden name=ie value=utf-8>
|
||
<input type=hidden name=hl value=zh>
|
||
<input type=hidden id=search-page-url value=/zh/search>
|
||
<input id=search-textbox class="search-textbox form-control" name=q type=search aria-label='搜索 istio.io' placeholder=搜索>
|
||
<button id=search-close title=取消搜索 type=reset aria-label=取消搜索><svg class="icon menu-close"><use xlink:href="/v1.20/img/icons.svg#menu-close"/></svg></button></form></nav></header><div class=banner-container></div><nav aria-label=Breadcrumb class=container-l><ol><li><a href title="关于 Istio 项目的说明。">关于</a><svg class="icon breadcrumb-arrow"><use xlink:href="/v1.20/img/icons.svg#breadcrumb-arrow"/></svg></li><li>FAQ</li></ol></nav><main class="primary container about has-toc"><div class=article-container><article aria-labelledby=title><div class=title-area><div style=width:100%><h1 id=title>FAQ</h1><p class=subtitle>在您搜索有关 Istio 和服务网格技术的信息时,我们希望此常见问题解答对您有所帮助</p></div></div><div><h2 id=%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98>常见问题</h2><div class="faq-block faq-block--collapsed" id=what-is-istio><div class=faq-block-question><span class=faq-block-question__text>Istio 是什么?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p><p>Istio 是一个开放的、与平台无关的服务网格,提供了流量管理,策略下发,和远程收集能力。</p><p><em>开放</em> :Istio 是作为一个开源软件来开发和管理的。我们鼓励社区各界来贡献和反馈。</p><p><strong>平台无关</strong> :Istio 不是针对某一个特定的部署环境的。在初始开发阶段,
|
||
Istio 将会支持基于 Kubernetes 的部署。但是,Istio 将会建设成可以快速方便的适应其它环境。</p><p><em>服务网格</em> :Istio 的设计目标是管理微服务间和应用程序间的通信问题。
|
||
而不用修改底层服务,Istio 针对所有服务之间的通信提供了自动的基线流量弹性,
|
||
服务指标收集,分布式追踪,流量加密,协议升级和高级路由功能。</p><p>更多介绍,请看这里 <a href=/v1.20/zh/about/service-mesh/>Istio 是什么</a>。</p></p></div></div><div class="faq-block faq-block--collapsed" id=why-use-istio><div class=faq-block-question><span class=faq-block-question__text>为什么我想用 Istio?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p><p>按照传统做法,Istio 处理的大多数逻辑都是直接构建到应用程序中的。
|
||
在一组服务中,要管理更新这块通信逻辑是一个繁重的任务。
|
||
Istio 提供了一个基础架构级的方案来解决管理服务通信问题。</p><p><em>应用开发者</em> :利用 Istio 管理服务间的流量,开发者就可以专注于业务逻辑开发和快速迭代新特性。</p><p><strong>服务运维者</strong> :Istio 可以从一个中心控制点进行策略控制和网格监控,而不依赖应用程序的发展。
|
||
因此,运维者可以通过简化的管理平面确保持续的策略控制。</p></p></div></div><div class="faq-block faq-block--collapsed" id=how-do-i-get-started><div class=faq-block-question><span class=faq-block-question__text>我如何开始使用 Istio ?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p><p>我们建议您按照<a href=/v1.20/zh/docs/setup/getting-started/>入门</a>上的说明进行操作,
|
||
Istio 的主要示例应用程序<a href=/v1.20/zh/docs/examples/bookinfo/>Bookinfo 应用</a>示范了安装配置。
|
||
您可以使用此设置来<a href=/v1.20/zh/docs/setup/getting-started/#next-steps>浏览各种Istio指南</a>,
|
||
该指南中的案例包括了智能路由、策略执行、安全、遥测等。</p><p>要在现有 Kubernetes 上部署和使用 Istio,
|
||
请参阅我们的<a href=/v1.20/zh/docs/ops/deployment/deployment-models/>安装说明</a>文档。</p></p></div></div><div class="faq-block faq-block--collapsed" id=what-is-the-license><div class=faq-block-question><span class=faq-block-question__text>Istio 的许可证是什么?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>Istio 使用了 <a href=https://www.apache.org/licenses/LICENSE-2.0.html>Apache License 2.0</a>。</p></div></div><div class="faq-block faq-block--collapsed" id=how-was-istio-started><div class=faq-block-question><span class=faq-block-question__text>Istio 是如何诞生的?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>Istio 项目由 Google 和 IBM 的团队与 Lyft 的 Envoy 团队合作启动。它已经完全在 GitHub 上公开开发。</p></div></div><div class="faq-block faq-block--collapsed" id=what-deployment-environment><div class=faq-block-question><span class=faq-block-question__text>目前支持哪些部署环境?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>Istio 是设计和构建为平台无关的。对于 1.20 版本,
|
||
Istio 支持运行容器编排的平台环境,比如 Kubernetes (1.25, 1.26, 1.27, 1.28, 1.29)。</p></div></div><div class="faq-block faq-block--collapsed" id=how-do-i-contribute><div class=faq-block-question><span class=faq-block-question__text>我该如何贡献?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p><p>非常欢迎任何贡献,我们期待社区的反馈,补充和错误报告。</p><p>代码托管在 <a href=https://github.com/istio>GitHub</a>。
|
||
请阅读<a href=https://github.com/istio/community/blob/master/CONTRIBUTING.md>贡献指南</a>学习如何贡献。</p><p>除了代码之外,还有<a href=/v1.20/zh/get-involved/>其他为 Istio 社区做出贡献的方式</a>,
|
||
包括我们的 <a href=https://discuss.istio.io>discussion forum</a>,
|
||
<a href=https://istio.slack.com>Slack</a> 和 <a href=https://stackoverflow.com/questions/tagged/istio>Stack Overflow</a>。</p></p></div></div><div class="faq-block faq-block--collapsed" id=where-is-the-documentation><div class=faq-block-question><span class=faq-block-question__text>文档在哪里?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p><p>在 istio.io 查看<a href=/v1.20/zh/docs/>文档</a>。文档包括
|
||
<a href=/v1.20/zh/docs/concepts/>概念概述</a>,
|
||
<a href=/v1.20/zh/docs/tasks/>任务指南</a>,
|
||
<a href=/v1.20/zh/docs/examples/>指南</a>,
|
||
和<a href=/v1.20/zh/docs/reference/>完整的参考文档</a>。</p><p>详细的开发人员级别文档保留在我们的 <a href=https://github.com/istio/istio/wiki>Wiki</a>。</p></p></div></div><div class="faq-block faq-block--collapsed" id=istio-doesnt-work><div class=faq-block-question><span class=faq-block-question__text>Istio 不工作了应该怎么做?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>查看<a href=/v1.20/zh/docs/ops/>操作指南</a>寻找解决方案或者<a href=/v1.20/zh/docs/releases/bugs/>错误报告</a>页面去提交错误。</p></div></div><div class="faq-block faq-block--collapsed" id=roadmap><div class=faq-block-question><span class=faq-block-question__text>Istio 的路线图是什么?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>查看我们的<a href=/v1.20/zh/docs/releases/feature-stages/>功能状态页面</a>和<a href=/v1.20/zh/news>新闻</a>获取最新动态。</p></div></div><div class="faq-block faq-block--collapsed" id=what-does-istio-mean><div class=faq-block-question><span class=faq-block-question__text>“Istio” 这个词是什么意思?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>它是希腊语中的 “sail”。</p></div></div><div class="faq-block faq-block--collapsed" id=how-to-join-slack><div class=faq-block-question><span class=faq-block-question__text>如何加入 Istio Slack 工作区?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>如果您想与我们社区的成员进行实时互动,您可以加入 <a href=https://slack.istio.io>Istio Slack 工作区</a>。</p></div></div><h2 id=%E5%AE%89%E8%A3%85>安装</h2><div class="faq-block faq-block--collapsed" id=install-method-selection><div class=faq-block-question><span class=faq-block-question__text>我应该使用哪种方式安装 Istio ?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>除了简单地<a href=/v1.20/zh//docs/setup/getting-started>入门</a>评估版安装之外,您还可以使用几种不同的方式安装 Istio 。您应该根据您的生产要求来选择安装方式。</p><p>下面列出了每种安装方式的优缺点:</p><ol><li><p><a href=/v1.20/zh/docs/setup/install/istioctl/>使用 istioctl 安装</a></p><p>具有高安全性的简单、合格的安装和管理方法。这是社区推荐的安装方法。</p><p>优点:</p><ul><li>完整的配置和运行状态的验证。</li><li>使用提供了扩展的配置、自定义选项的 <code>IstioOperator</code> API。</li><li>不需要集群内的高权限 Pod 。通过执行 <code>istioctl</code> 命令修改。</li></ul><p>缺点:</p><ul><li>需要维护多个 Istio minor 版本的二进制文件。</li><li><code>istioctl</code> 命令可能根据您的运行环境设置诸如 <code>JWT_POLICY</code> 之类的值,从而能够在不同的 Kubernetes 环境中进行不同的安装。</li></ul></li><li><p><a href=/v1.20/zh/docs/setup/install/operator/>使用 Istio Operator 安装</a></p><p>没有 <code>istioctl</code> 二进制文件的简单安装方式。这是推荐的方法。用于简单升级工作,无需考虑运行集群内的高权限 Controller。</p><p>优点:</p><ul><li>具有与 <code>istioctl install</code> 相同的 API ,但是通过集群中具有高权限的 Controller Pod 通过完全声明的方式进行操作。</li><li>使用提供了扩展的配置、自定义选项的 <code>IstioOperator</code> API。</li><li>不需要管理多个 <code>istioctl</code> 的二进制文件。</li></ul><p>缺点:</p><ul><li>在集群内运行高权限的 Controller 会带来安全问题。</li></ul></li><li><p><a href=/v1.20/zh/docs/setup/install/istioctl/#generate-a-manifest-before-installation>使用 istioctl manifest generate 安装</a></p><p>生成 Kubernetes 的配置清单,并通过 <code>kubectl apply --prune</code> 应用到集群中。该方法适用于需要严格审查或者增加配置清单的情况。</p><p>优点:</p><ul><li>Chart 是由与 <code>istioctl install</code> 和 Operator 里使用的相同的 <code>IstioOperator</code> API 生成的。</li><li>使用提供了扩展的配置、自定义选项的 <code>IstioOperator</code> API。</li></ul><p>缺点:</p><ul><li>一些在 <code>istioctl install</code> 和 Operator 中会进行的检查将不会执行。</li><li>与 <code>istioctl install</code> 相比,UX 的精简程度较低。</li><li>错误报告没有 <code>istioctl install</code> 的错误报告详细、全面。</li></ul></li><li><p><a href=/v1.20/zh/docs/setup/install/helm/>使用 Helm 安装</a></p><p>使用 Helm 的 Chart 可以通过 Helm 的工作流程轻松的完成,并在升级的过程中自动清理资源。</p><p>优点:</p><ul><li>使用熟悉、常用的行业标准工具。</li><li>Helm 原生的版本、升级管理。</li></ul><p>缺点:</p><ul><li>相比于 <code>istioctl install</code> 和 Operator 相比,检查较少。</li><li>一些高权限任务需要更多步骤,并且具有更高的复杂性。</li></ul></li><li><p><a href=/v1.20/zh/docs/setup/install/operator/>Istio Operator</a></p><div><aside class="callout warning"><div class=type><svg class="large-icon"><use xlink:href="/v1.20/img/icons.svg#callout-warning"/></svg></div><div class=content>不建议在新安装时使用 Operator。虽然 Operator 将继续得到支持,新特性请求将不会被优先化。</div></aside></div><p>Istio 操作符提供了一个安装路径,而不需要 <code>istioctl</code> 二进制文件。这可以用于简化升级工作流,其中不需要考虑集群内特权控制器的运行。此方法适用于不需要严格审计或增加输出清单的情况。</p><p>优点:</p><ul><li>与 <code>istioctl install</code> 相同的 API,但驱动是通过集群中的一个带有完全声明式操作的控制器。</li><li><code>IstioOperator</code> API 提供了广泛的配置/定制选项。</li><li>不需要管理多个 <code>istioctl</code> 二进制文件。</li></ul><p>缺点:</p><ul><li>集群中运行的高权限控制器存在安全风险。</li></ul></li></ol><p>这些安装方式的安装向导在 <a href=/v1.20/zh/docs/setup/install>Istio 安装页</a>中。</p></div></div><div class="faq-block faq-block--collapsed" id=k8s-sidecar-injection-not-working><div class=faq-block-question><span class=faq-block-question__text>Kubernetes - 我该如何调试 sidecar 自动注入的问题?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>为了支持 sidecar 自动注入,请确保你的集群符合此<a href=/v1.20/zh/docs/setup/additional-setup/sidecar-injection/#automatic-sidecar-injection>前提条件</a>。如果你的微服务是部署在 <code>kube-system</code>、<code>kube-public</code> 或者 <code>istio-system</code> 这些命名空间,那么就会被免除 sidecar 自动注入。请使用其他命名空间替代。</p></div></div><h2 id=%E5%AE%89%E5%85%A8>安全</h2><div class="faq-block faq-block--collapsed" id=enabling-disabling-mtls><div class=faq-block-question><span class=faq-block-question__text>在 Istio 安装完成之后,我应该如何开启/关闭双向 TLS?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>您可以随时使用<a href=/v1.20/zh/docs/concepts/security/#authentication-policies>认证策略</a>和<a href=/v1.20/zh/docs/concepts/traffic-management/#destination-rules>目标规则</a>来为您的服务设置双向 TLS 认证。请参阅<a href=/v1.20/zh/docs/tasks/security/authentication/authn-policy>任务</a>以获取更多细节。</p></div></div><div class="faq-block faq-block--collapsed" id=auth-mix-and-match><div class=faq-block-question><span class=faq-block-question__text>在同一集群中,我可以为部分服务开启 TLS 双向认证,并为其它服务关闭 TLS 双向认证吗?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p><a href=/v1.20/zh/docs/concepts/security/#authentication-policies>认证策略</a>可以配置为 mesh-wide(影响网络中的所有服务)、namespace-wide(namespace 中的所有服务)或某个特定服务。
|
||
您可以根据需要对集群中的服务配置一种或多种 TLS 双向认证策略。</p></div></div><div class="faq-block faq-block--collapsed" id=verify-mtls-encryption><div class=faq-block-question><span class=faq-block-question__text>如何验证流量是否使用双向 TLS 加密?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>如果您使用 <code>values.global.proxy.privileged=true</code> 安装 Istio,
|
||
您可以使用 <code>tcpdump</code> 来确定加密状态。同样在 Kubernetes 1.23 及以后的版本中,
|
||
作为将 Istio 安装为特权用户的另一种选择,
|
||
您可以使用 <code>kubectl debug</code> 在 <a href=https://kubernetes.io/zh-cn/docs/tasks/debug/debug-application/debug-running-pod/#ephemeral-container>ephemeral container</a> 中运行 <code>tcpdump</code>。
|
||
有关说明,请参见 <a href=/v1.20/zh/docs/tasks/security/authentication/mtls-migration>Istio 双向 TLS 迁移</a>。</p></div></div><div class="faq-block faq-block--collapsed" id=non-istio-to-istio><div class=faq-block-question><span class=faq-block-question__text>如果全局启用 TLS 双向认证,那么非 Istio 服务还可以访问 Istio 服务吗?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p><p>启用 <code>STRICT</code> 双向 TLS 时,非 Istio 工作负载无法与 Istio 服务通信,因为它们没有有效的 Istio 客户端证书。</p><p>如果需要允许这些客户端,可以将双向 TLS 模式配置为 <code>PERMISSIVE</code>,允许明文和双向 TLS。
|
||
这可以针对单个工作负载或整个网格来完成。</p><p>有关更多详细信息,请参阅 <a href=/v1.20/zh/docs/tasks/security/authentication/authn-policy>身份验证策略</a>。</p></p></div></div><div class="faq-block faq-block--collapsed" id=k8s-health-checks><div class=faq-block-question><span class=faq-block-question__text>当启用双向 TLS 认证时应该如何使用 Kubernetes liveness 和 readiness 对服务进行健康检查?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p><p>如果启用了双向 TLS 认证,则来自 kubelet 的 HTTP 和 TCP 健康检查将不能正常工作,因为 kubelet 没有 Istio 颁发的证书。</p><p>有几种选择:</p><ol><li><p>使用 probe rewrite 将 liveness 和 readiness 的请求直接重定向到工作负载。有关更多信息,请参阅 <a href=/v1.20/zh/docs/ops/configuration/mesh/app-health-check/#probe-rewrite>Probe Rewrite</a>。</p></li><li><p>使用单独的端口进行健康检查,并且仅在常规服务端口上启用双向 TLS。有关更多信息,请参阅 <a href=/v1.20/zh/docs/ops/configuration/mesh/app-health-check/#separate-port>Istio 服务的运行状况检查</a>。</p></li><li><p>如果对 Istio 服务使用 <a href=/v1.20/zh/docs/tasks/security/authentication/mtls-migration><code>PERMISSIVE</code> 模式</a>,那么他们可以接受 HTTP 和双向 TLS 流量。请记住,由于其他人可以通过 HTTP 流量与该服务进行通信,因此不强制执行双向 TLS。</p></li></ol></p></div></div><div class="faq-block faq-block--collapsed" id=cert-lifetime-config><div class=faq-block-question><span class=faq-block-question__text>如何配置 Istio 证书的生命期?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>对于在 Kubernetes 中运行的工作负载,其 Istio 证书的生命周期默认为 24 小时。</p><p>可以通过自定义 <a href=/v1.20/zh/docs/reference/config/istio.mesh.v1alpha1/#ProxyConfig>代理配置</a>的 <code>proxyMetadata</code> 字段来覆盖此配置。 例如:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>proxyMetadata:
|
||
SECRET_TTL: 48h
|
||
</code></pre><div><aside class="callout tip"><div class=type><svg class="large-icon"><use xlink:href="/v1.20/img/icons.svg#callout-tip"/></svg></div><div class=content>超过 90 天的值将不被接受。</div></aside></div></div></div><div class="faq-block faq-block--collapsed" id=automtls-exclude-port><div class=faq-block-question><span class=faq-block-question__text>Auto 双向 TLS 是否排除使用 "excludeInboundPorts" 注释设置的端口?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>不,当 <code>traffic.sidecar.istio.io/excludeInboundPorts</code> 用于服务器工作负载时,
|
||
Istio 仍然默认配置客户端 Envoy 以发送双向 TLS。要改变这一点,您需要配置一个目标规则,
|
||
将双向 TLS 模式设置为 <code>DISABLE</code>,
|
||
用以让客户端发送纯文本到这些端口。</p></div></div><div class="faq-block faq-block--collapsed" id=mysql-with-mtls><div class=faq-block-question><span class=faq-block-question__text>MySQL 连接故障排除</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p><p>安装 Istio 后,您可能会发现 MySQL 无法连接。 这是因为 MySQL 是 <a href=/v1.20/zh/docs/ops/deployment/requirements/#server-first-protocols>服务器优先</a> 协议,
|
||
这会干扰 Istio 的协议检测。 特别是,使用“PERMISSIVE”mTLS 模式可能会导致问题。
|
||
您可能会看到诸如 <code>ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0</code> 这样的错误。</p><p>这可以通过确保使用 <code>STRICT</code> 或 <code>DISABLE</code> 模式或配置所有客户端来解决
|
||
发送 mTLS。 有关详细信息,请参阅 <a href=/v1.20/zh/docs/ops/deployment/requirements/#server-first-protocols>服务器优先协议</a>。</p></p></div></div><div class="faq-block faq-block--collapsed" id=does-istio-support-authorization><div class=faq-block-question><span class=faq-block-question__text>Istio 是否支持授权?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>支持。Istio 对网格中的 HTTP 服务和普通 TCP 服务提供授权特性支持<a href=/v1.20/zh/docs/concepts/security/#authorization>了解更多</a>。</p></div></div><div class="faq-block faq-block--collapsed" id=secure-ingress><div class=faq-block-question><span class=faq-block-question__text>Istio 中如何配置 Ingress 使其仅处理 TLS 连接?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>依照<a href=/v1.20/zh/docs/tasks/traffic-management/ingress/secure-ingress>安全入口流量</a>任务中的描述进行配置,可以确保 Istio Ingress 只处理 TLS 连接。</p></div></div><div class="faq-block faq-block--collapsed" id=https-overlay><div class=faq-block-question><span class=faq-block-question__text>我可以为 HTTPS 服务安装 Istio sidecar 吗?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>可以,并且启用或禁用双向 TLS 都可以。</p></div></div><h2 id=%E6%8C%87%E6%A0%87%E5%92%8C%E6%97%A5%E5%BF%97>指标和日志</h2><div class="faq-block faq-block--collapsed" id=accessing-telemetry-via-rest><div class=faq-block-question><span class=faq-block-question__text>可以通过 REST 接口访问 Istio 指标吗?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>您可以使用 <a href=/v1.20/zh/docs/tasks/observability/metrics/querying-metrics/>Prometheus</a> 收集有关 Istio 的遥测数据。
|
||
然后,使用<a href=https://prometheus.io/docs/prometheus/latest/querying/api/>Prometheus 的 HTTP API</a> 来查询该数据。</p></div></div><div class="faq-block faq-block--collapsed" id=telemetry-v1-vs-v2><div class=faq-block-question><span class=faq-block-question__text>代理内遥测(v2)和基于 Mixer 的遥测(v1)报告的遥测有什么区别?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p><p>与基于 Mixer 的遥测 (v1) 方法相比,代理内遥测 (v2) 降低了资源成本并提高了代理性能,是 Istio 中呈现遥测的首选机制。
|
||
但是,v1 和 v2 之间报告的遥测数据区别不大,如下所列:</p><ul><li><p><strong>网格外流量缺少标签</strong></p><p>代理内遥测依赖于 Envoy 代理之间的元数据交换来收集对等工作负载名称、命名空间和标签等信息。
|
||
在基于 Mixer 的遥测中,此功能由 Mixer 执行,作为将请求属性与平台数据组合的一部分。
|
||
此元数据交换由 Envoy 代理通过为 HTTP 协议添加特定 HTTP 标头或为 TCP 协议增加 ALPN 协议来执行,
|
||
如<a href=/v1.20/zh/docs/tasks/observability/metrics/tcp-metrics/#understanding-tcp-telemetry-collection>此处</a>所述。
|
||
这需要在客户端和服务器工作负载中注入 Envoy 代理,这意味着当一个对等点不在网格中时报告的遥测数据将缺少如工作负载名称、命名空间和标签等对等点属性。
|
||
但是,如果两个对等点都注入了代理,则<a href=/v1.20/zh/docs/reference/config/metrics/>此处</a>提到的所有标签都可以在生成的指标中使用。
|
||
当服务器工作负载脱离网格时,服务器工作负载元数据仍被分发到客户端边车,导致客户端指标填充了服务器工作负载元数据标签。</p></li><li><p><strong>TCP 元数据交换需要 mTLS</strong></p><p>TCP 元数据交换依赖于 <a href=/v1.20/zh/docs/tasks/observability/metrics/tcp-metrics/#understanding-tcp-telemetry-collection>Istio ALPN 协议</a>,
|
||
该协议需要启用双向 TLS (mTLS) 以便 Envoy 代理能够成功交换元数据。
|
||
这意味着如果您的集群中未启用 mTLS,则 TCP 协议的遥测将不包括工作负载名称、命名空间和标签等对等信息。</p></li><li><p><strong>没有为直方图指标配置自定义存储桶的机制</strong></p><p>基于 Mixer 的遥测支持为直方图类型指标(如请求持续时间和 TCP 字节大小)自定义存储桶。
|
||
代理内遥测没有这样的可用机制。此外,与基于 Mixer 的遥测中的秒数相比,代理内遥测中可用于延迟指标的存储桶以毫秒为单位。
|
||
但是,默认情况下,代理内遥测中有更多存储桶可用于较低延迟级别的延迟指标。</p></li><li><p><strong>短期指标没有指标过期</strong></p><p>基于 Mixer 的遥测支持指标过期,即在可配置的时间量内未生成的指标将被取消注册以供 Prometheus 采集。
|
||
这在生成短期指标的场景(例如一次性作业)中很有用。取消注册指标可防止报告将来不再更改的指标,
|
||
从而减少 Prometheus 中的网络流量和存储。这个过期机制在代理内遥测中不可用。
|
||
可以在<a href=/v1.20/zh/about/faq/#metric-expiry>此处</a>找到解决此问题的方法。</p></li></ul></p></div></div><div class="faq-block faq-block--collapsed" id=metric-expiry><div class=faq-block-question><span class=faq-block-question__text>如何管理短期指标?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p><p>短期指标可能会阻碍 Prometheus 的性能,因为它们通常是标签基数的重要来源。
|
||
基数是标签唯一值数量的度量。要管理短期指标对 Prometheus 的影响,
|
||
您必须首先确定高基数指标和标签。Prometheus 在其 <code>/status</code> 页面上提供基数信息。
|
||
可以通过 <a href=https://www.robustperception.io/which-are-my-biggest-metrics>PromQL</a>
|
||
检索其他信息。有几种方法可以减少 Istio 指标的基数:</p><ul><li>禁用主机报头回退。
|
||
<code>destination_service</code> 标签是高基数的一个潜在来源。
|
||
如果 Istio 代理无法从其他请求元数据中确定目标服务,则 <code>destination_service</code> 的值默认出现在主机报头中。
|
||
如果客户端使用各种主机报头,这可能会导致 <code>destination_service</code> 产生的大量值。
|
||
在这种情况下,请按照<a href=/v1.20/zh/docs/tasks/observability/metrics/customize-metrics/>指标自定义</a>指南禁用主机报头回退网格范围。
|
||
要禁用特定工作负载或命名空间的主机头回退,您需要复制统计 <code>EnvoyFilter</code> 配置,更新它以禁用主机报头回退,并应用一个更具体的选择器。
|
||
<a href=https://github.com/istio/istio/issues/25963#issuecomment-666037411>这个问题</a>有更多关于如何实现这一点的细节。</li><li>从集合中删除不必要的标签。如果不需要具有高基数的标签,您可以使用 <code>tags_to_remove</code>
|
||
通过<a href=/v1.20/zh/docs/tasks/observability/metrics/customize-metrics/>指标自定义</a> 将其从指标集合中删除。</li><li>通过联合或分类规范化标签值。如果需要标签提供的信息,
|
||
您可以使用 <a href=/v1.20/zh/docs/ops/best-practices/observability/#using-prometheus-for-production-scale-monitoring>Prometheus 联邦</a>或<a href=/v1.20/zh/docs/tasks/observability/metrics/classify-metrics/>请求分类</a>来规范化标签。</li></ul></p></div></div><div class="faq-block faq-block--collapsed" id=mixer-migration><div class=faq-block-question><span class=faq-block-question__text>如何迁移现有的 Mixer 功能?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p><p>Mixer 在 <a href=/v1.20/zh/news/releases/1.8.x/announcing-1.8/#deprecations>Istio 1.8 版本中被移除</a>。
|
||
如果您仍然依赖于 Mixer 的内置适配器或任何进程外的适配器进行网格扩展,则需要迁移。</p><p>对于内置适配器,提供了几种替代方案:</p><ul><li><code>Prometheus</code> 和 <code>Stackdriver</code> 集成是作为<a href=/v1.20/zh/docs/reference/config/proxy_extensions/>代理扩展</a>实现的。
|
||
这两个扩展生成的 Telemetry 的定制可以通过<a href=/v1.20/zh/docs/tasks/observability/metrics/classify-metrics/>请求分类</a>和
|
||
<a href=/v1.20/zh/docs/tasks/observability/metrics/customize-metrics/>Prometheus 指标定制</a>来实现。</li><li>Global 和 Local Rate-Limiting(<code>memquota</code> 和 <code>redisquota</code> 适配器)
|
||
功能是通过<a href=/v1.20/zh/docs/tasks/policy-enforcement/rate-limit/>基于 Envoy 的速率限制解决方案提供的</a>。</li><li><code>OPA</code> 适配器被<a href=/v1.20/zh/docs/tasks/security/authorization/authz-custom/>基于 Envoy ext-authz 的解决方案</a>所取代,
|
||
该解决方案支持与 <a href=https://www.openpolicyagent.org/docs/latest/envoy-introduction/>OPA 策略代理的集成</a>。</li></ul><p>对于自定义进程外适配器,强烈建议迁移到基于 Wasm 的扩展。请参阅有关
|
||
<a href=https://github.com/istio-ecosystem/wasm-extensions/blob/master/doc/write-a-wasm-extension-with-cpp.md>Wasm 模块开发</a>和<a href=/v1.20/zh/docs/tasks/extensibility/wasm-module-distribution/>扩展分发</a>的指南。
|
||
作为临时解决方案,您可以在 <a href=https://github.com/istio/istio/wiki/Enabling-Envoy-Authorization-Service-and-gRPC-Access-Log-Service-With-Mixer>Mixer 中启用 Envoy ext-authz 和 gRPC 访问日志 API 支持</a>,
|
||
这允许您将 Istio 升级到发布 1.7 版本,同时仍然使用 1.7 Mixer 的进程外适配器。
|
||
这将使您有更多时间迁移到基于 Wasm 的扩展。请注意,此临时解决方案未经实战测试,
|
||
不太可能得到补丁修复,因为它只在 Istio 1.7 分支上可用,这是在 2021 年 2 月 之后的支持窗口之外的。</p></p></div></div><div class="faq-block faq-block--collapsed" id=prometheus-for-non-k8s><div class=faq-block-question><span class=faq-block-question__text>Prometheus 适配器能在非 Kubernetes 环境下使用吗?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>您可以使用 docker-compose 来安装 Prometheus。</p></div></div><div class="faq-block faq-block--collapsed" id=life-of-a-request><div class=faq-block-question><span class=faq-block-question__text>怎样查看 Istio 的请求都发生了什么?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>您可以启用 <a href=/v1.20/zh/docs/tasks/observability/distributed-tracing/>tracing</a>
|
||
以确定 Istio 中的请求是怎样流动的。</p><p>另外,您还可以使用如下命令以了解网格中的更多状态信息:</p><ul><li><p><a href=/v1.20/zh/docs/reference/commands/istioctl/#istioctl-proxy-config><code>istioctl proxy-config</code></a>:获取 Kubernetes 运行期间的 proxy 配置信息:</p><pre><code class=language-plain data-expandlinks=true data-repo=istio># 在指定的 pod 中 Envoy 实例的启动(bootstrap)配置信息。
|
||
$ istioctl proxy-config bootstrap productpage-v1-bb8d5cbc7-k7qbm
|
||
<h1 id=在指定的-pod-中-envoy-实例的集群cluster配置信息>在指定的 pod 中 Envoy 实例的集群(cluster)配置信息。</h1>
|
||
<p>$ istioctl proxy-config cluster productpage-v1-bb8d5cbc7-k7qbm</p>
|
||
<h1 id=在指定的-pod-中-envoy-实例的监听器listener配置信息>在指定的 pod 中 Envoy 实例的监听器(listener)配置信息。</h1>
|
||
<p>$ istioctl proxy-config listener productpage-v1-bb8d5cbc7-k7qbm</p>
|
||
<h1 id=在指定的-pod-中-envoy-实例的路由route配置信息>在指定的 pod 中 Envoy 实例的路由(route)配置信息。</h1>
|
||
<p>$ istioctl proxy-config route productpage-v1-bb8d5cbc7-k7qbm</p>
|
||
<h1 id=在指定的-pod-中-envoy-实例的端点endpoint配置信息>在指定的 pod 中 Envoy 实例的端点(endpoint)配置信息。</h1>
|
||
<p>$ istioctl proxy-config endpoints productpage-v1-bb8d5cbc7-k7qbm</p>
|
||
<h1 id=查看更多-proxy-config-的用法可用如下命令>查看更多 proxy-config 的用法可用如下命令</h1>
|
||
<p>$ istioctl proxy-config –help
|
||
</code></pre></p></li><li><p><code>kubectl get</code>:通过路由配置获取网格中不同资源的信息:</p><pre><code class=language-plain data-expandlinks=true data-repo=istio># 列出所有的 virtual services
|
||
$ kubectl get virtualservices
|
||
</code></pre></li></ul></div></div><div class="faq-block faq-block--collapsed" id=prometheus-application-metrics><div class=faq-block-question><span class=faq-block-question__text>我可以使用 Prometheus 配合 Istio 抓取应用程序指标吗?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p><p>是的。<a href=https://prometheus.io/>Prometheus</a> 是一款开源监控系统和时间序列数据库。
|
||
您可以将 Prometheus 与 Istio 结合使用来记录跟踪 Istio 和服务网格内应用程序运行状况的指标。
|
||
您可以使用 <a href=/v1.20/zh/docs/ops/integrations/grafana/>Grafana</a> 和
|
||
<a href=/v1.20/zh/docs/tasks/observability/kiali/>Kiali</a> 等工具对指标进行可视化。
|
||
请参阅 <a href=/v1.20/zh/docs/ops/integrations/prometheus/#Configuration>Prometheus 配置</a>以了解如何启用指标收集。</p><p>一些注意事项:</p><ul><li>如果 Prometheus Pod 在 Istio Citadel Pod 生成所需证书并将其分发给 Prometheus 之前启动,
|
||
则 Prometheus pod 需要重启以便收集双向 TLS 保护的目标信息。</li><li>如果您的应用程序在专用端口上公开了 Prometheus 指标,则应将该端口添加到 Service 和 Deployment 规范中。</li></ul></p></div></div><h2 id=%E5%88%86%E5%B8%83%E5%BC%8F%E8%BF%BD%E8%B8%AA>分布式追踪</h2><div class="faq-block faq-block--collapsed" id=how-distributed-tracing-works><div class=faq-block-question><span class=faq-block-question__text>如何使用 Istio 实现分布式追踪?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p><p>Istio 使用 <a href=#how-envoy-based-tracing-works>Envoy</a>的分布式追踪系统集成。
|
||
由<a href=#istio-copy-headers>应用程序负责为后续传出请求转发追踪的 header 信息</a>。</p><p>您可以在 Istio 分布式追踪(<a href=/v1.20/zh/docs/tasks/observability/distributed-tracing/jaeger/>Jaeger</a>,
|
||
<a href=/v1.20/zh/docs/tasks/observability/distributed-tracing/lightstep/>LightStep</a>,
|
||
<a href=/v1.20/zh/docs/tasks/observability/distributed-tracing/zipkin/>Zipkin</a>)
|
||
任务以及 <a href=https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/observability/tracing>Envoy 追踪文档</a>中找到更多信息。</p></p></div></div><div class="faq-block faq-block--collapsed" id=how-to-support-tracing><div class=faq-block-question><span class=faq-block-question__text>使用 Istio 进行分布式追踪需要什么?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p><p>Istio 允许报告服务网格中工作负载到工作负载间通信的追踪 span。
|
||
然而,为了将各种追踪 span 整合在一起以获得完整的流量图,应用程序必须在传入和传出请求之间传播追踪上下文信息。</p><p>特别是,Istio 依赖于应用程序传播 <a href=https://github.com/openzipkin/b3-propagation>B3 追踪 headers</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>如果使用 OpenTelemetry,OpenCensus 或者 Stackdriver,您还需要转发以下 header:</p><ul><li><code>traceparent</code></li><li><code>tracestate</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.20/zh/docs/tasks/observability/distributed-tracing/overview#trace-context-propagation>分布式追踪任务</a>中所描述的那样。</p></p></div></div><div class="faq-block faq-block--collapsed" id=how-envoy-based-tracing-works><div class=faq-block-question><span class=faq-block-question__text>基于 Envoy 的跟踪如何工作?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p><p>对于基于 Envoy 的跟踪集成,Envoy(Sidecar 代理)代表所代理的应用程序将跟踪信息直接发送到跟踪后端。</p><p>Envoy:</p><ul><li>在请求代理时为请求生成请求 ID 和跟踪标头(例如 <code>X-B3-TraceId</code>)</li><li>根据请求和响应元数据(即响应时间)为每个请求生成跟踪范围</li><li>将生成的跟踪范围发送到跟踪后端</li><li>将跟踪头转发到代理的应用程序</li></ul><p>Istio 支持基于 Envoy 的 <a href=/v1.20/zh/docs/tasks/observability/distributed-tracing/lightstep/>LightStep</a> 和 <a href=/v1.20/zh/docs/tasks/observability/distributed-tracing/zipkin/>Zipkin</a> 的集成,以及所有与 Zipkin API 兼容的后端,包括 <a href=/v1.20/zh/docs/tasks/observability/distributed-tracing/jaeger/>Jaeger</a>。</p></p></div></div><div class="faq-block faq-block--collapsed" id=minimal-requirements><div class=faq-block-question><span class=faq-block-question__text>分布式追踪所需的 Istio 最低配置是什么?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>启用了追踪功能的 Istio <a href=/v1.20/zh/docs/setup/install/helm/>最低配置文件</a>是
|
||
Istio 与 Zipkin 兼容后端集成所需的全部内容。</p></div></div><div class="faq-block faq-block--collapsed" id=initial-zipkin-header><div class=faq-block-question><span class=faq-block-question__text>为什么要初始化生成 Zipkin (B3) HTTP header?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>如果请求中没有 Zipkin (B3) HTTP header,Istio sidecar 代理(Envoy) 会自动生成初始化的
|
||
<a href=https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_conn_man/headers#x-request-id>headers</a>。</p></div></div><div class="faq-block faq-block--collapsed" id=istio-copy-headers><div class=faq-block-question><span class=faq-block-question__text>为什么 Istio 不能代替应用程序传播标头?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>尽管 Istio Sidecar 将处理关联应用程序实例的入站和出站请求,
|
||
它没有将出站请求与导致它们的入站请求相关联的隐式方法。可以实现这种关联的唯一方法是通过应用程序传播相关信息
|
||
(例如标头)从入站请求到出站请求。头传播可以通过客户端库或手动完成。
|
||
提供了进一步的讨论<a href=/v1.20/zh/faq/distributed-tracing/#how-to-support-tracing>使用 Istio 进行分布式跟踪需要什么?</a>。</p></div></div><div class="faq-block faq-block--collapsed" id=no-tracing><div class=faq-block-question><span class=faq-block-question__text>为什么我的请求没有被追踪?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p><p>从 Istio 1.0.3 开始,其 <code>default</code> 追踪采样率已经降低到 1%。
|
||
<a href=/v1.20/zh/docs/setup/additional-setup/config-profiles/>配置文件</a>。
|
||
这意味着 Istio 捕获的 100 个追踪实例中只有 1 个将被报告给追踪后端。
|
||
<code>demo</code> 文件中的采样率仍设为 100%。
|
||
有关如何设置采样率的更多信息,可参见<a href=/v1.20/zh/docs/tasks/observability/distributed-tracing/overview/#trace-sampling>本节</a>。</p><p>如果您仍然没有看到任何追踪数据,请确认您的端口是否符合 Istio <a href=/v1.20/zh/faq/traffic-management/#naming-port-convention>端口命名规范</a>,
|
||
并公开适当的容器端口(例如,通过 pod spec)来启用 sidecar 代理(Envoy)能够对流量进行捕获。</p><p>如果您仅看到与出口代理相关联的跟踪数据,但没有看到与入口代理相关联的,那么它可能仍与 Istio <a href=/v1.20/zh/faq/traffic-management/#naming-port-convention>端口命名规范</a>相关。
|
||
请先了解 <a href=/v1.20/zh/news/releases/1.3.x/announcing-1.3/#intelligent-protocol-detection-experimental>Istio 1.3</a> 中自动检测<strong>出口</strong>流量的协议相关部分。</p></p></div></div><div class="faq-block faq-block--collapsed" id=control-sampling><div class=faq-block-question><span class=faq-block-question__text>如何控制追踪数量?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>Istio 通过 Envoy,目前支持基于百分比的采样策略来生成追踪信息。
|
||
有关如何设置此采样率的更多信息,请参阅<a href=/v1.20/zh/docs/tasks/observability/distributed-tracing/mesh-and-proxy-config/#customizing-trace-sampling>本节</a>。</p></div></div><div class="faq-block faq-block--collapsed" id=disabling-tracing><div class=faq-block-question><span class=faq-block-question__text>如何禁用追踪?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p><p>如果您已经安装了启用追踪功能的 Istio,可以通过执行如下步骤禁用它:</p><pre><code class=language-plain data-expandlinks=true data-repo=istio># 用您的 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>
|
||
# 现在,手动从文件中移除 trace_zipkin_url 的实例,保存文件
|
||
</code></pre><p>然后遵循<a href=/v1.20/zh/docs/tasks/observability/distributed-tracing/zipkin/#cleanup>分布式追踪任务的清理部分</a>的步骤进行后续操作。</p><p>如果您不想要追踪功能,那么就在安装 Istio 时<a href=/v1.20/zh/docs/tasks/observability/distributed-tracing/zipkin/#before-you-begin>禁用追踪</a>。</p></p></div></div><div class="faq-block faq-block--collapsed" id=external-zipkin><div class=faq-block-question><span class=faq-block-question__text>Istio 是否能发送追踪信息到外部与 Zipkin 兼容的后端?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>可以这么做,但是必须用 Zipkin 兼容实例的完全合格的域名。比如:<code>zipkin.mynamespace.svc.cluster.local</code>。</p></div></div><div class="faq-block faq-block--collapsed" id=vert.x><div class=faq-block-question><span class=faq-block-question__text>Istio 支持请求跟踪 vert.x 事件总线消息吗?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>目前 Istio 不提供对发布/订阅和事件总线协议的支持。这些技术都遵循 best-effort 网络模型,网络传输容易遭到破坏。</p></div></div><h2 id=%E6%B5%81%E9%87%8F%E7%AE%A1%E7%90%86>流量管理</h2><div class="faq-block faq-block--collapsed" id=viewing-current-rules><div class=faq-block-question><span class=faq-block-question__text>怎样查看在 Istio 中已配置的当前路由规则?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>可以使用这个命令查看 <code>kubectl get virtualservice -o yaml</code></p></div></div><div class="faq-block faq-block--collapsed" id=controlling-inbound-ports><div class=faq-block-question><span class=faq-block-question__text>Sidecar 代理在哪些端口上截获入站流量?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>Istio 默认截获所有端口的入站流量。
|
||
您可以通过 <code>traffic.sidecar.istio.io/includeInboundPorts</code> 这个 pod 注解指定一组端口来截获流量,或通过 <code>traffic.sidecar.istio.io/excludeOutboundPorts</code> 指定一组端口来放行流量,以更改这种默认行为。</p></div></div><div class="faq-block faq-block--collapsed" id=difference-between-mutual-and-istio-mutual><div class=faq-block-question><span class=faq-block-question__text>MUTUAL 和 ISTIO_MUTUAL TLS 模式有什么区别?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>两个 <code>DestinationRule</code> 设置都会发送双向的 TLS 流量。
|
||
使用<code>ISTIO_MUTUAL</code>时,将会自动使用 Istio 证书。
|
||
对于<code>MUTUAL</code>,必须配置密钥、证书和可信任的CA。
|
||
允许与非 non-Istio 应用启动双向的 TLS。</p></div></div><div class="faq-block faq-block--collapsed" id=statefulsets><div class=faq-block-question><span class=faq-block-question__text>Istio 可以与 StatefulSets 和 Headless Service 一起使用吗?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p>是的,从 <a href=/v1.20/zh/blog/2021/statefulsets-made-easier/>Istio 1.10</a>,Istio 已完全支持这些工作负载。</p></div></div><div class="faq-block faq-block--collapsed" id=cors><div class=faq-block-question><span class=faq-block-question__text>为什么我的 CORS 配置不起作用?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p><p>当应用了 <a href=/v1.20/zh/docs/reference/config/networking/virtual-service/#CorsPolicy>CORS 配置</a>后,您可能会发现看似什么也没发生,并想知道哪里出了问题。
|
||
CORS 是一个经常被误解的 HTTP 概念,在配置时经常会导致混淆。</p><p>要弄明白这个问题,有必要退后一步,看看 <a href=https://developer.mozilla.org/zh/docs/Web/HTTP/CORS>CORS 是什么</a>,以及何时应该使用它。
|
||
默认情况下,浏览器对脚本发起的 “cross origin” 请求有限制。
|
||
例如,这可以防止网站 <code>attack.example.com</code> 向 <code>bank.example.com</code> 发出 JavaScript 请求,从而窃取用户的敏感信息。</p><p>为了允许这个请求, <code>bank.example.com</code> 必须允许 <code>attack.example.com</code> 执行跨源请求。
|
||
这就是 CORS 的作用所在。如果我们想在一个启用了 Istio 的集群内提供 <code>bank.example.com</code> 服务,我们可以通过配置一个 <code>corsPolicy</code> 来允许这样做:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: networking.istio.io/v1beta1
|
||
kind: VirtualService
|
||
metadata:
|
||
name: bank
|
||
spec:
|
||
hosts:
|
||
- bank.example.com
|
||
http:
|
||
- corsPolicy:
|
||
allowOrigins:
|
||
- exact: https://attack.example.com
|
||
...
|
||
</code></pre><p>在这种情况下,我们明确地允许一个单一的起源;通配符通常用于不敏感的页面。</p><p>一旦我们这样做了,一个常见的错误就是发送一个请求,比如 <code>curl bank.example.com -H "Origin: https://attack.example.com"</code>,然后期望这个请求被拒绝。
|
||
但是,curl 和许多其他客户端不会看到被拒绝的请求,因为 CORS 是一个浏览器约束。
|
||
CORS 配置只是在响应中添加 <code>Access-Control-*</code> 头;如果响应不令人满意,则由客户端(浏览器)来拒绝请求。
|
||
在浏览器中,这是通过<a href=https://developer.mozilla.org/zh/docs/Web/HTTP/CORS#preflighted_requests>预检请求</a>来完成的。</p></p></div></div><div class="faq-block faq-block--collapsed" id=ingress-with-no-route-rules><div class=faq-block-question><span class=faq-block-question__text>我可以不配置任何路由规则,使用 Ingress 的标准配置吗?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p><p>简单的 <code>Ingress</code> 规范开箱即用,通过 <code>Host</code>、<code>TLS</code> 以及基本 <code>Path</code> 精确匹配就可以使用,无需配置路由规则。
|
||
请注意 <code>Path</code> 在使用 <code>Ingress</code> 资源时不应该有任何 <code>.</code> 字符。</p><p>比如,下面 <code>Ingress</code> 的资源匹配 <code>Host</code> 为 <code>example.com</code> 以及 <code>URL</code> 为 <code>/helloworld</code> 的请求。</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ kubectl create -f - <<EOF
|
||
apiVersion: networking.k8s.io/v1
|
||
kind: Ingress
|
||
metadata:
|
||
name: simple-ingress
|
||
annotations:
|
||
kubernetes.io/ingress.class: istio
|
||
spec:
|
||
rules:
|
||
- host: example.com
|
||
http:
|
||
paths:
|
||
- path: /helloworld
|
||
pathType: Prefix
|
||
backend:
|
||
service:
|
||
name: myservice
|
||
port:
|
||
number: 8000
|
||
EOF
|
||
</code></pre><p>然而,这下面的规则将不工作,因为它们在 <code>Path</code> 中使用了正则表达式,并且添加了 <code>ingress.kubernetes.io</code> 注解。</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ kubectl create -f - <<EOF
|
||
apiVersion: networking.k8s.io/v1
|
||
kind: Ingress
|
||
metadata:
|
||
name: this-will-not-work
|
||
annotations:
|
||
kubernetes.io/ingress.class: istio
|
||
# Ingress annotations other than ingress class will not be honored
|
||
ingress.kubernetes.io/rewrite-target: /
|
||
spec:
|
||
rules:
|
||
- host: example.com
|
||
http:
|
||
paths:
|
||
- path: /hello(.*?)world/
|
||
pathType: Prefix
|
||
backend:
|
||
service:
|
||
name: myservice
|
||
port:
|
||
number: 8000
|
||
EOF
|
||
</code></pre></p></div></div><div class="faq-block faq-block--collapsed" id=naming-port-convention><div class=faq-block-question><span class=faq-block-question__text>Istio 支持哪些协议?</span><div class=faq-block-question__icon><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></div></div><div class=faq-block-answer><p><p>目前,Istio 支持基于 TCP 的协议。此外,Istio 还为其他协议(如 <code>http</code> 和 <code>mysql</code>)提供路由和指标等功能。</p><p>对于所有协议列表以及协议配置信息,请查看文档<a href=/v1.20/zh/docs/ops/configuration/traffic-management/protocol-selection/>协议选择</a> 。</p></p></div></div></div></article></div><div class=toc-container><nav class=toc aria-label="Table of Contents"><div id=toc><ol><li role=none aria-label=常见问题><a href=#%25E5%25B8%25B8%25E8%25A7%2581%25E9%2597%25AE%25E9%25A2%2598>常见问题</a><li role=none aria-label=安装><a href=#%25E5%25AE%2589%25E8%25A3%2585>安装</a><li role=none aria-label=安全><a href=#%25E5%25AE%2589%25E5%2585%25A8>安全</a><li role=none aria-label=指标和日志><a href=#%25E6%258C%2587%25E6%25A0%2587%25E5%2592%258C%25E6%2597%25A5%25E5%25BF%2597>指标和日志</a><li role=none aria-label=分布式追踪><a href=#%25E5%2588%2586%25E5%25B8%2583%25E5%25BC%258F%25E8%25BF%25BD%25E8%25B8%25AA>分布式追踪</a><li role=none aria-label=流量管理><a href=#%25E6%25B5%2581%25E9%2587%258F%25E7%25AE%25A1%25E7%2590%2586>流量管理</a></ol></div></nav></div></main><footer class=footer><div class="footer-wrapper container-l"><div class="user-links footer-links"><a class=channel title='Istio 的代码在 GitHub 上开发' href=https://github.com/istio/community aria-label=GitHub><svg class="icon github"><use xlink:href="/v1.20/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"><svg class="icon drive"><use xlink:href="/v1.20/img/icons.svg#drive"/></svg>
|
||
</a><a class=channel title='在 Slack 上与 Istio 社区交互讨论开发问题(仅限邀请)' href=https://slack.istio.io aria-label=slack><svg class="icon slack"><use xlink:href="/v1.20/img/icons.svg#slack"/></svg>
|
||
</a><a class=channel title='Stack Overflow 中列举了针对实际问题以及部署、配置和使用 Istio 的各项回答' href=https://stackoverflow.com/questions/tagged/istio aria-label="Stack Overflow"><svg class="icon stackoverflow"><use xlink:href="/v1.20/img/icons.svg#stackoverflow"/></svg>
|
||
</a><a class=channel title='关注我们的 Twitter 来获取最新信息' href=https://twitter.com/IstioMesh aria-label=Twitter><svg class="icon twitter"><use xlink:href="/v1.20/img/icons.svg#twitter"/></svg></a></div><hr class=footer-separator role=separator><div class="info footer-info"><a class=logo href=/v1.20/zh/ aria-label=logotype><svg xmlns="http://www.w3.org/2000/svg" width="128" height="60" viewBox="0 0 128 60"><path d="M58.434 48.823A.441.441.0 0158.3 48.497V22.583a.444.444.0 01.134-.326.446.446.0 01.327-.134h3.527a.447.447.0 01.325.134.447.447.0 01.134.326v25.914a.443.443.0 01-.134.326.444.444.0 01-.325.134h-3.527a.444.444.0 01-.327-.134z"/><path d="m70.969 48.477a6.556 6.556.0 01-2.818-1.955 4.338 4.338.0 01-1-2.78v-.345a.443.443.0 01.134-.326.444.444.0 01.326-.135h3.374a.444.444.0 01.326.135.445.445.0 01.134.326v.077a2.014 2.014.0 001.054 1.667 4.672 4.672.0 002.664.709 4.446 4.446.0 002.492-.633 1.862 1.862.0 00.958-1.591 1.426 1.426.0 00-.786-1.322 12.7 12.7.0 00-2.549-.939l-1.457-.46a21.526 21.526.0 01-3.3-1.227 6.57 6.57.0 01-2.262-1.783 4.435 4.435.0 01-.92-2.894 5.081 5.081.0 012.109-4.275 8.993 8.993.0 015.558-1.591 10.445 10.445.0 014.1.748 6.3 6.3.0 012.722 2.07 5 5 0 01.958 3.009.441.441.0 01-.134.326.441.441.0 01-.325.134h-3.258a.441.441.0 01-.326-.134.443.443.0 01-.134-.326 1.974 1.974.0 00-.978-1.667 4.647 4.647.0 00-2.665-.671 4.741 4.741.0 00-2.435.556 1.724 1.724.0 00-.938 1.553 1.512 1.512.0 00.9 1.4 15.875 15.875.0 003.01 1.055l.843.229a27.368 27.368.0 013.412 1.246 6.67 6.67.0 012.338 1.763 4.387 4.387.0 01.958 2.933 4.988 4.988.0 01-2.146 4.275 9.543 9.543.0 01-5.712 1.552 11.626 11.626.0 01-4.227-.709z"/><path d="m97.039 32.837a.443.443.0 01-.326.135h-3.911a.169.169.0 00-.191.192v9.239a2.951 2.951.0 00.632 2.108 2.7 2.7.0 002.013.652h1.15a.444.444.0 01.325.134.441.441.0 01.134.326v2.875a.471.471.0 01-.459.5l-1.994.039a8 8 0 01-4.524-1.035q-1.495-1.035-1.533-3.91V33.166A.17.17.0 0088.164 32.974H85.978A.441.441.0 0185.652 32.839.441.441.0 0185.518 32.513V29.83a.441.441.0 01.134-.326.444.444.0 01.326-.135h2.186a.169.169.0 00.191-.192v-4.485a.438.438.0 01.134-.326.44.44.0 01.325-.134h3.336a.443.443.0 01.325.134.442.442.0 01.135.326v4.485a.169.169.0 00.191.192h3.911a.446.446.0 01.326.135.446.446.0 01.134.326v2.683a.446.446.0 01-.133.324z"/><path d="m101.694 25.917a2.645 2.645.0 01-.767-1.955 2.65 2.65.0 01.767-1.955 2.65 2.65.0 011.955-.767 2.65 2.65.0 011.955.767 2.652 2.652.0 01.767 1.955 2.647 2.647.0 01-.767 1.955 2.646 2.646.0 01-1.955.767 2.645 2.645.0 01-1.955-.767zm-.211 22.906a.441.441.0 01-.134-.326V29.79a.444.444.0 01.134-.326.446.446.0 01.326-.134h3.527a.446.446.0 01.326.134.445.445.0 01.134.326v18.707a.443.443.0 01-.134.326.443.443.0 01-.326.134h-3.527a.443.443.0 01-.326-.134z"/><path d="m114.019 47.734a8.1 8.1.0 01-3.047-4.255 14.439 14.439.0 01-.652-4.37 14.3 14.3.0 01.614-4.371A7.869 7.869.0 01114 30.56a9.072 9.072.0 015.252-1.5 8.543 8.543.0 015.041 1.5 7.985 7.985.0 013.009 4.14 12.439 12.439.0 01.69 4.37 13.793 13.793.0 01-.651 4.37 8.255 8.255.0 01-3.028 4.275 8.475 8.475.0 01-5.1 1.553 8.754 8.754.0 01-5.194-1.534zm7.629-3.1a4.536 4.536.0 001.476-2.262 11.335 11.335.0 00.383-3.221 10.618 10.618.0 00-.383-3.22 4.169 4.169.0 00-1.457-2.243 4.066 4.066.0 00-2.531-.785 3.942 3.942.0 00-2.453.785 4.376 4.376.0 00-1.5 2.243 11.839 11.839.0 00-.383 3.22 11.84 11.84.0 00.383 3.221 4.222 4.222.0 001.476 2.262 4.075 4.075.0 002.549.8 3.8 3.8.0 002.44-.809z"/><path d="m15.105 32.057v15.565a.059.059.0 01-.049.059L.069 50.25A.06.06.0 01.005 50.167l14.987-33.47a.06.06.0 01.114.025z"/><path d="m17.631 23.087v24.6a.06.06.0 00.053.059l22.449 2.507a.06.06.0 00.061-.084L17.745.032a.06.06.0 00-.114.024z"/><path d="m39.961 52.548-24.833 7.45a.062.062.0 01-.043.0L.079 52.548a.059.059.0 01.026-.113h39.839a.06.06.0 01.017.113z"/></svg></a><div class=footer-languages><a tabindex=-1 lang=en id=switch-lang-en class=footer-languages-item>English
|
||
</a><a tabindex=-1 lang=zh id=switch-lang-zh class="footer-languages-item active"><svg class="icon tick"><use xlink:href="/v1.20/img/icons.svg#tick"/></svg>
|
||
中文</a></div></div><ul class=footer-policies><li class=footer-policies-item><a class=footer-policies-link href=https://www.linuxfoundation.org/legal/terms>条款
|
||
</a>|
|
||
<a class=footer-policies-link href=https://www.linuxfoundation.org/legal/privacy-policy>隐私政策
|
||
</a>|
|
||
<a class=footer-policies-link href=https://www.linuxfoundation.org/legal/trademark-usage>商标
|
||
</a>|
|
||
<a class=footer-policies-link href=https://github.com/istio/istio.io/edit/release-1.20/content/zh/_index>在 GitHub 上编辑此页</a></li></ul><div class=footer-base><span class=footer-base-copyright>© 2024 the Istio Authors.</span>
|
||
<span class=footer-base-version>部分内容可能滞后于英文版本,同步工作正在进行中<br>版本
|
||
Istio 归档
|
||
1.20.3</span><ul class=footer-base-releases><li class=footer-base-releases-item><a tabindex=-1 class=footer-base-releases-link onclick='return navigateToUrlOrRoot("https://istio.io/about/faq/"),!1'>当前版本</a></li><li class=footer-base-releases-item><a tabindex=-1 class=footer-base-releases-link onclick='return navigateToUrlOrRoot("https://preliminary.istio.io/about/faq/"),!1'>下个版本</a></li><li class=footer-base-releases-item><a tabindex=-1 class=footer-base-releases-link href=https://istio.io/archive>旧版本</a></li></ul></div></div></footer><div id=scroll-to-top-container aria-hidden=true><button id=scroll-to-top title=回到顶部 tabindex=-1><svg class="icon top"><use xlink:href="/v1.20/img/icons.svg#top"/></svg></button></div></body></html> |