mirror of https://github.com/istio/istio.io.git
473 lines
112 KiB
HTML
473 lines
112 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="定位常见的 Istio 流量管理和网络问题的技术。"><meta name=keywords content="microservices,services,mesh"><meta property="og:title" content="流量管理问题"><meta property="og:type" content="website"><meta property="og:description" content="定位常见的 Istio 流量管理和网络问题的技术。"><meta property="og:url" content="/v1.21/zh/docs/ops/common-problems/network-issues/"><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.21 / 流量管理问题</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.21/blog/feed.xml><link rel=alternate type=application/rss+xml title="Istio News" href=/v1.21/news/feed.xml><link rel=alternate type=application/rss+xml title="Istio Blog and News" href=/v1.21/feed.xml><link rel="shortcut icon" href=/v1.21/favicons/favicon.ico><link rel=apple-touch-icon href=/v1.21/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/v1.21/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/v1.21/favicons/favicon-32x32.png sizes=32x32><link rel=icon type=image/png href=/v1.21/favicons/android-36x36.png sizes=36x36><link rel=icon type=image/png href=/v1.21/favicons/android-48x48.png sizes=48x48><link rel=icon type=image/png href=/v1.21/favicons/android-72x72.png sizes=72x72><link rel=icon type=image/png href=/v1.21/favicons/android-96x96.png sizes=96xW96><link rel=icon type=image/png href=/v1.21/favicons/android-144x144.png sizes=144x144><link rel=icon type=image/png href=/v1.21/favicons/android-192x192.png sizes=192x192><link rel=icon type=image/svg+xml href=/v1.21/favicons/favicon.svg><link rel=icon type=image/png href=/v1.21/favicons/favicon.png><link rel=mask-icon href=/v1.21/favicons/safari-pinned-tab.svg color=#466BB0><link rel=manifest href=/v1.21/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.21/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.21/js/themes_init.min.js></script></head><body class="language-unknown archive-site"><script>const branchName="release-1.21",docTitle="流量管理问题",iconFile="/v1.21//img/icons.svg",buttonCopy="复制到剪切板",buttonPrint="打印",buttonDownload="下载"</script><script src="https://www.google.com/cse/brand?form=search-form" defer></script><script src=/v1.21/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.21/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.21/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.21/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.21/img/icons.svg#dropdown-arrow"/></svg></a><ul class=main-navigation-links-dropdown><li class=main-navigation-links-dropdown-item><a href=/v1.21/zh/about/service-mesh class=main-navigation-links-link>服务网格</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.21/zh/about/solutions class=main-navigation-links-link>解决方案</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.21/zh/about/case-studies class=main-navigation-links-link>案例学习</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.21/zh/about/ecosystem class=main-navigation-links-link>生态系统</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.21/zh/about/deployment class=main-navigation-links-link>部署</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.21/zh/about/faq class=main-navigation-links-link>FAQ</a></li></ul></li><li class=main-navigation-links-item><a href=/v1.21/zh/blog/ class=main-navigation-links-link><span>博客</span></a></li><li class=main-navigation-links-item><a href=/v1.21/zh/news/ class=main-navigation-links-link><span>新闻</span></a></li><li class=main-navigation-links-item><a href=/v1.21/zh/get-involved/ class=main-navigation-links-link><span>加入我们</span></a></li><li class=main-navigation-links-item><a href=/v1.21/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.21/img/icons.svg#magnifier"/></svg></button>
|
||
<a href=/v1.21/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.21/img/icons.svg#menu-close"/></svg></button></form></nav></header><div class=banner-container></div><main class="primary container has-sidebar has-toc docs"><div id=sidebar-container class=sidebar-container><nav id=sidebar aria-label="Section Navigation"><button id=sidebar-close class="main-navigation-toggle sidebar-close" aria-label="Close sidebar"><svg class="icon menu-close"><use xlink:href="/v1.21/img/icons.svg#menu-close"/></svg></button><div class=sidebar-nav><div class=search><form id=search-docs-form name=cse role=search><input type=hidden name=ie value=utf-8>
|
||
<input type=hidden name=hl value=en>
|
||
<input type=hidden id=search-docs-url value=/v1.21//search>
|
||
<input id=search-docs-textbox class=form-control name=docs-search type=search aria-label='搜索 istio.io' placeholder=搜索>
|
||
<button id=search-show2 class=search-show title='搜索 istio.io' aria-label=搜索><svg class="icon magnifier"><use xlink:href="/v1.21/img/icons.svg#magnifier"/></svg></button></form></div><div class=card><div class="body default" aria-labelledby=header0><ul role=tree aria-expanded=true aria-labelledby=header0><li role=treeitem aria-label=概念><a class=main title="一些概念,理解它们有助于您更好地了解 Istio 系统的不同部分及其使用的抽象。" href=/v1.21/zh/docs/concepts/>概念</a><ul role=group aria-expanded=true class=leaf-section><li role=none><a role=treeitem title="描述 Istio 多样的流量路由和控制特性。" href=/v1.21/zh/docs/concepts/traffic-management/>流量管理</a></li><li role=none><a role=treeitem title="描述 Istio 的授权与认证功能。" href=/v1.21/zh/docs/concepts/security/>安全</a></li><li role=none><a role=treeitem title="描述 Istio 提供的遥测和监控特性。" href=/v1.21/zh/docs/concepts/observability/>可观测性</a></li><li role=none><a role=treeitem title="讲述 Istio 的 WebAssembly 插件系统。" href=/v1.21/zh/docs/concepts/wasm/>扩展性</a></li></ul></li><li role=treeitem aria-label=安装><a class=main title="关于如何在 Kubernetes 集群中安装 Istio 控制平面和添加虚拟机到 mesh 中的说明。" href=/v1.21/zh/docs/setup/>安装</a><ul role=group aria-expanded=true><li role=none><a role=treeitem title="快速、轻松地尝试 Istio 特性。" href=/v1.21/zh/docs/setup/getting-started/>入门</a></li><li role=treeitem aria-label=平台安装><button aria-hidden=true tabindex=-1></button><a title="在安装 Istio 之前如何准备各种 Kubernetes 平台。" href=/v1.21/zh/docs/setup/platform-setup/>平台安装</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="在各平台上安装 Istio 的前提条件。" href=/v1.21/zh/docs/setup/platform-setup/prerequisites/>平台前提条件</a></li><li role=none><a role=treeitem title="在阿里云 Kubernetes 集群进行配置以便安装运行 Istio。" href=/v1.21/zh/docs/setup/platform-setup/alicloud/>阿里云</a></li><li role=none><a role=treeitem title="有关在 AWS 云中的 Amazon EKS 上设置 Istio 的说明。" href=/v1.21/zh/docs/setup/platform-setup/amazon-eks/>Amazon EKS</a></li><li role=none><a role=treeitem title="为 Istio 设置一个 Azure 集群的操作说明。" href=/v1.21/zh/docs/setup/platform-setup/azure/>Azure</a></li><li role=none><a role=treeitem title="在 Docker Desktop 中运行 Istio 的设置说明。" href=/v1.21/zh/docs/setup/platform-setup/docker/>Docker Desktop</a></li><li role=none><a role=treeitem title="在 Google Kubernetes Engine (GKE) 上快速搭建 Istio 服务。" href=/v1.21/zh/docs/setup/platform-setup/gke/>使用 Google Kubernetes Engine 快速开始</a></li><li role=none><a role=treeitem title="为 Istio 设置一个华为云 Kubernetes 集群的操作说明。" href=/v1.21/zh/docs/setup/platform-setup/huaweicloud/>华为云</a></li><li role=none><a role=treeitem title="在 IBM 公有云或私有云上快速搭建 Istio 服务。" href=/v1.21/zh/docs/setup/platform-setup/ibm/>IBM Cloud 快速开始</a></li><li role=none><a role=treeitem title="为 Istio 设置 k3d 的说明。" href=/v1.21/zh/docs/setup/platform-setup/k3d/>k3d</a></li><li role=none><a role=treeitem title="为 Istio 设置 kind 的说明。" href=/v1.21/zh/docs/setup/platform-setup/kind/>kind</a></li><li role=none><a role=treeitem title="为 Istio 搭建 Kops 的设置说明。" href=/v1.21/zh/docs/setup/platform-setup/kops/>Kops</a></li><li role=none><a role=treeitem title="使用 Gardener 快速搭建 Istio 服务。" href=/v1.21/zh/docs/setup/platform-setup/gardener/>Kubernetes Gardener 快速开始</a></li><li role=none><a role=treeitem title="Istio 适配 KubeSphere 容器平台指南。" href=/v1.21/zh/docs/setup/platform-setup/kubesphere/>KubeSphere Container Platform</a></li><li role=none><a role=treeitem title="配置 MicroK8s 以便使用 Istio。" href=/v1.21/zh/docs/setup/platform-setup/microk8s/>MicroK8s</a></li><li role=none><a role=treeitem title="在 minikube 上配置 Istio。" href=/v1.21/zh/docs/setup/platform-setup/minikube/>minikube</a></li><li role=none><a role=treeitem title="在 OpenShift 集群上快速搭建 Istio 服务。" href=/v1.21/zh/docs/setup/platform-setup/openshift/>OpenShift</a></li><li role=none><a role=treeitem title="使用 Oracle Container 为 Istio 准备集群的说明。" href=/v1.21/zh/docs/setup/platform-setup/oci/>Oracle Cloud 基础架构</a></li><li role=none><a role=treeitem title="在腾讯云上快速创建 Istio 服务。" href=/v1.21/zh/docs/setup/platform-setup/tencent-cloud-mesh/>腾讯云</a></li></ul></li><li role=treeitem aria-label=安装><button aria-hidden=true tabindex=-1></button><a title=选择最适合您需求和平台的安装指南。 href=/v1.21/zh/docs/setup/install/>安装</a><ul role=group aria-expanded=false><li role=none><a role=treeitem title="安装、定制 Istio 配置文件,用于深入评估及生产发布。" href=/v1.21/zh/docs/setup/install/istioctl/>使用 Istioctl 安装</a></li><li role=none><a role=treeitem title="使用 Helm 在 K8s 集群中安装和配置 Istio。" href=/v1.21/zh/docs/setup/install/helm/>使用 Helm 安装</a></li><li role=treeitem aria-label=多集群安装><button aria-hidden=true tabindex=-1></button><a title="跨多 Kubernetes 集群,安装 Istio 服务网格。" href=/v1.21/zh/docs/setup/install/multicluster/>多集群安装</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="在多个集群上安装 Istio 之前的初始步骤。" href=/v1.21/zh/docs/setup/install/multicluster/before-you-begin/>准备工作</a></li><li role=none><a role=treeitem title="跨多个主集群,安装 Istio 网格。" href=/v1.21/zh/docs/setup/install/multicluster/multi-primary/>多主架构的安装</a></li><li role=none><a role=treeitem title="跨主从集群,安装 Istio 网格。" href=/v1.21/zh/docs/setup/install/multicluster/primary-remote/>主从架构的安装</a></li><li role=none><a role=treeitem title="跨网络、多主架构的 Istio 网格安装。" href=/v1.21/zh/docs/setup/install/multicluster/multi-primary_multi-network/>跨网络多主架构的安装</a></li><li role=none><a role=treeitem title="跨网络、主从架构的 Istio 网格安装。" href=/v1.21/zh/docs/setup/install/multicluster/primary-remote_multi-network/>跨网络主从架构的安装</a></li><li role=none><a role=treeitem title="验证 Istio 已成功安装到多集群环境中。" href=/v1.21/zh/docs/setup/install/multicluster/verify/>验证安装结果</a></li></ul></li><li role=none><a role=treeitem title="使用修订和 discoverySelectors 在单集群中安装多个 Istio 控制面。" href=/v1.21/zh/docs/setup/install/multiple-controlplanes/>在单集群中安装多个 Istio 控制面</a></li><li role=none><a role=treeitem title="部署 Istio,接入虚拟机中运行的工作负载。" href=/v1.21/zh/docs/setup/install/virtual-machine/>虚拟机安装</a></li><li role=none><a role=treeitem title=安装外部控制平面和从集群。 href=/v1.21/zh/docs/setup/install/external-controlplane/>使用外部控制平面安装 Istio</a></li><li role=none><a role=treeitem title="使用 Istio Operator 在 Kubernetes 集群中安装 Istio 的说明。" href=/v1.21/zh/docs/setup/install/operator/>使用 Istio Operator 安装</a></li></ul></li><li role=treeitem aria-label=升级><button aria-hidden=true tabindex=-1></button><a title="跨多个控制平面升级、降级和管理 Istio。" href=/v1.21/zh/docs/setup/upgrade/>升级</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="通过先运行一个金丝雀部署的新控制平面升级 Istio。" href=/v1.21/zh/docs/setup/upgrade/canary/>金丝雀升级</a></li><li role=none><a role=treeitem title=原地升级和回退。 href=/v1.21/zh/docs/setup/upgrade/in-place/>原地升级</a></li><li role=none><a role=treeitem title="使用 Helm 升级 Istio 的说明。" href=/v1.21/zh/docs/setup/upgrade/helm/>使用 Helm 升级</a></li></ul></li><li role=treeitem aria-label=更多指南><button aria-hidden=true tabindex=-1></button><a title=有关其他设置任务的更多信息。 href=/v1.21/zh/docs/setup/additional-setup/>更多指南</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="轻松试用 Istio 的各项功能。" href=/v1.21/zh/docs/setup/additional-setup/getting-started/>开始使用 Istio 和 Kubernetes Gateway API</a></li><li role=none><a role=treeitem title="描述 Istio 内置的安装配置文件。" href=/v1.21/zh/docs/setup/additional-setup/config-profiles/>安装配置文件</a></li><li role=none><a role=treeitem title=配置“兼容版本”将行为变更与版本发布解耦。 href=/v1.21/zh/docs/setup/additional-setup/compatibility-versions/>兼容版本</a></li><li role=none><a role=treeitem title="安装和定制 Istio Gateway。" href=/v1.21/zh/docs/setup/additional-setup/gateway/>安装 Gateway</a></li><li role=none><a role=treeitem title="在应用程序 Pod 中使用 Sidecar Injector Webhook 自动安装或使用 Istioctl CLI 手动安装 Istio Sidecar。" href=/v1.21/zh/docs/setup/additional-setup/sidecar-injection/>安装 Sidecar</a></li><li role=none><a role=treeitem title=描述如何定制安装配置选项。 href=/v1.21/zh/docs/setup/additional-setup/customize-installation/>定制安装配置</a></li><li role=none><a role=treeitem title="描述使用 Helm 安装时如何自定义安装配置选项。" href=/v1.21/zh/docs/setup/additional-setup/customize-installation-helm/>高级 Helm chart 自定义</a></li><li role=none><a role=treeitem title="安装并使用 Istio CNI 插件,可以让运维人员用更低的权限来部署服务。" href=/v1.21/zh/docs/setup/additional-setup/cni/>安装 Istio CNI 插件</a></li><li role=none><a role=treeitem title="通过 Pod Security 准入控制器安装和使用 Istio。" href=/v1.21/zh/docs/setup/additional-setup/pod-security-admission/>通过 Pod 安全准入安装 Istio</a></li><li role=none><a role=treeitem title="在双栈 Kubernetes 集群上以双栈模式安装和使用 Istio。" href=/v1.21/zh/docs/setup/additional-setup/dual-stack/>在双栈模式中安装 Istio</a></li></ul></li></ul></li><li role=treeitem aria-label=任务><a class=main title="如何用 Istio 实现单个特定的目标行为。" href=/v1.21/zh/docs/tasks/>任务</a><ul role=group aria-expanded=true><li role=treeitem aria-label=流量管理><button aria-hidden=true tabindex=-1></button><a title="演示 Istio 的流量路由功能的任务。" href=/v1.21/zh/docs/tasks/traffic-management/>流量管理</a><ul role=group aria-expanded=false><li role=none><a role=treeitem title=如何将请求动态路由到微服务的多个版本。 href=/v1.21/zh/docs/tasks/traffic-management/request-routing/>配置请求路由</a></li><li role=none><a role=treeitem title=此任务说明如何注入故障并测试应用程序的弹性。 href=/v1.21/zh/docs/tasks/traffic-management/fault-injection/>故障注入</a></li><li role=none><a role=treeitem title=展示如何将流量从旧版本迁移到新版本的服务。 href=/v1.21/zh/docs/tasks/traffic-management/traffic-shifting/>流量转移</a></li><li role=none><a role=treeitem title="展示如何将一个服务的 TCP 流量从旧版本迁移到新版本。" href=/v1.21/zh/docs/tasks/traffic-management/tcp-traffic-shifting/>TCP 流量转移</a></li><li role=none><a role=treeitem title="本任务用于示范如何使用 Istio 在 Envoy 中设置请求超时。" href=/v1.21/zh/docs/tasks/traffic-management/request-timeouts/>设置请求超时</a></li><li role=none><a role=treeitem title=本任务展示如何为连接、请求以及异常检测配置熔断。 href=/v1.21/zh/docs/tasks/traffic-management/circuit-breaking/>熔断</a></li><li role=none><a role=treeitem title="此任务演示了 Istio 的流量镜像/影子功能。" href=/v1.21/zh/docs/tasks/traffic-management/mirroring/>镜像</a></li><li role=treeitem aria-label=地域负载均衡><button aria-hidden=true tabindex=-1></button><a title="本系列任务演示如何在 Istio 中配置地域负载均衡。" href=/v1.21/zh/docs/tasks/traffic-management/locality-load-balancing/>地域负载均衡</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title=配置地域负载均衡前的初始化步骤。 href=/v1.21/zh/docs/tasks/traffic-management/locality-load-balancing/before-you-begin/>开始之前</a></li><li role=none><a role=treeitem title=本任务演示如何为网格配置地域故障转移。 href=/v1.21/zh/docs/tasks/traffic-management/locality-load-balancing/failover/>地域故障转移</a></li><li role=none><a role=treeitem title=本指南演示如何配置地域权重分配。 href=/v1.21/zh/docs/tasks/traffic-management/locality-load-balancing/distribute/>地域权重分布</a></li><li role=none><a role=treeitem title=地域负载均衡的清理步骤。 href=/v1.21/zh/docs/tasks/traffic-management/locality-load-balancing/cleanup/>清理</a></li></ul></li><li role=treeitem aria-label=Ingress><button aria-hidden=true tabindex=-1></button><a title="控制 Istio 服务网格的入口流量。" href=/v1.21/zh/docs/tasks/traffic-management/ingress/>Ingress</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="描述如何配置 Istio Gateway 对象,以将服务暴露至服务网格之外。" href=/v1.21/zh/docs/tasks/traffic-management/ingress/ingress-control/>入口网关</a></li><li role=none><a role=treeitem title="通过 TLS 或 mTLS 将服务暴露到服务网格外。" href=/v1.21/zh/docs/tasks/traffic-management/ingress/secure-ingress/>安全网关</a></li><li role=none><a role=treeitem title="描述了如何在不使用 Ingress Gateway 的情况下,在一个 Sidecar 上终止 TLS 流量。" href=/v1.21/zh/docs/tasks/traffic-management/ingress/ingress-sidecar-tls-termination/>Ingress Sidecar TLS 终止</a></li><li role=none><a role=treeitem title="如何为一个 Ingress Gateway 配置 SNI 透传。" href=/v1.21/zh/docs/tasks/traffic-management/ingress/ingress-sni-passthrough/>无 TLS 终止的 Ingress Gateway</a></li><li role=none><a role=treeitem title="展示如何配置 Kubernetes Ingress 对象,使得从服务网格外部可以访问网格内服务。" href=/v1.21/zh/docs/tasks/traffic-management/ingress/kubernetes-ingress/>Kubernetes Ingress</a></li><li role=none><a role=treeitem title="描述在 Istio 中如何配置 Kubernetes Gateway API。" href=/v1.21/zh/docs/tasks/traffic-management/ingress/gateway-api/>Kubernetes Gateway API</a></li></ul></li><li role=treeitem aria-label=Egress><button aria-hidden=true tabindex=-1></button><a title="控制 Istio 服务网格的出口流量。" href=/v1.21/zh/docs/tasks/traffic-management/egress/>Egress</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="描述如何配置 Istio 以将流量从网格中的服务路由到外部服务。" href=/v1.21/zh/docs/tasks/traffic-management/egress/egress-control/>访问外部服务</a></li><li role=none><a role=treeitem title="描述如何配置 Istio 对来自外部服务的流量执行 TLS 发起。" href=/v1.21/zh/docs/tasks/traffic-management/egress/egress-tls-origination/>Egress TLS Origination</a></li><li role=none><a role=treeitem title="描述如何配置 Istio 通过专用网关服务将流量定向到外部服务。" href=/v1.21/zh/docs/tasks/traffic-management/egress/egress-gateway/>出口网关</a></li><li role=none><a role=treeitem title="描述如何配置一个 Egress 网关,来向外部服务发起 TLS 连接。" href=/v1.21/zh/docs/tasks/traffic-management/egress/egress-gateway-tls-origination/>Egress 网关的 TLS 发起过程</a></li><li role=none><a role=treeitem title="描述如何开启通用域中一组主机的 Egress,无需单独配置每一台主机。" href=/v1.21/zh/docs/tasks/traffic-management/egress/wildcard-egress-hosts/>Wildcard 主机的 Egress</a></li><li role=none><a role=treeitem title="展示如何配置 Istio Kubernetes 外部服务。" href=/v1.21/zh/docs/tasks/traffic-management/egress/egress-kubernetes-services/>Kubernetes Egress 流量服务</a></li><li role=none><a role=treeitem title="描述如何配置 Istio 以允许应用程序使用外部 HTTPS 代理。" href=/v1.21/zh/docs/tasks/traffic-management/egress/http-proxy/>使用外部 HTTPS 代理</a></li></ul></li></ul></li><li role=treeitem aria-label=安全><button aria-hidden=true tabindex=-1></button><a title=演示如何保护网格。 href=/v1.21/zh/docs/tasks/security/>安全</a><ul role=group aria-expanded=false><li role=treeitem aria-label=认证><button aria-hidden=true tabindex=-1></button><a title="管控网格服务间的双向 TLS 和终端用户的身份认证。" href=/v1.21/zh/docs/tasks/security/authentication/>认证</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="演示如何使用基于 JWT 声明路由请求的 Istio 身份验证策略。 (Alpha)" href=/v1.21/zh/docs/tasks/security/authentication/jwt-route/>基于 JWT 声明的路由 *</a></li><li role=none><a role=treeitem title="向您展示如何通过使用 Istio 认证策略来设置双向 TLS 和基本的终端用户认证。" href=/v1.21/zh/docs/tasks/security/authentication/authn-policy/>认证策略</a></li><li role=none><a role=treeitem title="展示用户如何能将 JWT 声明复制到 HTTP 头。 (Experimental)" href=/v1.21/zh/docs/tasks/security/authentication/claim-to-header/>复制 JWT 声明到 HTTP 头 *</a></li><li role=none><a role=treeitem title="阐述如何将 Istio 服务逐步迁移至双向 TLS 通信模式。" href=/v1.21/zh/docs/tasks/security/authentication/mtls-migration/>双向 TLS 迁移</a></li></ul></li><li role=treeitem aria-label=证书管理><button aria-hidden=true tabindex=-1></button><a title="管理 Istio 的证书。" href=/v1.21/zh/docs/tasks/security/cert-management/>证书管理</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="系统管理员如何通过根证书、签名证书和密钥来配置 Istio 的 CA。" href=/v1.21/zh/docs/tasks/security/cert-management/plugin-ca-cert/>插入 CA 证书</a></li><li role=none><a role=treeitem title="演示如何使用自定义证书颁发机构(与 Kubernetes CSR API 集成)来提供 Istio 工作负载证书。 (Experimental)" href=/v1.21/zh/docs/tasks/security/cert-management/custom-ca-k8s/>使用 Kubernetes CSR 自定义 CA 集成 *</a></li></ul></li><li role=treeitem aria-label=授权><button aria-hidden=true tabindex=-1></button><a title="展示如何控制到 Istio 服务的访问。" href=/v1.21/zh/docs/tasks/security/authorization/>授权</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="展示如何设置 HTTP 流量访问控制。" href=/v1.21/zh/docs/tasks/security/authorization/authz-http/>HTTP 流量</a></li><li role=none><a role=treeitem title="展示如何设置 TCP 流量的访问控制。" href=/v1.21/zh/docs/tasks/security/authorization/authz-tcp/>TCP 流量</a></li><li role=none><a role=treeitem title="演示如何为 JWT 令牌设置访问控制。" href=/v1.21/zh/docs/tasks/security/authorization/authz-jwt/>JWT 令牌</a></li><li role=none><a role=treeitem title=如何集成访问控制并将其委托给外部授权系统。 href=/v1.21/zh/docs/tasks/security/authorization/authz-custom/>外部授权</a></li><li role=none><a role=treeitem title=如何设置访问控制以明确地拒绝流量。 href=/v1.21/zh/docs/tasks/security/authorization/authz-deny/>明确拒绝</a></li><li role=none><a role=treeitem title="展示如何在 Ingress 网关上设置访问控制。" href=/v1.21/zh/docs/tasks/security/authorization/authz-ingress/>Ingress 网关</a></li><li role=none><a role=treeitem title=阐述如何在不更改授权策略的前提下从一个信任域迁移到另一个。 href=/v1.21/zh/docs/tasks/security/authorization/authz-td-migration/>信任域迁移</a></li><li role=none><a role=treeitem title="展示如何在不实际执行的情况下,观察授权策略应用后的效果。 (Alpha)" href=/v1.21/zh/docs/tasks/security/authorization/authz-dry-run/>模拟运行 *</a></li></ul></li><li role=treeitem aria-label="TLS 配置"><button aria-hidden=true tabindex=-1></button><a title="在 Istio 中配置 TLS。" href=/v1.21/zh/docs/tasks/security/tls-configuration/>TLS 配置</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="演示如何为 Istio 工作负载配置最低版本的 TLS。" href=/v1.21/zh/docs/tasks/security/tls-configuration/workload-min-tls-version/>Istio 工作负载的最低 TLS 版本配置</a></li></ul></li></ul></li><li role=treeitem aria-label=策略执行><button aria-hidden=true tabindex=-1></button><a title=演示策略执行特性。 href=/v1.21/zh/docs/tasks/policy-enforcement/>策略执行</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="此任务将展示如何配置 Istio 来动态地限制服务的流量。" href=/v1.21/zh/docs/tasks/policy-enforcement/rate-limit/>使用 Envoy 启用速率限制</a></li></ul></li><li role=treeitem aria-label=可观测性><button aria-hidden=true tabindex=-1></button><a title=演示如何从网格收集遥测信息。 href=/v1.21/zh/docs/tasks/observability/>可观测性</a><ul role=group aria-expanded=false><li role=none><a role=treeitem title="本任务向您演示如何配置 Telemetry API。 (Alpha)" href=/v1.21/zh/docs/tasks/observability/telemetry/>Telemetry API *</a></li><li role=treeitem aria-label=指标><button aria-hidden=true tabindex=-1></button><a title="演示 Istio 中指标的收集和查询。" href=/v1.21/zh/docs/tasks/observability/metrics/>指标</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="这个任务向您展示如何使用 Telemetry API 自定义 Istio 监控指标。" href=/v1.21/zh/docs/tasks/observability/metrics/telemetry-api/>使用 Telemetry API 自定义 Istio 监控指标</a></li><li role=none><a role=treeitem title="本任务展示了如何配置 Istio 进行 TCP 服务的指标收集。" href=/v1.21/zh/docs/tasks/observability/metrics/tcp-metrics/>收集 TCP 服务指标</a></li><li role=none><a role=treeitem title="此任务向您展示如何自定义 Istio 指标。" href=/v1.21/zh/docs/tasks/observability/metrics/customize-metrics/>自定义 Istio 指标</a></li><li role=none><a role=treeitem title=此任务向您展示如何通过按类型对请求和响应进行分组来改进遥测。 href=/v1.21/zh/docs/tasks/observability/metrics/classify-metrics/>根据请求或响应对指标进行分类</a></li><li role=none><a role=treeitem title="本任务介绍如何通过 Prometheus 查询 Istio 度量指标。" href=/v1.21/zh/docs/tasks/observability/metrics/querying-metrics/>通过 Prometheus 查询度量指标</a></li><li role=none><a role=treeitem title="此任务展示了如何设置和使用 Istio Dashboard 监控网格流量。" href=/v1.21/zh/docs/tasks/observability/metrics/using-istio-dashboard/>使用 Grafana 可视化指标</a></li></ul></li><li role=treeitem aria-label=日志><button aria-hidden=true tabindex=-1></button><a title="演示 Istio 网格日志的配置、收集和处理。" href=/v1.21/zh/docs/tasks/observability/logs/>日志</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="本任务向您演示如何使用 OpenTelemetry 收集器配置 Envoy 代理来发送访问日志。" href=/v1.21/zh/docs/tasks/observability/logs/otel-provider/>OpenTelemetry</a></li><li role=none><a role=treeitem title="此任务向您展示如何配置 Envoy 代理将访问日志打印到其标准输出。" href=/v1.21/zh/docs/tasks/observability/logs/access-log/>获取 Envoy 访问日志</a></li><li role=none><a role=treeitem title="此任务向您演示如何使用 Telemetry API 配置 Envoy 代理来发送访问日志。" href=/v1.21/zh/docs/tasks/observability/logs/telemetry-api/>使用 Telemetry API 配置访问日志</a></li></ul></li><li role=treeitem aria-label=分布式追踪><button aria-hidden=true tabindex=-1></button><a title="该任务展示了如何为启用了 Istio 支持的应用进行追踪。" href=/v1.21/zh/docs/tasks/observability/distributed-tracing/>分布式追踪</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="Istio 分布式链路追踪的概述。" href=/v1.21/zh/docs/tasks/observability/distributed-tracing/overview/>概述</a></li><li role=none><a role=treeitem title="如何使用 Telemetry API 配置链路追踪。" href=/v1.21/zh/docs/tasks/observability/distributed-tracing/telemetry-api/>使用 Telemetry API 配置链路追踪</a></li><li role=none><a role=treeitem title="学习如何配置代理将链路追踪请求发送到 Apache SkyWalking。" href=/v1.21/zh/docs/tasks/observability/distributed-tracing/skywalking/>Apache SkyWalking</a></li><li role=none><a role=treeitem title="了解如何配置代理以向 Jaeger 发送追踪请求。" href=/v1.21/zh/docs/tasks/observability/distributed-tracing/jaeger/>Jaeger</a></li><li role=none><a role=treeitem title="学习如何配置代理将 OpenCensus 格式化的 span 发送到 OpenTelemetry Collector。" href=/v1.21/zh/docs/tasks/observability/distributed-tracing/opencensusagent/>OpenCensus Agent</a></li><li role=none><a role=treeitem title="了解如何通过配置代理以向 Zipkin 发送追踪请求。" href=/v1.21/zh/docs/tasks/observability/distributed-tracing/zipkin/>Zipkin</a></li><li role=none><a role=treeitem title="怎样配置代理才能把链路追踪请求发送到 Lightstep。" href=/v1.21/zh/docs/tasks/observability/distributed-tracing/lightstep/>Lightstep</a></li><li role=none><a role=treeitem title="如何使用 MeshConfig 和 Pod 注解配置链路追踪。" href=/v1.21/zh/docs/tasks/observability/distributed-tracing/mesh-and-proxy-config/>使用 MeshConfig 和 Pod 注解配置链路追踪</a></li></ul></li><li role=none><a role=treeitem title="此任务向您展示如何在 Istio 网格中可视化服务。" href=/v1.21/zh/docs/tasks/observability/kiali/>网格可视化</a></li><li role=none><a role=treeitem title="此任务向您展示如何配置从外部访问 Istio 遥测插件集。" href=/v1.21/zh/docs/tasks/observability/gateways/>远程访问遥测插件</a></li></ul></li><li role=treeitem aria-label=可扩展性><button aria-hidden=true tabindex=-1></button><a title=演示如何扩展网格行为。 href=/v1.21/zh/docs/tasks/extensibility/>可扩展性</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="描述如何在网格中使用远程 WebAssembly 模块。 (Alpha)" href=/v1.21/zh/docs/tasks/extensibility/wasm-module-distribution/>WebAssembly 模块分发 *</a></li></ul></li></ul></li><li role=treeitem aria-label=示例><a class=main title="这里包括多个可供 Istio 使用的可完整工作的示例,您可以用来亲自部署和体验这些示例。" href=/v1.21/zh/docs/examples/>示例</a><ul role=group aria-expanded=true><li role=none><a role=treeitem title="部署一个用于演示多种 Istio 特性的应用,由四个单独的微服务构成。" href=/v1.21/zh/docs/examples/bookinfo/>Bookinfo 应用</a></li><li role=none><a role=treeitem title="使用在网格内的虚拟机上运行的 MySQL 服务运行 Bookinfo 应用程序。" href=/v1.21/zh/docs/examples/virtual-machines/>在虚拟机上部署 Bookinfo 应用程序</a></li><li role=treeitem aria-label="使用 Kubernetes 和 Istio 学习微服务"><button aria-hidden=true tabindex=-1></button><a title="该模块化教程为新用户提供了一步步将 Istio 应用于常见微服务场景的动手经验。" href=/v1.21/zh/docs/examples/microservices-istio/>使用 Kubernetes 和 Istio 学习微服务</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title href=/v1.21/zh/docs/examples/microservices-istio/prereq/>前提条件</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/examples/microservices-istio/setup-kubernetes-cluster/>设置 Kubernetes 集群</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/examples/microservices-istio/setup-local-computer/>设置本地计算机</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/examples/microservices-istio/single/>本地运行微服务</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/examples/microservices-istio/package-service/>在 Docker 中运行 ratings 服务</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/examples/microservices-istio/bookinfo-kubernetes/>使用 Kubernetes 运行 Bookinfo</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/examples/microservices-istio/production-testing/>生产测试</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/examples/microservices-istio/add-new-microservice-version/>添加一个新版本的 reviews</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/examples/microservices-istio/add-istio/>在 productpage 启用 Istio</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/examples/microservices-istio/enable-istio-all-microservices/>在所有微服务中启用 Istio</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/examples/microservices-istio/istio-ingress-gateway/>配置 Istio Ingress Gateway</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/examples/microservices-istio/logs-istio/>监控 Istio</a></li></ul></li></ul></li><li role=treeitem aria-label=运维><a class=main title="关于部署和管理 Istio 网格的概念、工具和技术。" href=/v1.21/zh/docs/ops/>运维</a><ul role=group aria-expanded=true><li role=treeitem aria-label=部署><button aria-hidden=true tabindex=-1></button><a title="设置 Istio 部署的要求、概念和注意事项。" href=/v1.21/zh/docs/ops/deployment/>部署</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="描述 Istio 的整体架构与设计目标。" href=/v1.21/zh/docs/ops/deployment/architecture/>架构</a></li><li role=none><a role=treeitem title="描述 Istio 部署中的选择和建议。" href=/v1.21/zh/docs/ops/deployment/deployment-models/>部署模型</a></li><li role=none><a role=treeitem title="阐述 Istio 针对虚拟机的高级架构。" href=/v1.21/zh/docs/ops/deployment/vm-architecture/>虚拟机架构</a></li><li role=none><a role=treeitem title="介绍 Istio 的性能和可扩展性。" href=/v1.21/zh/docs/ops/deployment/performance-and-scalability/>性能和可扩展性</a></li><li role=none><a role=treeitem title="部署在支持 Istio 的集群中的应用程序的要求。" href=/v1.21/zh/docs/ops/deployment/requirements/>应用程序要求</a></li></ul></li><li role=treeitem aria-label=配置><button aria-hidden=true tabindex=-1></button><a title="配置运行中的 Istio 网格的高级概念和功能。" href=/v1.21/zh/docs/ops/configuration/>配置</a><ul role=group aria-expanded=false><li role=treeitem aria-label=网格配置><button aria-hidden=true tabindex=-1></button><a title=帮助您管理全局网格配置。 href=/v1.21/zh/docs/ops/configuration/mesh/>网格配置</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="简要描述 Istio 对 Kubernetes webhook 的使用以及可能出现的相关问题。" href=/v1.21/zh/docs/ops/configuration/mesh/webhook/>动态准入 Webhook 概述</a></li><li role=none><a role=treeitem title=如何等待资源达到给定的就绪状态。 href=/v1.21/zh/docs/ops/configuration/mesh/config-resource-ready/>等待应用的配置资源状态就绪</a></li><li role=none><a role=treeitem title="为您展示如何对 Istio 服务做健康检查。" href=/v1.21/zh/docs/ops/configuration/mesh/app-health-check/>Istio 服务的健康检查</a></li></ul></li><li role=treeitem aria-label=流量管理><button aria-hidden=true tabindex=-1></button><a title=帮助您管理正在运行的网格的网络方面。 href=/v1.21/zh/docs/ops/configuration/traffic-management/>流量管理</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title=关于如何声明协议。 href=/v1.21/zh/docs/ops/configuration/traffic-management/protocol-selection/>协议选择</a></li><li role=none><a role=treeitem title="如何使用 TLS 配置设置安全的网络流量。" href=/v1.21/zh/docs/ops/configuration/traffic-management/tls-configuration/>TLS 配置</a></li><li role=none><a role=treeitem title="Istio 如何通过网格来路由流量。" href=/v1.21/zh/docs/ops/configuration/traffic-management/traffic-routing/>Traffic Routing</a></li><li role=none><a role=treeitem title=如何配置您网格内的证书。 href=/v1.21/zh/docs/ops/configuration/traffic-management/manage-mesh-certificates/>管理网格内证书</a></li><li role=none><a role=treeitem title="理解 Istio 如何与 DNS 交互。" href=/v1.21/zh/docs/ops/configuration/traffic-management/dns/>DNS</a></li><li role=none><a role=treeitem title="如何配置 DNS 代理。" href=/v1.21/zh/docs/ops/configuration/traffic-management/dns-proxy/>DNS 代理</a></li><li role=none><a role=treeitem title="如何配置 Gateway 网络拓扑。 (Alpha)" href=/v1.21/zh/docs/ops/configuration/traffic-management/network-topologies/>配置 Gateway 网络拓扑 *</a></li><li role=none><a role=treeitem title=配置如何在网格中的集群之间分发流量。 href=/v1.21/zh/docs/ops/configuration/traffic-management/multicluster/>多集群流量管理</a></li></ul></li><li role=treeitem aria-label=安全><button aria-hidden=true tabindex=-1></button><a title=帮助您管理正在运行的网格的安全性方面。 href=/v1.21/zh/docs/ops/configuration/security/>安全</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="展示使用 Istio 安全策略的通用示例。" href=/v1.21/zh/docs/ops/configuration/security/security-policy-examples/>安全策略示例</a></li><li role=none><a role=treeitem title="使用加固的容器镜像来减小 Istio 的攻击面。" href=/v1.21/zh/docs/ops/configuration/security/harden-docker-images/>加固 Docker 容器镜像</a></li></ul></li><li role=treeitem aria-label=可观测性><button aria-hidden=true tabindex=-1></button><a title=帮助您管理正在运行的网格中的遥测收集和可视化。 href=/v1.21/zh/docs/ops/configuration/telemetry/>可观测性</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="精细化控制 Envoy 的统计信息。" href=/v1.21/zh/docs/ops/configuration/telemetry/envoy-stats/>Envoy 的统计信息</a></li><li role=none><a role=treeitem title="配置 Prometheus 监控 Istio 多集群。" href=/v1.21/zh/docs/ops/configuration/telemetry/monitoring-multicluster-prometheus/>使用 Prometheus 监控 Istio 多集群</a></li></ul></li><li role=treeitem aria-label=可扩展性><button aria-hidden=true tabindex=-1></button><a title=帮助您管理服务网格的扩展。 href=/v1.21/zh/docs/ops/configuration/extensibility/>可扩展性</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="描述 Istio 如何决定是拉取 Wasm 模块还是使用缓存的版本。 (Alpha)" href=/v1.21/zh/docs/ops/configuration/extensibility/wasm-pull-policy/>WebAssembly 模块的拉取策略 *</a></li></ul></li></ul></li><li role=treeitem aria-label=最佳实践><button aria-hidden=true tabindex=-1></button><a title="设置和管理 Istio 服务网格的最佳实践。" href=/v1.21/zh/docs/ops/best-practices/>最佳实践</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="设置 Istio 服务网格时的最佳实践。" href=/v1.21/zh/docs/ops/best-practices/deployment/>Deployment 最佳实践</a></li><li role=none><a role=treeitem title=避免网络或流量管理问题的配置最佳实践。 href=/v1.21/zh/docs/ops/best-practices/traffic-management/>流量管理最佳实践</a></li><li role=none><a role=treeitem title="使用 Istio 保护应用的最佳实践。" href=/v1.21/zh/docs/ops/best-practices/security/>安全最佳实践</a></li><li role=none><a role=treeitem title="描述如何使用镜像签名来验证 Istio 镜像的出处。" href=/v1.21/zh/docs/ops/best-practices/image-signing-validation/>镜像签名和验证</a></li><li role=none><a role=treeitem title="使用 Istio 观测应用时的最佳实践。" href=/v1.21/zh/docs/ops/best-practices/observability/>可观测性最佳实践</a></li></ul></li><li role=treeitem aria-label=常见问题><button class=show aria-hidden=true tabindex=-1></button><a title="描述如何辨认和解决 Istio 中的常见问题。" href=/v1.21/zh/docs/ops/common-problems/>常见问题</a><ul role=group aria-expanded=true class=leaf-section><li role=none><a role=treeitem title="定位常见的 Istio 流量管理和网络问题的技术。" href=/v1.21/zh/docs/ops/common-problems/network-issues/>流量管理问题</a></li><li role=none><a role=treeitem title="定位常见 Istio 认证、授权、安全相关问题的技巧。" href=/v1.21/zh/docs/ops/common-problems/security-issues/>安全问题</a></li><li role=none><a role=treeitem title="处理 Telemetry 收集问题。" href=/v1.21/zh/docs/ops/common-problems/observability-issues/>可观测性问题</a></li><li role=none><a role=treeitem title="解决 Istio 使用 Kubernetes Webhooks 进行 Sidecar 自动注入的常见问题。" href=/v1.21/zh/docs/ops/common-problems/injection/>Sidecar 自动注入问题</a></li><li role=none><a role=treeitem title=如何解决配置验证的问题。 href=/v1.21/zh/docs/ops/common-problems/validation/>配置验证的问题</a></li><li role=none><a role=treeitem title="解决 Istio 升级遇到的常见问题。" href=/v1.21/zh/docs/ops/common-problems/upgrade-issues/>升级问题</a></li></ul></li><li role=treeitem aria-label=诊断工具><button aria-hidden=true tabindex=-1></button><a title="帮助解决 Istio 网格问题的工具和技术。" href=/v1.21/zh/docs/ops/diagnostic-tools/>诊断工具</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="Istio 自带的一个可以为服务网格部署提供调试和诊断的补充工具。" href=/v1.21/zh/docs/ops/diagnostic-tools/istioctl/>使用 Istioctl 命令行工具</a></li><li role=none><a role=treeitem title="描述诊断与流量管理相关的 Envoy 配置问题的工具和技术。" href=/v1.21/zh/docs/ops/diagnostic-tools/proxy-cmd/>调试 Envoy 和 Istiod</a></li><li role=none><a role=treeitem title="展示如何使用 istioctl describe 来验证网格中的 Pod 的配置。" href=/v1.21/zh/docs/ops/diagnostic-tools/istioctl-describe/>通过 istioctl describe 检查您的网格</a></li><li role=none><a role=treeitem title="演示如何使用 istioctl analyze 来识别配置中的潜在问题。" href=/v1.21/zh/docs/ops/diagnostic-tools/istioctl-analyze/>使用 Istioctl Analyze 诊断配置</a></li><li role=none><a role=treeitem title="了解如何使用 istioctl check-inject 来确认是否为您的 Deployment 正确启用了 Istio Sidecar 注入。" href=/v1.21/zh/docs/ops/diagnostic-tools/check-inject/>使用 istioctl check-inject 验证 Istio Sidecar 注入</a></li><li role=none><a role=treeitem title="介绍如何使用 ControlZ 深入了解正在运行的 istiod 组件。" href=/v1.21/zh/docs/ops/diagnostic-tools/controlz/>组件自检</a></li><li role=none><a role=treeitem title=如何使用组件级别日志来深入了解正在运行的组件的行为。 href=/v1.21/zh/docs/ops/diagnostic-tools/component-logging/>组件日志记录</a></li><li role=none><a role=treeitem title=介绍关于虚拟机调试的技术和工具。 href=/v1.21/zh/docs/ops/diagnostic-tools/virtual-machines/>虚拟机调试</a></li><li role=none><a role=treeitem title="描述使用 Istio 和 CNI 插件诊断问题的工具和技术。" href=/v1.21/zh/docs/ops/diagnostic-tools/cni/>Istio CNI 插件故障排除</a></li><li role=none><a role=treeitem title=介绍用来诊断多集群和多网络下安装问题的工具和技术。 href=/v1.21/zh/docs/ops/diagnostic-tools/multicluster/>多集群下的故障排除</a></li></ul></li><li role=treeitem aria-label="Ambient 模式"><button aria-hidden=true tabindex=-1></button><a title="有关在 Ambient 模式下设置和操作 Istio 的信息。" href=/v1.21/zh/docs/ops/ambient/>Ambient 模式</a><ul role=group aria-expanded=false><li role=none><a role=treeitem title="如何在 Ambient 模式下部署和安装 Istio。" href=/v1.21/zh/docs/ops/ambient/getting-started/>Ambient 模式入门</a></li><li role=treeitem aria-label=安装指南><button aria-hidden=true tabindex=-1></button><a title="Istio Ambient Mesh 安装指南。" href=/v1.21/zh/docs/ops/ambient/install/>安装指南</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="在 Ambient 模式下安装 Istio 的平台特定先决条件。" href=/v1.21/zh/docs/ops/ambient/install/platform-prerequisites/>平台特定先决条件</a></li><li role=none><a role=treeitem title="使用 Helm 在 Ambient 模式下安装 Istio。" href=/v1.21/zh/docs/ops/ambient/install/helm-installation/>通过 Helm 安装</a></li></ul></li><li role=treeitem aria-label=升级指南><button aria-hidden=true tabindex=-1></button><a title="Istio Ambient Mesh 升级指南。" href=/v1.21/zh/docs/ops/ambient/upgrade/>升级指南</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="使用 Helm 对 Ambient 模式的安装进行升级。 (Experimental)" href=/v1.21/zh/docs/ops/ambient/upgrade/helm-upgrade/>使用 Helm 升级 *</a></li></ul></li><li role=treeitem aria-label="Ambient 模式用户指南"><button aria-hidden=true tabindex=-1></button><a title="如何在 Ambient 模式下配置网格。" href=/v1.21/zh/docs/ops/ambient/usage/>Ambient 模式用户指南</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="了解流量如何在 Pod 和 ztunnel 节点代理之间重定向。" href=/v1.21/zh/docs/ops/ambient/usage/traffic-redirection/>ztunnel 流量重定向</a></li><li role=none><a role=treeitem title="通过可选的 Waypoint 代理获得全套 Istio 功能。" href=/v1.21/zh/docs/ops/ambient/usage/waypoint/>带有 Waypoint 代理的 Layer 7 网络和服务</a></li><li role=none><a role=treeitem title="了解和管理 Istio 的“零信任隧道(zero-trust tunnel)”代理。" href=/v1.21/zh/docs/ops/ambient/usage/ztunnel/>使用 ztunnel 实现 Layer 4 网络和 mTLS</a></li></ul></li><li role=none><a role=treeitem title="深入探讨 Ambient 模式的架构。" href=/v1.21/zh/docs/ops/ambient/architecture/>Ambient 模式架构</a></li></ul></li><li role=treeitem aria-label=集成><button aria-hidden=true tabindex=-1></button><a title="能够与 Istio 集成以提供额外功能的其他软件。" href=/v1.21/zh/docs/ops/integrations/>集成</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="关于如何与 cert-manager 集成的相关说明。" href=/v1.21/zh/docs/ops/integrations/certmanager/>cert-manager</a></li><li role=none><a role=treeitem title="关于如何与 Grafana 集成构建 Istio 仪表盘的相关文档。" href=/v1.21/zh/docs/ops/integrations/grafana/>Grafana</a></li><li role=none><a role=treeitem title="如何与 Jaeger 集成。" href=/v1.21/zh/docs/ops/integrations/jaeger/>Jaeger</a></li><li role=none><a role=treeitem title="有关如何与 Kiali 集成的信息。" href=/v1.21/zh/docs/ops/integrations/kiali/>Kiali</a></li><li role=none><a role=treeitem title="如何集成 Prometheus。" href=/v1.21/zh/docs/ops/integrations/prometheus/>Prometheus</a></li><li role=none><a role=treeitem title="如何配置 Istio 以集成 SPIRE 通过 Envoy 的 SDS API 获取加密身份。" href=/v1.21/zh/docs/ops/integrations/spire/>SPIRE</a></li><li role=none><a role=treeitem title="如何与 Zipkin 进行集成。" href=/v1.21/zh/docs/ops/integrations/zipkin/>Zipkin</a></li><li role=none><a role=treeitem title="如何集成 Apache SkyWalking。" href=/v1.21/zh/docs/ops/integrations/skywalking/>Apache SkyWalking</a></li><li role=none><a role=treeitem title="Istio 如何集成第三方负载均衡器。" href=/v1.21/zh/docs/ops/integrations/loadbalancers/>第三方负载均衡器</a></li></ul></li></ul></li><li role=treeitem aria-label=发布><a class=main title="与 Istio 发布有关的信息。" href=/v1.21/zh/docs/releases/>发布</a><ul role=group aria-expanded=true><li role=none><a role=treeitem title=特性及其发布阶段的列表。 href=/v1.21/zh/docs/releases/feature-stages/>功能状态</a></li><li role=none><a role=treeitem title=如果发现错误该怎么办。 href=/v1.21/zh/docs/releases/bugs/>报告错误</a></li><li role=none><a role=treeitem title=我们如何处理安全漏洞。 href=/v1.21/zh/docs/releases/security-vulnerabilities/>安全漏洞</a></li><li role=none><a role=treeitem title="当前支持的 Istio 版本。" href=/v1.21/zh/docs/releases/supported-releases/>版本支持</a></li><li role=treeitem aria-label=贡献文档><button aria-hidden=true tabindex=-1></button><a title="详细介绍了如何创建和维护 Istio 文档。" href=/v1.21/zh/docs/releases/contribute/>贡献文档</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="向您展示如何使用 GitHub 参与贡献 Istio 文档。" href=/v1.21/zh/docs/releases/contribute/github/>使用 GitHub 参与社区活动</a></li><li role=none><a role=treeitem title="介绍如何为 Istio 贡献新文档。" href=/v1.21/zh/docs/releases/contribute/add-content/>添加新文档</a></li><li role=none><a role=treeitem title="详细说明如何将已停用的文档提交给 Istio。" href=/v1.21/zh/docs/releases/contribute/remove-content/>删除已停用的文档</a></li><li role=none><a role=treeitem title=介绍如何在本地进行本网站的构建,测试,运行和预览。 href=/v1.21/zh/docs/releases/contribute/build/>本地构建和运行本网站</a></li><li role=none><a role=treeitem title=介绍了文档中使用的文章头及其可用字段。 href=/v1.21/zh/docs/releases/contribute/front-matter/>文章头部</a></li><li role=none><a role=treeitem title="向您展示如何审阅和批准对 Istio 文档和网站的更改。" href=/v1.21/zh/docs/releases/contribute/review/>文档审阅流程</a></li><li role=none><a role=treeitem title=介绍如何在您的文档中添加代码。 href=/v1.21/zh/docs/releases/contribute/code-blocks/>添加代码块</a></li><li role=none><a role=treeitem title="介绍可用的 Shortcode 及其用法。" href=/v1.21/zh/docs/releases/contribute/shortcodes/>使用 Shortcode</a></li><li role=none><a role=treeitem title="介绍 Istio 文档的格式标准。" href=/v1.21/zh/docs/releases/contribute/formatting/>格式标准</a></li><li role=none><a role=treeitem title="介绍 Istio 文档所使用的风格规则。" href=/v1.21/zh/docs/releases/contribute/style-guide/>风格指南</a></li><li role=none><a role=treeitem title="解释 Istio 文档中使用的术语标准。" href=/v1.21/zh/docs/releases/contribute/terminology/>术语标准</a></li><li role=none><a role=treeitem title="为 Istio 文档创建图表提供素材和说明。" href=/v1.21/zh/docs/releases/contribute/diagrams/>创建图表指南</a></li></ul></li><li role=none><a role=treeitem title=该网站的最新更改列表。 href=/v1.21/zh/docs/releases/log/>网站内容更改</a></li></ul></li><li role=treeitem aria-label=参考><a class=main title="参考部分包含详细的权威参考资料,如命令行选项、配置选项和 API 调用参数。" href=/v1.21/zh/docs/reference/>参考</a><ul role=group aria-expanded=true><li role=treeitem aria-label=配置><button aria-hidden=true tabindex=-1></button><a title=关于配置选项的详细信息。 href=/v1.21/zh/docs/reference/config/>配置</a><ul role=group aria-expanded=false><li role=none><a role=treeitem title="Telemetry configuration for workloads." href=/v1.21/zh/docs/reference/config/telemetry/>Telemetry</a></li><li role=none><a role=treeitem title="Describes the structure of messages generated by Istio analyzers." href=/v1.21/zh/docs/reference/config/istio.analysis.v1alpha1/>Analysis Messages</a></li><li role=none><a role=treeitem title="Configuration affecting the service mesh as a whole." href=/v1.21/zh/docs/reference/config/istio.mesh.v1alpha1/>Global Mesh Options</a></li><li role=none><a role=treeitem title="Configuration affecting Istio control plane installation version and shape." href=/v1.21/zh/docs/reference/config/istio.operator.v1alpha1/>IstioOperator Options</a></li><li role=none><a role=treeitem title=描述“状态”字段在配置工作流程中的作用。 href=/v1.21/zh/docs/reference/config/config-status/>状态字段配置</a></li><li role=treeitem aria-label=代理扩展><button aria-hidden=true tabindex=-1></button><a title="描述如何配置 Istio 代理扩展。" href=/v1.21/zh/docs/reference/config/proxy_extensions/>代理扩展</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="Extend the functionality provided by the Istio proxy through WebAssembly filters." href=/v1.21/zh/docs/reference/config/proxy_extensions/wasm-plugin/>Wasm Plugin</a></li><li role=none><a role=treeitem title="Configuration for AccessLogPolicy Filter." href=/v1.21/zh/docs/reference/config/proxy_extensions/accesslogpolicy/>AccessLogPolicy Config</a></li><li role=none><a role=treeitem title="Configuration for Stackdriver filter." href=/v1.21/zh/docs/reference/config/proxy_extensions/stackdriver/>Stackdriver Config</a></li><li role=none><a role=treeitem title="Configuration for Stats Filter." href=/v1.21/zh/docs/reference/config/proxy_extensions/stats/>Stats Config</a></li><li role=none><a role=treeitem title="如何使用 Wasm 进行遥测。 (Experimental)" href=/v1.21/zh/docs/reference/config/proxy_extensions/wasm_telemetry/>基于 Wasm 的遥测 *</a></li></ul></li><li role=treeitem aria-label=流量管理><button aria-hidden=true tabindex=-1></button><a title="描述如何配置 HTTP/TCP 路由功能。" href=/v1.21/zh/docs/reference/config/networking/>流量管理</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="Configuration affecting load balancing, outlier detection, etc." href=/v1.21/zh/docs/reference/config/networking/destination-rule/>Destination Rule</a></li><li role=none><a role=treeitem title="Customizing Envoy configuration generated by Istio." href=/v1.21/zh/docs/reference/config/networking/envoy-filter/>Envoy Filter</a></li><li role=none><a role=treeitem title="Configuration affecting edge load balancer." href=/v1.21/zh/docs/reference/config/networking/gateway/>Gateway</a></li><li role=none><a role=treeitem title="Provides configuration for individual workloads." href=/v1.21/zh/docs/reference/config/networking/proxy-config/>ProxyConfig</a></li><li role=none><a role=treeitem title="Configuration affecting service registry." href=/v1.21/zh/docs/reference/config/networking/service-entry/>Service Entry</a></li><li role=none><a role=treeitem title="Configuration affecting network reachability of a sidecar." href=/v1.21/zh/docs/reference/config/networking/sidecar/>Sidecar</a></li><li role=none><a role=treeitem title="Configuration affecting label/content routing, sni routing, etc." href=/v1.21/zh/docs/reference/config/networking/virtual-service/>Virtual Service</a></li><li role=none><a role=treeitem title="Configuration affecting VMs onboarded into the mesh." href=/v1.21/zh/docs/reference/config/networking/workload-entry/>Workload Entry</a></li><li role=none><a role=treeitem title="Describes a collection of workload instances." href=/v1.21/zh/docs/reference/config/networking/workload-group/>Workload Group</a></li></ul></li><li role=treeitem aria-label=Security><button aria-hidden=true tabindex=-1></button><a title="如何配置 Istio 的安全功能。" href=/v1.21/zh/docs/reference/config/security/>Security</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="Configuration to validate JWT." href=/v1.21/zh/docs/reference/config/security/jwt/>JWTRule</a></li><li role=none><a role=treeitem title="Peer authentication configuration for workloads." href=/v1.21/zh/docs/reference/config/security/peer_authentication/>PeerAuthentication</a></li><li role=none><a role=treeitem title="Request authentication configuration for workloads." href=/v1.21/zh/docs/reference/config/security/request_authentication/>RequestAuthentication</a></li><li role=none><a role=treeitem title="Configuration for access control on workloads." href=/v1.21/zh/docs/reference/config/security/authorization-policy/>Authorization Policy</a></li><li role=none><a role=treeitem title=授权策略中支持的条件。 href=/v1.21/zh/docs/reference/config/security/conditions/>授权策略</a></li><li role=none><a role=treeitem title=描述了授权策略中支持的规范化。 href=/v1.21/zh/docs/reference/config/security/normalization/>授权策略规范化</a></li></ul></li><li role=none><a role=treeitem title="通过 Istio 遥测导出的 Istio 标准指标。" href=/v1.21/zh/docs/reference/config/metrics/>Istio 标准指标</a></li><li role=treeitem aria-label=常见类型><button aria-hidden=true tabindex=-1></button><a title="描述 Istio API 中的常见类型。" href=/v1.21/zh/docs/reference/config/type/>常见类型</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="Definition of a workload selector." href=/v1.21/zh/docs/reference/config/type/workload-selector/>Workload Selector</a></li></ul></li><li role=none><a role=treeitem title="Resource annotations used by Istio." href=/v1.21/zh/docs/reference/config/annotations/>Resource Annotations</a></li><li role=none><a role=treeitem title="Resource labels used by Istio." href=/v1.21/zh/docs/reference/config/labels/>Resource Labels</a></li><li role=treeitem aria-label=配置分析消息><button aria-hidden=true tabindex=-1></button><a title=记录配置分析期间产生的各个错误和警告消息。 href=/v1.21/zh/docs/reference/config/analysis/>配置分析消息</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0136/>AlphaAnnotation</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/message-format/>Analyzer Message Format</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0109/>ConflictingMeshGatewayVirtualServiceHosts</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0110/>ConflictingSidecarWorkloadSelectors</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0159/>ConflictingTelemetryWorkloadSelectors</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0116/>DeploymentAssociatedToMultipleServices</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0137/>DeploymentConflictingPorts</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0002/>Deprecated</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0135/>DeprecatedAnnotation</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0153/>EnvoyFilterUsesAddOperationIncorrectly</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0151/>EnvoyFilterUsesRelativeOperation</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0155/>EnvoyFilterUsesRelativeOperationWithProxyVersion</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0154/>EnvoyFilterUsesRemoveOperationIncorrectly</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0152/>EnvoyFilterUsesReplaceOperationIncorrectly</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0164/>ExternalControlPlaneAddressIsNotAHostname</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0150/>ExternalNameServiceTypeInvalidPortName</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0162/>GatewayPortNotDefinedOnService</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0167/>IneffectivePolicy</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0166/>IneffectiveSelector</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0001/>InternalError</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0125/>InvalidAnnotation</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0144/>InvalidApplicationUID</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0163/>InvalidExternalControlPlaneConfig</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0161/>InvalidGatewayCredential</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0122/>InvalidRegexp</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0157/>InvalidTelemetryProvider</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0143/>LocalhostListener</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0107/>MisplacedAnnotation</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0111/>MultipleSidecarsWithoutWorkloadSelectors</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0160/>MultipleTelemetriesWithoutWorkloadSelectors</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0123/>NamespaceMultipleInjectionLabels</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0102/>NamespaceNotInjected</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0127/>NoMatchingWorkloadsFound</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0128/>NoServerCertificateVerificationDestinationLevel</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0129/>NoServerCertificateVerificationPortLevel</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0103/>PodMissingProxy</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0158/>PodsIstioProxyImageMismatchInNamespace</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0118/>PortNameIsNotUnderNamingConvention</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0101/>ReferencedResourceNotFound</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0106/>SchemaValidationError</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0134/>ServiceEntryAddressesRequired</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0108/>UnknownAnnotation</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0112/>VirtualServiceDestinationPortSelectorRequired</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0132/>VirtualServiceHostNotFoundInGateway</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0131/>VirtualServiceIneffectiveMatch</a></li><li role=none><a role=treeitem title href=/v1.21/zh/docs/reference/config/analysis/ist0130/>VirtualServiceUnreachableRule</a></li></ul></li></ul></li><li role=treeitem aria-label=命令><button aria-hidden=true tabindex=-1></button><a title="描述 Istio 命令和工具的用法及选项。" href=/v1.21/zh/docs/reference/commands/>命令</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="Install and configure Istio CNI plugin on a node, detect and repair pod which is broken by race condition." href=/v1.21/zh/docs/reference/commands/install-cni/>install-cni</a></li><li role=none><a role=treeitem title="Istio control interface." href=/v1.21/zh/docs/reference/commands/istioctl/>istioctl</a></li><li role=none><a role=treeitem title="The Istio operator." href=/v1.21/zh/docs/reference/commands/operator/>operator</a></li><li role=none><a role=treeitem title="Istio Pilot agent." href=/v1.21/zh/docs/reference/commands/pilot-agent/>pilot-agent</a></li><li role=none><a role=treeitem title="Istio Pilot." href=/v1.21/zh/docs/reference/commands/pilot-discovery/>pilot-discovery</a></li></ul></li><li role=none><a role=treeitem title="Istio 常用术语的词汇表。" href=/v1.21/zh/docs/reference/glossary/>术语表</a></li></ul></li></ul></div></div></div></nav></div><div class=article-container><button id=sidebar-toggle class=main-navigation-toggle aria-label="Open sidebar">
|
||
<svg class="icon hamburger-sidebar"><use xlink:href="/v1.21/img/icons.svg#hamburger-sidebar"/></svg>
|
||
目录</button><article aria-labelledby=title><nav aria-label=Breadcrumb><ol><li><a href=/v1.21/zh/docs/ title="了解如何部署、使用和运维 Istio。">文档</a><svg class="icon breadcrumb-arrow"><use xlink:href="/v1.21/img/icons.svg#breadcrumb-arrow"/></svg></li><li><a href=/v1.21/zh/docs/ops/ title="关于部署和管理 Istio 网格的概念、工具和技术。">运维</a><svg class="icon breadcrumb-arrow"><use xlink:href="/v1.21/img/icons.svg#breadcrumb-arrow"/></svg></li><li><a href=/v1.21/zh/docs/ops/common-problems/ title="描述如何辨认和解决 Istio 中的常见问题。">常见问题</a><svg class="icon breadcrumb-arrow"><use xlink:href="/v1.21/img/icons.svg#breadcrumb-arrow"/></svg></li><li>流量管理问题</li></ol></nav><div class=title-area><div style=width:100%><h1 id=title>流量管理问题</h1><p class=byline><span class=reading-time title="1506 字"><svg class="icon clock"><use xlink:href="/v1.21/img/icons.svg#clock"/></svg><span> </span>阅读大约需要 8 分钟</span>
|
||
<span> </span>
|
||
<span><a href=https://github.com/istio/istio.io/tree/master/README.md#testing-document-content title=这个页面没有自动测试可用,点击详情或帮助创建一个。><svg class="icon cancel-grey"><use xlink:href="/v1.21/img/icons.svg#cancel-grey"/></svg><span> </span>
|
||
页面测试</a></span></p></div></div><nav class="toc-inlined toc-forced" aria-label="Table of Contents"><div><hr><ol><li role=none aria-label="请求被 Envoy 拒绝"><a href=#requests-are-rejected-by-envoy>请求被 Envoy 拒绝</a><li role=none aria-label=路由规则似乎没有对流量生效><a href=#route-rules-dont-seem-to-affect-traffic-flow>路由规则似乎没有对流量生效</a><li role=none aria-label="设置 destination rule 之后出现 503 异常"><a href=#service-unavailable-errors-after-setting-destination-rule>设置 destination rule 之后出现 503 异常</a><li role=none aria-label="路由规则没有对 ingress gateway 请求生效"><a href=#route-rules-have-no-effect-on-ingress-gateway-requests>路由规则没有对 ingress gateway 请求生效</a><li role=none aria-label="Envoy 在负载压力下崩溃"><a href=#envoy-is-crashing-under-load>Envoy 在负载压力下崩溃</a><li role=none aria-label="Envoy 不能连接到 HTTP/1.0 服务"><a href=#envoy-wont-connect-to-my-http10-service>Envoy 不能连接到 HTTP/1.0 服务</a><li role=none aria-label="访问 Headless Service 时 503 错误"><a href=#503-error-while-accessing-headless-services>访问 Headless Service 时 503 错误</a><li role=none aria-label="TLS 配置错误"><a href=#TLS-configuration-mistakes>TLS 配置错误</a><ol><li role=none aria-label="将 HTTPS 流量发送到 HTTP 端口"><a href=#sending-HTTPS-to-an-HTTP-port>将 HTTPS 流量发送到 HTTP 端口</a><li role=none aria-label="网关到 VirtualService 的 TLS 不匹配"><a href=#gateway-mismatch>网关到 <code>VirtualService</code> 的 TLS 不匹配</a><ol><li role=none aria-label="网关终止 TLS"><a href=#gateway-with-TLS-termination>网关终止 TLS</a><li role=none aria-label="网关启用 TLS 透传"><a href=#gateway-with-TLS-passthrough>网关启用 TLS 透传</a></ol></li><li role=none aria-label="双 TLS(TLS 源发起 TLS 连接)"><a href=#double-tls>双 TLS(TLS 源发起 TLS 连接)</a><li role=none aria-label="当为多个 Gateway 配置了相同的 TLS 证书导致 404 异常"><a href=#not-found-errors-occur-when-multiple-gateways-configured-with-same-TLS-certificate>当为多个 Gateway 配置了相同的 TLS 证书导致 404 异常</a><li role=none aria-label="不发送 SNI 时配置 SNI 路由"><a href=#configuring-SNI-routing-when-not-sending-SNI>不发送 SNI 时配置 SNI 路由</a></ol></li><li role=none aria-label="未改动 Envoy 过滤器配置但突然停止工作"><a href=#unchanged-envoy-filter-config-suddently-stops-working>未改动 Envoy 过滤器配置但突然停止工作</a><li role=none aria-label=配有故障注入和重试/超时策略的虚拟服务未按预期工作><a href=#virtual-service-with-fault-injection-and-retrytimeout-policies-not-working-as-expected>配有故障注入和重试/超时策略的虚拟服务未按预期工作</a></ol><hr></div></nav><h2 id=requests-are-rejected-by-envoy>请求被 Envoy 拒绝</h2><p>请求被拒绝有许多原因。弄明白为什么请求被拒绝的最好方式是检查 Envoy 的访问日志。
|
||
默认情况下,访问日志被输出到容器的标准输出中。运行下列命令可以查看日志:</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ kubectl logs PODNAME -c istio-proxy -n NAMESPACE
|
||
</code></pre><p>在默认的访问日志输出格式中,Envoy 响应标志位于响应状态码之后,
|
||
如果您使用自定义日志输出格式,请确保包含 <code>%RESPONSE_FLAGS%</code>。</p><p>参考 <a href=https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#config-access-log-format-response-flags>Envoy 响应标志</a>查看更多有关响应标志的细节。</p><p>通用响应标志如下:</p><ul><li><code>NR</code>:没有配置路由,请检查您的 <code>DestinationRule</code> 或者 <code>VirtualService</code> 配置。</li><li><code>UO</code>:上游溢出导致断路,请在 <code>DestinationRule</code> 检查您的熔断器配置。</li><li><code>UF</code>:未能连接到上游,如果您正在使用 Istio 认证,
|
||
请检查<a href=/v1.21/zh/docs/ops/common-problems/network-issues/#service-unavailable-errors-after-setting-destination-rule>双向 TLS 配置冲突</a>。</li></ul><h2 id=route-rules-dont-seem-to-affect-traffic-flow>路由规则似乎没有对流量生效</h2><p>在当前版本的 Envoy Sidecar 实现中,加权版本分发被观测到至少需要 100 个请求。</p><p>如果路由规则在 <a href=/v1.21/zh/docs/examples/bookinfo/>Bookinfo</a> 这个例子中完美地运行,
|
||
但类似的路由规则在您自己的应用中却没有生效,可能因为您的 Kubernetes Service
|
||
需要被稍微地修改。为了利用 Istio 的七层路由特性 Kubernetes Service 必须严格遵守某些限制。
|
||
参考 <a href=/v1.21/zh/docs/ops/deployment/requirements/>Pod 和 Service 的要求</a>查看详细信息。</p><p>另一个潜在的问题是路由规则可能只是生效比较慢。在 Kubernetes 上实现的 Istio
|
||
利用一个最终一致性算法来保证所有的 Envoy Sidecar 有正确的配置包括所有的路由规则。
|
||
一个配置变更需要花一些时间来传播到所有的 Sidecar。
|
||
在大型的集群部署中传播将会耗时更长并且可能有几秒钟的延迟时间。</p><h2 id=service-unavailable-errors-after-setting-destination-rule>设置 destination rule 之后出现 503 异常</h2><div><aside class="callout tip"><div class=type><svg class="large-icon"><use xlink:href="/v1.21/img/icons.svg#callout-tip"/></svg></div><div class=content>只有在安装期间禁用了 <a href=/v1.21/zh/docs/tasks/security/authentication/authn-policy/#auto-mutual-TLS>自动双向 TLS</a>
|
||
时,才会看到此错误。</div></aside></div><p>如果在您应用了一个 <code>DestinationRule</code> 之后请求一个服务立即发生了 HTTP 503
|
||
异常,并且这个异常状态一直持续到您移除或回滚了这个 <code>DestinationRule</code>,
|
||
那么这个 <code>DestinationRule</code> 可能导致服务引起了一个 TLS 冲突。</p><p>举个例子,如果在您的集群里配置了全局的 mutual TLS,这个 <code>DestinationRule</code>
|
||
肯定包含下列的 <code>trafficPolicy</code>:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>trafficPolicy:
|
||
tls:
|
||
mode: ISTIO_MUTUAL
|
||
</code></pre><p>否则,这个 TLS mode 默认被设置成 <code>DISABLE</code> 会使客户端 Sidecar
|
||
代理发起明文 HTTP 请求而不是 TLS 加密了的请求。因此,请求和服务端代理冲突,
|
||
因为服务端代理期望的是加密了的请求。</p><p>任何时候您应用一个 <code>DestinationRule</code>,请确保 <code>trafficPolicy</code> TLS
|
||
mode 和全局的配置一致。</p><h2 id=route-rules-have-no-effect-on-ingress-gateway-requests>路由规则没有对 ingress gateway 请求生效</h2><p>假设您正在使用一个 Ingress <code>Gateway</code> 和相应的 <code>VirtualService</code>
|
||
来访问一个内部的服务。举个例子,您的 <code>VirtualService</code> 配置可能和如下配置类似:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: networking.istio.io/v1beta1
|
||
kind: VirtualService
|
||
metadata:
|
||
name: myapp
|
||
spec:
|
||
hosts:
|
||
- "myapp.com" # 或者您正在通过 IP 而不是 DNS 测试 ingress-gateway(例如 http://1.2.3.4/hello),也可以配置成 "*"
|
||
gateways:
|
||
- myapp-gateway
|
||
http:
|
||
- match:
|
||
- uri:
|
||
prefix: /hello
|
||
route:
|
||
- destination:
|
||
host: helloworld.default.svc.cluster.local
|
||
- match:
|
||
...
|
||
</code></pre><p>您还有一个 <code>VirtualService</code> 将访问 helloworld 服务的流量路由至该服务的一个特定子集:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: networking.istio.io/v1beta1
|
||
kind: VirtualService
|
||
metadata:
|
||
name: helloworld
|
||
spec:
|
||
hosts:
|
||
- helloworld.default.svc.cluster.local
|
||
http:
|
||
- route:
|
||
- destination:
|
||
host: helloworld.default.svc.cluster.local
|
||
subset: v1
|
||
</code></pre><p>此时您会发现,通过 ingress 网关访问 helloworld 服务的请求没有直接路由到服务实例子集
|
||
v1,而是仍然使用默认的轮询调度路由。</p><p>Ingress 请求经由网关主机(如:<code>myapp.com</code>)进行路由,网关主机将激活
|
||
myapp <code>VirtualService</code> 中的规则,将请求路由至 helloworld 服务的任何一个实例端点。
|
||
只有通过主机 <code>helloworld.default.svc.cluster.local</code> 访问的内部请求才会使用
|
||
helloworld <code>VirtualService</code>,其中的规则直接将流量路由至服务实例子集 v1。</p><p>为了控制从 gateway 过来的流量,您需要在 myapp <code>VirtualService</code>
|
||
的配置中包含 subset 规则配置:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: networking.istio.io/v1beta1
|
||
kind: VirtualService
|
||
metadata:
|
||
name: myapp
|
||
spec:
|
||
hosts:
|
||
- "myapp.com" # 或者您正在通过 IP 而不是 DNS 测试 ingress-gateway(例如 http://1.2.3.4/hello),也可以配置成 "*"
|
||
gateways:
|
||
- myapp-gateway
|
||
http:
|
||
- match:
|
||
- uri:
|
||
prefix: /hello
|
||
route:
|
||
- destination:
|
||
host: helloworld.default.svc.cluster.local
|
||
subset: v1
|
||
- match:
|
||
...
|
||
</code></pre><p>或者,您可以尽可能地将两个 <code>VirtualService</code> 配置合并成一个:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: networking.istio.io/v1beta1
|
||
kind: VirtualService
|
||
metadata:
|
||
name: myapp
|
||
spec:
|
||
hosts:
|
||
- myapp.com # 这里不能使用“*”,因为这是与网格服务关联在一起的。
|
||
- helloworld.default.svc.cluster.local
|
||
gateways:
|
||
- mesh # 内部和外部都可以应用
|
||
- myapp-gateway
|
||
http:
|
||
- match:
|
||
- uri:
|
||
prefix: /hello
|
||
gateways:
|
||
- myapp-gateway # 只对 ingress gateway 严格应用这条规则
|
||
route:
|
||
- destination:
|
||
host: helloworld.default.svc.cluster.local
|
||
subset: v1
|
||
- match:
|
||
- gateways:
|
||
- mesh # 应用到网格中的所有服务
|
||
route:
|
||
- destination:
|
||
host: helloworld.default.svc.cluster.local
|
||
subset: v1
|
||
</code></pre><h2 id=envoy-is-crashing-under-load>Envoy 在负载压力下崩溃</h2><p>检查您的 <code>ulimit -a</code>。许多系统有一个默认只能有打开 1024 个文件描述符的限制,
|
||
它将导致 Envoy 断言失败并崩溃:</p><pre><code class=language-plain data-expandlinks=true data-repo=istio>[2017-05-17 03:00:52.735][14236][critical][assert] assert failure: fd_ != -1: external/envoy/source/common/network/connection_impl.cc:58
|
||
</code></pre><p>请确保增大您的 ulimit。例如: <code>ulimit -n 16384</code></p><h2 id=envoy-wont-connect-to-my-http10-service>Envoy 不能连接到 HTTP/1.0 服务</h2><p>Envoy 要求上游服务使用 <code>HTTP/1.1</code> 或者 <code>HTTP/2</code> 协议流量。举个例子,当在
|
||
Envoy 之后使用 <a href=https://www.nginx.com/>NGINX</a> 来代理您的流量,您需要在您的 NGINX
|
||
配置里将 <a href=https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_http_version>proxy_http_version</a>
|
||
设置为 “1.1”,因为 NGINX 默认的设置是 1.0。</p><p>示例配置为:</p><pre><code class=language-plain data-expandlinks=true data-repo=istio>upstream http_backend {
|
||
server 127.0.0.1:8080;
|
||
|
||
keepalive 16;
|
||
}
|
||
|
||
server {
|
||
...
|
||
|
||
location /http/ {
|
||
proxy_pass http://http_backend;
|
||
proxy_http_version 1.1;
|
||
proxy_set_header Connection "";
|
||
...
|
||
}
|
||
}
|
||
</code></pre><h2 id=503-error-while-accessing-headless-services>访问 Headless Service 时 503 错误</h2><p>假设用以下配置安装 Istio:</p><ul><li>在网格内 <code>mTLS mode</code> 设置为 <code>STRICT</code></li><li><code>meshConfig.outboundTrafficPolicy.mode</code> 设置为 <code>ALLOW_ANY</code></li></ul><p>考虑将 <code>nginx</code> 部署为 default 命名空间中的一个 <code>StatefulSet</code>,
|
||
并且参照以下示例来定义相应的 <code>Headless Service</code>:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: v1
|
||
kind: Service
|
||
metadata:
|
||
name: nginx
|
||
labels:
|
||
app: nginx
|
||
spec:
|
||
ports:
|
||
- port: 80
|
||
name: http-web # 显式定义一个 http 端口
|
||
clusterIP: None # 创建一个 Headless Service
|
||
selector:
|
||
app: nginx
|
||
---
|
||
apiVersion: apps/v1
|
||
kind: StatefulSet
|
||
metadata:
|
||
name: web
|
||
spec:
|
||
selector:
|
||
matchLabels:
|
||
app: nginx
|
||
serviceName: "nginx"
|
||
replicas: 3
|
||
template:
|
||
metadata:
|
||
labels:
|
||
app: nginx
|
||
spec:
|
||
containers:
|
||
- name: nginx
|
||
image: registry.k8s.io/nginx-slim:0.8
|
||
ports:
|
||
- containerPort: 80
|
||
name: web
|
||
</code></pre><p>Service 定义中的端口名称 <code>http-web</code> 为该端口显式指定 http 协议。</p><p>假设在 default 命名空间中也有一个 <a href=https://github.com/istio/istio/tree/release-1.21/samples/sleep>sleep</a>
|
||
Pod <code>Deployment</code>。当使用 Pod IP(这是访问 Headless Service 的一种常见方式)从这个
|
||
<code>sleep</code> Pod 访问 <code>nginx</code> 时,请求经由 <code>PassthroughCluster</code> 到达服务器侧,
|
||
但服务器侧的 Sidecar 代理找不到前往 <code>nginx</code> 的路由入口,且出现错误 <code>HTTP 503 UC</code>。</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ export SOURCE_POD=$(kubectl get pod -l app=sleep -o jsonpath='{.items..metadata.name}')
|
||
$ kubectl exec -it $SOURCE_POD -c sleep -- curl 10.1.1.171 -s -o /dev/null -w "%{http_code}"
|
||
503
|
||
</code></pre><p><code>10.1.1.171</code> 是其中一个 <code>nginx</code> 副本的 Pod IP,通过 <code>containerPort</code> 80 访问此服务。</p><p>以下是避免这个 503 错误的几种方式:</p><ol><li><p>指定正确的 Host 头:</p><p>上述 curl 请求中的 Host 头默认将是 Pod IP。
|
||
在指向 <code>nginx</code> 的请求中将 Host 头指定为 <code>nginx.default</code>,成功返回 <code>HTTP 200 OK</code>。</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ export SOURCE_POD=$(kubectl get pod -l app=sleep -o jsonpath='{.items..metadata.name}')
|
||
$ kubectl exec -it $SOURCE_POD -c sleep -- curl -H "Host: nginx.default" 10.1.1.171 -s -o /dev/null -w "%{http_code}"
|
||
200
|
||
</code></pre></li><li><p>端口名称设置为 <code>tcp</code>、<code>tcp-web</code> 或 <code>tcp-<custom_name></code>:</p><p>此例中协议被显式指定为 <code>tcp</code>。这种情况下,客户端和服务器都对 Sidecar 代理仅使用 <code>TCP Proxy</code> 网络过滤器。
|
||
并未使用 HTTP 连接管理器,因此请求中不应包含任意类型的头。</p><p>无论是否显式设置 Host 头,到 <code>nginx</code> 的请求都成功返回 <code>HTTP 200 OK</code>。</p><p>这可用于客户端无法在请求中包含头信息的某些场景。</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ export SOURCE_POD=$(kubectl get pod -l app=sleep -o jsonpath='{.items..metadata.name}')
|
||
$ kubectl exec -it $SOURCE_POD -c sleep -- curl 10.1.1.171 -s -o /dev/null -w "%{http_code}"
|
||
200
|
||
</code></pre><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ kubectl exec -it $SOURCE_POD -c sleep -- curl -H "Host: nginx.default" 10.1.1.171 -s -o /dev/null -w "%{http_code}"
|
||
200
|
||
</code></pre></li><li><p>使用域名代替 Pod IP:</p><p>Headless Service 的特定实例也可以仅使用域名进行访问。</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ export SOURCE_POD=$(kubectl get pod -l app=sleep -o jsonpath='{.items..metadata.name}')
|
||
$ kubectl exec -it $SOURCE_POD -c sleep -- curl web-0.nginx.default -s -o /dev/null -w "%{http_code}"
|
||
200
|
||
</code></pre><p>此处 <code>web-0</code> 是 3 个 <code>nginx</code> 副本中其中一个的 Pod 名称。</p></li></ol><p>有关针对不同协议的 Headless Service 和流量路由行为的更多信息,
|
||
请参阅这个<a href=/v1.21/zh/docs/ops/configuration/traffic-management/traffic-routing/>流量路由</a>页面。</p><h2 id=TLS-configuration-mistakes>TLS 配置错误</h2><p>许多流量管理问题是由于错误的 <a href=/v1.21/zh/docs/ops/configuration/traffic-management/tls-configuration/>TLS 配置</a>导致的。
|
||
以下各节描述了一些最常见的错误配置。</p><h3 id=sending-HTTPS-to-an-HTTP-port>将 HTTPS 流量发送到 HTTP 端口</h3><p>如果您的应用程序向声明为 HTTP 的服务发送 HTTPS 请求,Envoy Sidecar
|
||
将在转发请求时尝试将请求解析为 HTTP,这会使 HTTP 被意外加密,从而导致失败。</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: networking.istio.io/v1beta1
|
||
kind: ServiceEntry
|
||
metadata:
|
||
name: httpbin
|
||
spec:
|
||
hosts:
|
||
- httpbin.org
|
||
ports:
|
||
- number: 443
|
||
name: http
|
||
protocol: HTTP
|
||
resolution: DNS
|
||
</code></pre><p>虽然如果您有意在端口 443 上发送明文(如,<code>curl http://httpbin.org:443</code>),
|
||
上述配置可能是正确的,但是一般情况下,443 端口专用于 HTTPS 流量。</p><p>发送像 <code>curl https://httpbin.org</code> 这样的 HTTPS 请求(默认端口为443)将导致类似于
|
||
<code>curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number</code>
|
||
的错误。访问日志也可能显示如 <code>400 DPE</code> 的错误。</p><p>要解决这个问题,您应该将端口协议改为 HTTPS:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>spec:
|
||
ports:
|
||
- number: 443
|
||
name: https
|
||
protocol: HTTPS
|
||
</code></pre><h3 id=gateway-mismatch>网关到 <code>VirtualService</code> 的 TLS 不匹配</h3><p>将 <code>VirtualService</code> 绑定到网关时,可能会发生两种常见的 TLS 不匹配。</p><ol><li>网关终止了 TLS,而 <code>VirtualService</code> 配置 TLS 路由。</li><li>网关启用 TLS 透传,而 <code>VirtualService</code> 配置了 HTTP 路由。</li></ol><h4 id=gateway-with-TLS-termination>网关终止 TLS</h4><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: networking.istio.io/v1beta1
|
||
kind: Gateway
|
||
metadata:
|
||
name: gateway
|
||
namespace: istio-system
|
||
spec:
|
||
selector:
|
||
istio: ingressgateway
|
||
servers:
|
||
- port:
|
||
number: 443
|
||
name: https
|
||
protocol: HTTPS
|
||
hosts:
|
||
- "*"
|
||
tls:
|
||
mode: SIMPLE
|
||
credentialName: sds-credential
|
||
---
|
||
apiVersion: networking.istio.io/v1beta1
|
||
kind: VirtualService
|
||
metadata:
|
||
name: httpbin
|
||
spec:
|
||
hosts:
|
||
- "*.example.com"
|
||
gateways:
|
||
- istio-system/gateway
|
||
tls:
|
||
- match:
|
||
- sniHosts:
|
||
- "*.example.com"
|
||
route:
|
||
- destination:
|
||
host: httpbin.org
|
||
</code></pre><p>在此示例中,当 <code>VirtualService</code> 使用基于 TLS 的路由时,网关将终止 TLS。
|
||
因为在计算路由规则时 TLS 已经终止,所以 TLS 路由规则将无效。</p><p>使用这种错误配置,您将最终获得 404 响应,因为请求将发送到 HTTP 路由,但未配置 HTTP 路由。
|
||
您可以使用 <code>istioctl proxy-config routes</code> 命令确认这一点。</p><p>要解决这个问题,您应该将 <code>VirtualService</code> 切换为指定 <code>http</code> 路由,而不是 <code>tls</code>:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>spec:
|
||
...
|
||
http:
|
||
- match:
|
||
- headers:
|
||
":authority":
|
||
regex: "*.example.com"
|
||
</code></pre><h4 id=gateway-with-TLS-passthrough>网关启用 TLS 透传</h4><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: networking.istio.io/v1beta1
|
||
kind: Gateway
|
||
metadata:
|
||
name: gateway
|
||
spec:
|
||
selector:
|
||
istio: ingressgateway
|
||
servers:
|
||
- hosts:
|
||
- "*"
|
||
port:
|
||
name: https
|
||
number: 443
|
||
protocol: HTTPS
|
||
tls:
|
||
mode: PASSTHROUGH
|
||
---
|
||
apiVersion: networking.istio.io/v1beta1
|
||
kind: VirtualService
|
||
metadata:
|
||
name: virtual-service
|
||
spec:
|
||
gateways:
|
||
- gateway
|
||
hosts:
|
||
- httpbin.example.com
|
||
http:
|
||
- route:
|
||
- destination:
|
||
host: httpbin.org
|
||
</code></pre><p>在此配置中,<code>VirtualService</code> 试图将 HTTP 流量与通过网关的 TLS 流量进行匹配。
|
||
这将导致 <code>VirtualService</code> 配置无效。您可以使用 <code>istioctl proxy-config listener</code>
|
||
和 <code>istioctl proxy-config route</code> 命令观察到未应用 HTTP 路由。</p><p>要解决这个问题,您应该切换 <code>VirtualService</code> 以配置 TLS 路由。</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>spec:
|
||
tls:
|
||
- match:
|
||
- sniHosts: ["httpbin.example.com"]
|
||
route:
|
||
- destination:
|
||
host: httpbin.org
|
||
</code></pre><p>另外,您可以通过在网关中切换 <code>tls</code> 配置来终止 TLS,而不是透传 TLS:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>spec:
|
||
...
|
||
tls:
|
||
credentialName: sds-credential
|
||
mode: SIMPLE
|
||
</code></pre><h3 id=double-tls>双 TLS(TLS 源发起 TLS 连接)</h3><p>将 Istio 配置为执行 <span class=term data-title="TLS Origination" data-body='<p>TLS 源(TLS Origination)发生于一个被配置为接收内部未加密 HTTP 连接的 Istio 代理(Sidecar 或 Egress Gateway)加密请求并使用简单或双向 TLS 将其转发至安全的 HTTPS 服务器时。
|
||
这与 <a href="https://en.wikipedia.org/wiki/TLS_termination_proxy">TLS 终止</a>相反,后者发生于一个接受 TLS 连接的 Ingress 代理解密 TLS 并将未加密的请求传递到网格内部的服务时。</p>
|
||
'>TLS origination</span> 时,
|
||
您需要确保应用程序将纯文本请求发送到 Sidecar,Sidecar 将随后发起 TLS。</p><p>下述 <code>DestinationRule</code> 向 <code>httpbin.org</code> 服务发起 TLS 连接,但相应的
|
||
<code>ServiceEntry</code> 在端口 443 上将协议定义为 HTTPS。</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: networking.istio.io/v1beta1
|
||
kind: ServiceEntry
|
||
metadata:
|
||
name: httpbin
|
||
spec:
|
||
hosts:
|
||
- httpbin.org
|
||
ports:
|
||
- number: 443
|
||
name: https
|
||
protocol: HTTPS
|
||
resolution: DNS
|
||
---
|
||
apiVersion: networking.istio.io/v1beta1
|
||
kind: DestinationRule
|
||
metadata:
|
||
name: originate-tls
|
||
spec:
|
||
host: httpbin.org
|
||
trafficPolicy:
|
||
tls:
|
||
mode: SIMPLE
|
||
</code></pre><p>使用此配置,Sidecar 期望应用程序在端口 443 上发送 TLS 通信 (如,<code>curl https://httpbin.org</code>),
|
||
但它也将在转发请求之前发起 TLS 连接。这将导致对请求进行双重加密。</p><p>例如,发送 <code>curl https://httpbin.org</code> 之类的请求将导致错误:
|
||
<code>(35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number</code>。</p><p>您可以通过将 <code>ServiceEntry</code> 中的端口协议更改为 HTTP 来解决此示例:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>spec:
|
||
hosts:
|
||
- httpbin.org
|
||
ports:
|
||
- number: 443
|
||
name: http
|
||
protocol: HTTP
|
||
</code></pre><p>请注意,使用此配置,您的应用程序将需要向端口 443 发送纯文本请求,例如
|
||
<code>curl http://httpbin.org:443</code>,因为 TLS 连接不会更改端口。
|
||
但是,从 Istio 1.8 开始,您可以将 HTTP 端口 80 暴露给应用程序(例如,
|
||
<code>curl http://httpbin.org</code>),然后将请求重定向到 <code>targetPort</code> 443 以用于发起 TLS:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>spec:
|
||
hosts:
|
||
- httpbin.org
|
||
ports:
|
||
- number: 80
|
||
name: http
|
||
protocol: HTTP
|
||
targetPort: 443
|
||
</code></pre><h3 id=not-found-errors-occur-when-multiple-gateways-configured-with-same-TLS-certificate>当为多个 Gateway 配置了相同的 TLS 证书导致 404 异常</h3><p>多个网关配置同一 TLS 证书会导致浏览器在与第一台主机建立连接之后访问第二台主机时利用
|
||
<a href=https://httpwg.org/specs/rfc7540.html#reuse>HTTP/2 连接复用</a>(例如,大部分浏览器)从而导致
|
||
404 异常产生。</p><p>举个例子,假如您有 2 个主机共用相同的 TLS 证书,如下所示:</p><ul><li>通配证书 <code>*.test.com</code> 被安装到 <code>istio-ingressgateway</code></li><li><code>Gateway</code> 将 <code>gw1</code> 配置为主机 <code>service1.test.com</code>,选择器 <code>istio: ingressgateway</code>,
|
||
并且 TLS 使用 gateway 安装的(通配)证书</li><li><code>Gateway</code> 将 <code>gw2</code> 配置为主机 <code>service2.test.com</code>,选择器 <code>istio: ingressgateway</code>,
|
||
并且 TLS 使用 gateway 安装的(通配)证书</li><li><code>VirtualService</code> 将 <code>vs1</code> 配置为主机 <code>service1.test.com</code> 并且 gateway 配置为 <code>gw1</code></li><li><code>VirtualService</code> 将 <code>vs2</code> 配置为主机 <code>service2.test.com</code> 并且 gateway 配置为 <code>gw2</code></li></ul><p>因为两个网关都由相同的工作负载提供服务(例如,选择器 <code>istio: ingressgateway</code>),
|
||
到两个服务的请求(<code>service1.test.com</code> 和 <code>service2.test.com</code>)将会解析为同一 IP。
|
||
如果 <code>service1.test.com</code> 首先被接受了,它将会返回一个通配证书(<code>*.test.com</code>)使得到
|
||
<code>service2.test.com</code> 的连接也能够使用相同的证书。因此,Chrome 和 Firefox
|
||
等浏览器会自动使用已建立的连接来发送到 <code>service2.test.com</code> 的请求。因为 gateway(<code>gw1</code>)
|
||
没有到 <code>service2.test.com</code> 的路由信息,它会返回一个 404 (Not Found) 响应。</p><p>您可以通过配置一个单独的通用 <code>Gateway</code> 来避免这个问题,而不是两个(<code>gw1</code> 和 <code>gw2</code>)。
|
||
然后,简单地绑定两个 <code>VirtualService</code> 到这个单独的网关,比如这样:</p><ul><li><code>Gateway</code> 将 <code>gw</code> 配置为主机 <code>*.test.com</code>,选择器 <code>istio: ingressgateway</code>,
|
||
并且 TLS 使用网关挂载的(通配)证书</li><li><code>VirtualService</code> 将 <code>vs1</code> 配置为主机 <code>service1.test.com</code> 并且 gateway 配置为 <code>gw</code></li><li><code>VirtualService</code> 将 <code>vs2</code> 配置为主机 <code>service2.test.com</code> 并且 gateway 配置为 <code>gw</code></li></ul><h3 id=configuring-SNI-routing-when-not-sending-SNI>不发送 SNI 时配置 SNI 路由</h3><p>指定 <code>hosts</code> 字段的 HTTPS <code>Gateway</code> 将对传入请求执行
|
||
<a href=https://en.wikipedia.org/wiki/Server_Name_Indication>SNI</a> 匹配。
|
||
例如,以下配置仅允许在 SNI 中匹配 <code>*.example.com</code> 的请求:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>servers:
|
||
- port:
|
||
number: 443
|
||
name: https
|
||
protocol: HTTPS
|
||
hosts:
|
||
- "*.example.com"
|
||
</code></pre><p>这可能会导致某些请求失败。</p><p>例如,如果您没有设置 DNS,而是直接设置主机标头,例如 <code>curl 1.2.3.4 -H "Host: app.example.com"</code>,
|
||
则 SNI 不会被设置,从而导致请求失败。相反,您可以设置 DNS 或使用 <code>curl</code> 的 <code>--resolve</code> 标志。
|
||
有关更多信息,请参见<a href=/v1.21/zh/docs/tasks/traffic-management/ingress/secure-ingress/>安全网关</a>。</p><p>另一个常见的问题是 Istio 前面的负载均衡器。大多数云负载均衡器不会转发
|
||
SNI,因此,如果您要终止云负载均衡器中的 TLS,则可能需要执行以下操作之一:</p><ul><li>将云负载均衡器改为 TLS 连接方式</li><li>通过将 hosts 字段设置为 <code>*</code> 来禁用 <code>Gateway</code> 中的 SNI 匹配</li></ul><p>常见的症状是负载均衡器运行状况检查成功,而实际流量失败。</p><h2 id=unchanged-envoy-filter-config-suddently-stops-working>未改动 Envoy 过滤器配置但突然停止工作</h2><p>如果 <code>EnvoyFilter</code> 配置指定相对于另一个过滤器的插入位置,这可能非常脆弱,
|
||
因为默认情况下评估顺序基于过滤器的创建时间。以一个具有以下 spec 的过滤器为例:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>spec:
|
||
configPatches:
|
||
- applyTo: NETWORK_FILTER
|
||
match:
|
||
context: SIDECAR_OUTBOUND
|
||
listener:
|
||
portNumber: 443
|
||
filterChain:
|
||
filter:
|
||
name: istio.stats
|
||
patch:
|
||
operation: INSERT_BEFORE
|
||
value:
|
||
...
|
||
</code></pre><p>为了正常工作,这个过滤器配置依赖于创建时间比它早的 <code>istio.stats</code> 过滤器。
|
||
否则,<code>INSERT_BEFORE</code> 操作将被静默忽略。错误日志中将没有任何内容表明此过滤器尚未添加到链中。</p><p>这在匹配特定版本(即在匹配条件中包含 <code>proxyVersion</code> 字段)的过滤器(例如 <code>istio.stats</code>)时尤其成问题。
|
||
在升级 Istio 时,这些过滤器可能会被移除或被替换为新的过滤器。
|
||
因此,像上面这样的 <code>EnvoyFilter</code> 最初可能运行良好,但在将 Istio 升级到新版本后,
|
||
它将不再包含在 Sidecar 的网络过滤器链中。</p><p>为避免此问题,您可以将操作更改为不依赖于另一个过滤器存在的操作(例如 <code>INSERT_FIRST</code>),
|
||
或者在 <code>EnvoyFilter</code> 中设置显式优先级以覆盖默认的基于创建时间的排序。例如,将 <code>priority: 10</code>
|
||
添加到上述过滤器将确保它在默认优先级为 0 的 <code>istio.stats</code> 过滤器之后被处理。</p><h2 id=virtual-service-with-fault-injection-and-retrytimeout-policies-not-working-as-expected>配有故障注入和重试/超时策略的虚拟服务未按预期工作</h2><p>目前,Istio 不支持在同一个 <code>VirtualService</code> 上配置故障注入和重试或超时策略。考虑以下配置:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: networking.istio.io/v1alpha3
|
||
kind: VirtualService
|
||
metadata:
|
||
name: helloworld
|
||
spec:
|
||
hosts:
|
||
- "*"
|
||
gateways:
|
||
- helloworld-gateway
|
||
http:
|
||
- match:
|
||
- uri:
|
||
exact: /hello
|
||
fault:
|
||
abort:
|
||
httpStatus: 500
|
||
percentage:
|
||
value: 50
|
||
retries:
|
||
attempts: 5
|
||
retryOn: 5xx
|
||
route:
|
||
- destination:
|
||
host: helloworld
|
||
port:
|
||
number: 5000
|
||
</code></pre><p>您期望配置了五次重试尝试时用户在调用 <code>helloworld</code> 服务时几乎不会看到任何错误。
|
||
但是由于故障和重试都配置在同一个 <code>VirtualService</code> 上,所以重试配置未生效,导致 50%
|
||
的失败率。要解决此问题,您可以从 <code>VirtualService</code> 中移除故障配置,并转为使用
|
||
<code>EnvoyFilter</code> 将故障注入上游 Envoy 代理:</p><pre><code class=language-yaml data-expandlinks=true data-repo=istio>apiVersion: networking.istio.io/v1alpha3
|
||
kind: EnvoyFilter
|
||
metadata:
|
||
name: hello-world-filter
|
||
spec:
|
||
workloadSelector:
|
||
labels:
|
||
app: helloworld
|
||
configPatches:
|
||
- applyTo: HTTP_FILTER
|
||
match:
|
||
context: SIDECAR_INBOUND # 将匹配所有 Sidecar 中的出站监听器
|
||
listener:
|
||
filterChain:
|
||
filter:
|
||
name: "envoy.filters.network.http_connection_manager"
|
||
patch:
|
||
operation: INSERT_BEFORE
|
||
value:
|
||
name: envoy.fault
|
||
typed_config:
|
||
"@type": "type.googleapis.com/envoy.extensions.filters.http.fault.v3.HTTPFault"
|
||
abort:
|
||
http_status: 500
|
||
percentage:
|
||
numerator: 50
|
||
denominator: HUNDRED
|
||
</code></pre><p>上述这种方式可行,这是因为这种方式为客户端代理配置了重试策略,而为上游代理配置了故障注入。</p></article><nav class=pagenav><div class=left></div><div class=right><a title="定位常见 Istio 认证、授权、安全相关问题的技巧。" href=/v1.21/zh/docs/ops/common-problems/security-issues/ class=next-link>安全问题<svg class="icon right-arrow"><use xlink:href="/v1.21/img/icons.svg#right-arrow"/></svg></a></div></nav><div id=feedback><div id=feedback-initial>这些信息有用吗?<br><button class="btn feedback" onclick='sendFeedback("zh",1)'>是的</button>
|
||
<button class="btn feedback" onclick='sendFeedback("zh",0)'>没有</button></div><div id=feedback-comment>您是否有更多建议和改进意见?<br><br><input id=feedback-textbox type=text placeholder=帮助我们进行改进... data-lang=zh></div><div id=feedback-thankyou>感谢您的反馈!</div></div><div id=endnotes-container aria-hidden=true><h2>链接</h2><ol id=endnotes></ol></div></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.21/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.21/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.21/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.21/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.21/img/icons.svg#twitter"/></svg></a></div><hr class=footer-separator role=separator><div class="info footer-info"><a class=logo href=/v1.21/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.21/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.21/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.21.2</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/docs/ops/common-problems/network-issues/"),!1'>当前版本</a></li><li class=footer-base-releases-item><a tabindex=-1 class=footer-base-releases-link onclick='return navigateToUrlOrRoot("https://preliminary.istio.io/docs/ops/common-problems/network-issues/"),!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><script src=https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js defer></script><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.21/img/icons.svg#top"/></svg></button></div></body></html> |