mirror of https://github.com/istio/istio.io.git
154 lines
91 KiB
HTML
154 lines
91 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="安装一个跨多个 Kubernetes 集群的 Istio 网格,多集群共享控制平面,并且集群间通过 VPN 互连。"><meta name=keywords content="microservices,services,mesh,kubernetes,multicluster,federation,vpn"><meta property="og:title" content="共享控制平面(单一网络)"><meta property="og:type" content="website"><meta property="og:description" content="安装一个跨多个 Kubernetes 集群的 Istio 网格,多集群共享控制平面,并且集群间通过 VPN 互连。"><meta property="og:url" content="/v1.5/zh/docs/setup/install/multicluster/shared-vpn/"><meta property="og:image" content="/v1.5/img/istio-whitelogo-bluebackground-framed.svg"><meta property="og:image:alt" content="Istio Logo"><meta property="og:image:width" content="112"><meta property="og:image:height" content="150"><meta property="og:site_name" content="Istio"><meta name=twitter:card content="summary"><meta name=twitter:site content="@IstioMesh"><title>Istioldie 1.5 / 共享控制平面(单一网络)</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.5/blog/feed.xml><link rel=alternate type=application/rss+xml title="Istio News" href=/v1.5/news/feed.xml><link rel=alternate type=application/rss+xml title="Istio Blog and News" href=/v1.5/feed.xml><link rel="shortcut icon" href=/v1.5/favicons/favicon.ico><link rel=apple-touch-icon href=/v1.5/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/v1.5/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/v1.5/favicons/favicon-32x32.png sizes=32x32><link rel=icon type=image/png href=/v1.5/favicons/android-36x36.png sizes=36x36><link rel=icon type=image/png href=/v1.5/favicons/android-48x48.png sizes=48x48><link rel=icon type=image/png href=/v1.5/favicons/android-72x72.png sizes=72x72><link rel=icon type=image/png href=/v1.5/favicons/android-96x96.png sizes=96xW96><link rel=icon type=image/png href=/v1.5/favicons/android-144x144.png sizes=144x144><link rel=icon type=image/png href=/v1.5/favicons/android-192x192.png sizes=192x192><link rel=manifest href=/v1.5/manifest.json><meta name=apple-mobile-web-app-title content="Istio"><meta name=application-name content="Istio"><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Work+Sans:400|Chivo:400|Work+Sans:500,300,600,300italic,400italic,500italic,600italic|Chivo:500,300,600,300italic,400italic,500italic,600italic"><link rel=stylesheet href=/v1.5/css/all.css><script src=/v1.5/js/themes_init.min.js></script></head><body class="language-unknown archive-site"><script>const branchName="release-1.5";const docTitle="共享控制平面(单一网络)";const iconFile="\/v1.5/img/icons.svg";const buttonCopy='复制到剪切板';const buttonPrint='打印';const buttonDownload='下载';</script><script src="https://www.google.com/cse/brand?form=search-form" defer></script><script src=/v1.5/js/all.min.js data-manual defer></script><header><nav><a id=brand href=/v1.5/zh/><span class=logo><svg viewBox="0 0 300 300"><circle cx="150" cy="150" r="146" stroke-width="2"/><polygon points="65 240 225 240 125 270"/><polygon points="65 230 125 220 125 110"/><polygon points="135 220 225 230 135 30"/></svg></span><span class=name>Istioldie 1.5</span></a><div id=hamburger><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#hamburger"/></svg></div><div id=header-links><a class=current title="了解如何部署、使用和运维 Istio。" href=/v1.5/zh/docs/>文档</a>
|
||
<a title="关于使用 Istio 的博客文章。" href=/v1.5/zh/blog/2020/>博客<i class=dot data-prefix=/blog></i></a>
|
||
<a title="关于 Istio 项目的最新报道。" href=/v1.5/zh/news/>新闻<i class=dot data-prefix=/news></i></a>
|
||
<a title="关于 Istio 的常见问题。" href=/v1.5/zh/faq/>FAQ</a>
|
||
<a title="关于 Istio 项目的说明。" href=/v1.5/zh/about/>关于</a><div class=menu><button id=gearDropdownButton class=menu-trigger title=选项和设置 aria-label="Options and Settings" aria-controls=gearDropdownContent><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#gear"/></svg></button><div id=gearDropdownContent class=menu-content aria-labelledby=gearDropdownButton role=menu><a tabindex=-1 role=menuitem lang=en id=switch-lang-en>English</a>
|
||
<a tabindex=-1 role=menuitem lang=zh id=switch-lang-zh class=active>中文</a><div role=separator></div><a tabindex=-1 role=menuitem class=active id=light-theme-item>亮主题</a>
|
||
<a tabindex=-1 role=menuitem id=dark-theme-item>暗主题</a><div role=separator></div><a tabindex=-1 role=menuitem id=syntax-coloring-item>代码高亮</a><div role=separator></div><h6>本站的其它版本</h6><a tabindex=-1 role=menuitem onclick="navigateToUrlOrRoot('https://istio.io/docs\/setup\/install\/multicluster\/shared-vpn\/');return false;">当前版本</a>
|
||
<a tabindex=-1 role=menuitem onclick="navigateToUrlOrRoot('https://preliminary.istio.io/docs\/setup\/install\/multicluster\/shared-vpn\/');return false;">下个版本</a>
|
||
<a tabindex=-1 role=menuitem href=https://istio.io/archive>旧版本</a></div></div><button id=search-show title="搜索 istio.io" aria-label=搜索><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#magnifier"/></svg></button></div><form id=search-form 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=en>
|
||
<input type=hidden id=search-page-url value=/v1.5/search>
|
||
<input id=search-textbox class=form-control name=q type=search aria-label="搜索 istio.io">
|
||
<button id=search-close title=取消搜索 type=reset aria-label=取消搜索><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#cancel-x"/></svg></button></form></nav></header><div class=banner-container></div><main class=primary><div id=sidebar-container class="sidebar-container sidebar-offcanvas"><nav id=sidebar aria-label="Section Navigation"><div class=directory><div class=card><button class="header dynamic" id=card34 title="一些概念,理解它们有助于您更好地了解 Istio 系统的不同部分及其使用的抽象。" aria-controls=card34-body><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#concepts"/></svg>概念</button><div class=body aria-labelledby=card34 role=region id=card34-body><ul role=tree aria-expanded=true class=leaf-section aria-labelledby=card34><li role=none><a role=treeitem title="介绍 Istio,它要解决的问题,高层面的架构和设计目标。" href=/v1.5/zh/docs/concepts/what-is-istio/>Istio 是什么?</a></li><li role=none><a role=treeitem title="描述 Istio 多样的流量路由和控制特性。" href=/v1.5/zh/docs/concepts/traffic-management/>流量管理</a></li><li role=none><a role=treeitem title="讲述 Istio 的 WebAssembly 插件系统。" href=/v1.5/zh/docs/concepts/wasm/>扩展性</a></li><li role=none><a role=treeitem title="描述 Istio 的授权与认证功能。" href=/v1.5/zh/docs/concepts/security/>安全</a></li><li role=none><a role=treeitem title="描述 Istio 提供的遥测和监控特性。" href=/v1.5/zh/docs/concepts/observability/>可观察性</a></li></ul></div></div><div class=card><button class="header dynamic" id=card50 title="关于如何在 Kubernetes 集群中安装 Istio 控制平面和添加虚拟机到 mesh 中的说明。" aria-controls=card50-body><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#setup"/></svg>安装</button><div class="body default" aria-labelledby=card50 role=region id=card50-body><ul role=tree aria-expanded=true aria-labelledby=card50><li role=none><a role=treeitem title="下载、安装并学习如何快速使用 Istio 的基本特性。" href=/v1.5/zh/docs/setup/getting-started/>开始</a></li><li role=treeitem aria-label=平台安装><button aria-hidden=true></button><a title="在安装 Istio 之前如何准备各种 Kubernetes 平台。" href=/v1.5/zh/docs/setup/platform-setup/>平台安装</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="对阿里云 Kubernetes 集群进行配置以便安装运行 Istio。" href=/v1.5/zh/docs/setup/platform-setup/alicloud/>阿里云</a></li><li role=none><a role=treeitem title="为 Istio 设置一个 Azure 集群的指令。" href=/v1.5/zh/docs/setup/platform-setup/azure/>Azure</a></li><li role=none><a role=treeitem title="在 Docker Desktop 中运行 Istio 的设置说明。" href=/v1.5/zh/docs/setup/platform-setup/docker/>Docker Desktop</a></li><li role=none><a role=treeitem title="在 Google Kubernetes Engine (GKE) 上快速搭建 Istio 服务。" href=/v1.5/zh/docs/setup/platform-setup/gke/>使用 Google Kubernetes Engine 快速开始</a></li><li role=none><a role=treeitem title="在 IBM 公有云或私有云上快速搭建 Istio 服务。" href=/v1.5/zh/docs/setup/platform-setup/ibm/>IBM Cloud 快速开始</a></li><li role=none><a role=treeitem title="为 Istio 设置 kind 的说明。" href=/v1.5/zh/docs/setup/platform-setup/kind/>kind</a></li><li role=none><a role=treeitem title="使用 Gardener 快速搭建 Istio 服务。" href=/v1.5/zh/docs/setup/platform-setup/gardener/>Kubernetes Gardener 快速开始</a></li><li role=none><a role=treeitem title="配置 MicroK8s 以便使用 Istio。" href=/v1.5/zh/docs/setup/platform-setup/microk8s/>MicroK8s</a></li><li role=none><a role=treeitem title="在 Minikube 上配置 Istio。" href=/v1.5/zh/docs/setup/platform-setup/minikube/>Minikube</a></li><li role=none><a role=treeitem title="对 OpenShift 集群进行配置以便安装运行 Istio。" href=/v1.5/zh/docs/setup/platform-setup/openshift/>OpenShift</a></li><li role=none><a role=treeitem title="为 Istio 配置 OKE 集群环境的说明。" href=/v1.5/zh/docs/setup/platform-setup/oci/>Oracle Cloud Infrastructure</a></li></ul></li><li role=treeitem aria-label=安装><button class=show aria-hidden=true></button><a title=选择最适合您的需求和平台的指南。 href=/v1.5/zh/docs/setup/install/>安装</a><ul role=group aria-expanded=true><li role=none><a role=treeitem title="安装和自定义任何 Istio 配置文件以进行深入评估或用于生产。" href=/v1.5/zh/docs/setup/install/istioctl/>使用 Istioctl 安装</a></li><li role=none><a role=treeitem title="安装和配置 Istio 以进行深入评估或用于生产。" href=/v1.5/zh/docs/setup/install/helm/>使用 Helm 自定义安装</a></li><li role=none><a role=treeitem title="使用 Istio operator 在 Kubernetes 集群中安装 Istio 指南。" href=/v1.5/zh/docs/setup/install/standalone-operator/>安装独立 Operator [实验]</a></li><li role=treeitem aria-label=多集群安装><button class=show aria-hidden=true></button><a title="配置跨越多个 Kubernetes 集群的 Istio 服务网格。" href=/v1.5/zh/docs/setup/install/multicluster/>多集群安装</a><ul role=group aria-expanded=true class=leaf-section><li role=none><a role=treeitem title="配置一个跨多个 Kubernetes 集群的 Istio 网格。" href=/v1.5/zh/docs/setup/install/multicluster/simplified/>简化地多集群安装[实验性]</a></li><li role=none><a role=treeitem title="通过控制平面副本集实例,在多个 Kubernetes 集群上安装 Istio 网格。" href=/v1.5/zh/docs/setup/install/multicluster/gateways/>控制平面副本集</a></li><li role=none><span role=treeitem class=current title="安装一个跨多个 Kubernetes 集群的 Istio 网格,多集群共享控制平面,并且集群间通过 VPN 互连。">共享控制平面(单一网络)</span></li><li role=none><a role=treeitem title="跨多个 Kubernetes 集群安装一个 Istio 网格,使互不联通的集群网络共享同一个控制平面。" href=/v1.5/zh/docs/setup/install/multicluster/shared-gateways/>共享的控制平面(多网络)</a></li></ul></li></ul></li><li role=treeitem aria-label=升级><button aria-hidden=true></button><a title="选择与您先前用于安装 Istio 的方法相对应的升级指南。" href=/v1.5/zh/docs/setup/upgrade/>升级</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="使用 istioctl 命令来升级或降级 Istio。" href=/v1.5/zh/docs/setup/upgrade/istioctl-upgrade/>使用 istioctl 命令升级 Istio [实验中]</a></li><li role=none><a role=treeitem title="升级 Istio 控制平面,可以选择使用 Helm 升级 CNI 插件。" href=/v1.5/zh/docs/setup/upgrade/cni-helm-upgrade/>使用 Helm 升级</a></li></ul></li><li role=treeitem aria-label=更多指南><button aria-hidden=true></button><a title=有关其他设置任务的更多信息。 href=/v1.5/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.5/zh/docs/setup/additional-setup/config-profiles/>安装配置</a></li><li role=none><a role=treeitem title="在应用程序 Pod 中使用 sidecar injector webhook 自动安装或使用 istioctl CLI 手动安装 Istio sidecar。" href=/v1.5/zh/docs/setup/additional-setup/sidecar-injection/>设置 Sidecar</a></li><li role=none><a role=treeitem title="安装并使用 Istio CNI 插件,可以让运维人员用更低的权限来部署服务。" href=/v1.5/zh/docs/setup/additional-setup/cni/>安装 Istio CNI 插件</a></li></ul></li></ul></div></div><div class=card><button class="header dynamic" id=card66 title="如何用 Istio 系统实现特定目标的行为。" aria-controls=card66-body><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#tasks"/></svg>任务</button><div class=body aria-labelledby=card66 role=region id=card66-body><ul role=tree aria-expanded=true aria-labelledby=card66><li role=treeitem aria-label=流量管理><button aria-hidden=true></button><a title="演示 Istio 的流量路由功能的任务。" href=/v1.5/zh/docs/tasks/traffic-management/>流量管理</a><ul role=group aria-expanded=false><li role=none><a role=treeitem title=此任务将展示如何将请求动态路由到微服务的多个版本。 href=/v1.5/zh/docs/tasks/traffic-management/request-routing/>配置请求路由</a></li><li role=none><a role=treeitem title=此任务说明如何注入故障并测试应用程序的弹性。 href=/v1.5/zh/docs/tasks/traffic-management/fault-injection/>故障注入</a></li><li role=none><a role=treeitem title=展示如何将流量从旧版本迁移到新版本的服务。 href=/v1.5/zh/docs/tasks/traffic-management/traffic-shifting/>流量转移</a></li><li role=none><a role=treeitem title="展示如何将一个服务的 TCP 流量从旧版本迁移到新版本。" href=/v1.5/zh/docs/tasks/traffic-management/tcp-traffic-shifting/>TCP 流量转移</a></li><li role=none><a role=treeitem title="本任务用于示范如何使用 Istio 在 Envoy 中设置请求超时。" href=/v1.5/zh/docs/tasks/traffic-management/request-timeouts/>设置请求超时</a></li><li role=none><a role=treeitem title=本任务展示如何为连接、请求以及异常检测配置熔断。 href=/v1.5/zh/docs/tasks/traffic-management/circuit-breaking/>熔断</a></li><li role=none><a role=treeitem title="此任务演示了 Istio 的流量镜像/影子功能。" href=/v1.5/zh/docs/tasks/traffic-management/mirroring/>镜像</a></li><li role=treeitem aria-label=Ingress><button aria-hidden=true></button><a title="控制 Istio 服务网格的入口流量。" href=/v1.5/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.5/zh/docs/tasks/traffic-management/ingress/ingress-control/>Ingress Gateway</a></li><li role=none><a role=treeitem title="使用文件挂载的证书并通过 TLS 或 mTLS 将服务暴露至服务网格之外。" href=/v1.5/zh/docs/tasks/traffic-management/ingress/secure-ingress-mount/>安全网关(文件挂载)</a></li><li role=none><a role=treeitem title="使用 Secret 发现服务(SDS) 通过 TLS 或者 mTLS 把服务暴露给服务网格外部。" href=/v1.5/zh/docs/tasks/traffic-management/ingress/secure-ingress-sds/>使用 SDS 为 Gateway 提供 HTTPS 加密支持</a></li><li role=none><a role=treeitem title="说明了如何为一个 ingress gateway 配置 SNI 透传。" href=/v1.5/zh/docs/tasks/traffic-management/ingress/ingress-sni-passthrough/>无 TLS 终止的 Ingress Gateway</a></li><li role=none><a role=treeitem title="演示如何使用 Cert-Manager 为 Kubernetes Ingress 自动获取 Let's Encrypt TLS 证书。" href=/v1.5/zh/docs/tasks/traffic-management/ingress/ingress-certmgr/>使用 Cert-Manager 加密 Kubernetes Ingress</a></li></ul></li><li role=treeitem aria-label=Egress><button aria-hidden=true></button><a title="控制 Istio 服务网格的出口流量。" href=/v1.5/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.5/zh/docs/tasks/traffic-management/egress/egress-control/>访问外部服务</a></li><li role=none><a role=treeitem title="描述如何配置 Istio 对来自外部服务的流量执行 TLS 发起。" href=/v1.5/zh/docs/tasks/traffic-management/egress/egress-tls-origination/>Egress TLS Origination</a></li><li role=none><a role=treeitem title="描述如何配置 Istio 通过专用网关服务将流量定向到外部服务。" href=/v1.5/zh/docs/tasks/traffic-management/egress/egress-gateway/>Egress Gateway</a></li><li role=none><a role=treeitem title="描述如何配置一个 Egress 网关,来向外部服务发起 TLS 连接。" href=/v1.5/zh/docs/tasks/traffic-management/egress/egress-gateway-tls-origination/>Egress 网关的 TLS 发起过程</a></li><li role=none><a role=treeitem title="描述如何开启通用域中一组主机的 egress,无需单独配置每一台主机。" href=/v1.5/zh/docs/tasks/traffic-management/egress/wildcard-egress-hosts/>Wildcard 主机的 egress</a></li><li role=none><a role=treeitem title="描述如何在 TLS Egress 上配置 SNI 监控和策略。" href=/v1.5/zh/docs/tasks/traffic-management/egress/egress_sni_monitoring_and_policies/>TLS Egress 监控和策略配置</a></li><li role=none><a role=treeitem title="展示如何配置 Istio Kubernetes 外部服务。" href=/v1.5/zh/docs/tasks/traffic-management/egress/egress-kubernetes-services/>Kubernetes Egress 流量服务</a></li><li role=none><a role=treeitem title="描述如何配置 Istio 以允许应用程序使用外部 HTTPS 代理。" href=/v1.5/zh/docs/tasks/traffic-management/egress/http-proxy/>使用外部 HTTPS 代理</a></li></ul></li></ul></li><li role=treeitem aria-label=安全><button aria-hidden=true></button><a title=演示如何保护网格。 href=/v1.5/zh/docs/tasks/security/>安全</a><ul role=group aria-expanded=false><li role=treeitem aria-label=认证><button aria-hidden=true></button><a title="管控网格服务间的双向 TLS 和终端用户的身份认证。" href=/v1.5/zh/docs/tasks/security/authentication/>认证</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="通过一个简化的工作流和最小化配置实现双向 TLS。" href=/v1.5/zh/docs/tasks/security/authentication/auto-mtls/>自动双向 TLS</a></li><li role=none><a role=treeitem title="为您展示如何使用 Istio 认证策略设置双向 TLS 和基础终端用户认证。" href=/v1.5/zh/docs/tasks/security/authentication/authn-policy/>认证策略</a></li><li role=none><a role=treeitem title="对 Istio 双向 TLS 认证功能进行体验和测试。" href=/v1.5/zh/docs/tasks/security/authentication/mutual-tls/>深入了解双向 TLS</a></li><li role=none><a role=treeitem title="展示如何在 HTTPS 服务上启用双向 TLS。" href=/v1.5/zh/docs/tasks/security/authentication/https-overlay/>通过 HTTPS 进行 TLS</a></li><li role=none><a role=treeitem title="阐述如何将 Istio 服务逐步迁移至双向 TLS 通信模式。" href=/v1.5/zh/docs/tasks/security/authentication/mtls-migration/>双向 TLS 迁移</a></li></ul></li><li role=treeitem aria-label="Citadel 配置"><button aria-hidden=true></button><a title="定制 Citadel 证书颁发机构。" href=/v1.5/zh/docs/tasks/security/citadel-config/>Citadel 配置</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="运维人员如何使用现有根证书配置 Citadel 进行证书以及密钥的签发。" href=/v1.5/zh/docs/tasks/security/citadel-config/plugin-ca-cert/>插入外部 CA 密钥和证书</a></li><li role=none><a role=treeitem title="如何在 Kubernetes 中启用 Citadel 的健康检查。" href=/v1.5/zh/docs/tasks/security/citadel-config/health-check/>Citadel 的健康检查</a></li><li role=none><a role=treeitem title="Istio 中如何通过启用 SDS (密钥发现服务)来进行身份认证。" href=/v1.5/zh/docs/tasks/security/citadel-config/auth-sds/>通过 SDS 进行身份认证</a></li><li role=none><a role=treeitem title="配置 Citadel 应该为哪一个命名空间生成 service account secret。" href=/v1.5/zh/docs/tasks/security/citadel-config/ca-namespace-targeting/>配置 Citadel 的 Service Account Secret 生成</a></li></ul></li><li role=treeitem aria-label=授权><button aria-hidden=true></button><a title="展示如何控制到 Istio 服务的访问。" href=/v1.5/zh/docs/tasks/security/authorization/>授权</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="有关如何在 Istio 中配置基于组的授权和列表类型声明的授权的教程。" href=/v1.5/zh/docs/tasks/security/authorization/rbac-groups/>基于组和列表声明的授权</a></li><li role=none><a role=treeitem title="展示如何设置基于角色的 HTTP 流量访问控制。" href=/v1.5/zh/docs/tasks/security/authorization/authz-http/>HTTP 流量授权</a></li><li role=none><a role=treeitem title="展示如何设置 TCP 流量的访问控制。" href=/v1.5/zh/docs/tasks/security/authorization/authz-tcp/>TCP 流量的授权</a></li><li role=none><a role=treeitem title=阐述如何在不更改授权策略的前提下从一个信任域迁移到另一个。 href=/v1.5/zh/docs/tasks/security/authorization/authz-td-migration/>授权策略信任域迁移</a></li></ul></li><li role=none><a role=treeitem title="展示如何准备和管理 Istio DNS 证书。" href=/v1.5/zh/docs/tasks/security/dns-cert/>Istio DNS 证书管理</a></li></ul></li><li role=treeitem aria-label=策略><button aria-hidden=true></button><a title=演示策略执行功能。 href=/v1.5/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.5/zh/docs/tasks/policy-enforcement/enabling-policy/>启用策略检查功能</a></li><li role=none><a role=treeitem title="这部分内容将向您展示如何使用 Istio 去动态限制服务间的流量。" href=/v1.5/zh/docs/tasks/policy-enforcement/rate-limiting/>启用速率限制</a></li><li role=none><a role=treeitem title=演示如何使用策略适配器修改请求头和路由。 href=/v1.5/zh/docs/tasks/policy-enforcement/control-headers/>请求头和路由控制</a></li><li role=none><a role=treeitem title="描述如何使用简单的 denials 或黑白名单来控制对服务的访问。" href=/v1.5/zh/docs/tasks/policy-enforcement/denial-and-list/>Denials 和黑白名单</a></li></ul></li><li role=treeitem aria-label=可观察性><button aria-hidden=true></button><a title=演示如何从网格收集遥测信息。 href=/v1.5/zh/docs/tasks/observability/>可观察性</a><ul role=group aria-expanded=false><li role=treeitem aria-label=指标度量><button aria-hidden=true></button><a title="演示 Istio 网格指标度量的配置、收集和处理。" href=/v1.5/zh/docs/tasks/observability/metrics/>指标度量</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="此任务向您展示如何配置 Istio 以采集和自定义指标。" href=/v1.5/zh/docs/tasks/observability/metrics/collecting-metrics/>采集指标</a></li><li role=none><a role=treeitem title="本任务展示了如何配置 Istio 进行 TCP 服务的指标收集。" href=/v1.5/zh/docs/tasks/observability/metrics/tcp-metrics/>收集 TCP 服务指标</a></li><li role=none><a role=treeitem title="本任务介绍如何通过 Prometheus 查询 Istio 度量指标。" href=/v1.5/zh/docs/tasks/observability/metrics/querying-metrics/>通过 Prometheus 查询度量指标</a></li><li role=none><a role=treeitem title="此任务展示了如何设置和使用 Istio Dashboard 监控网格流量。" href=/v1.5/zh/docs/tasks/observability/metrics/using-istio-dashboard/>使用 Grafana 可视化指标</a></li></ul></li><li role=treeitem aria-label=日志><button aria-hidden=true></button><a title="演示 Istio 网格日志的配置、收集和处理。" href=/v1.5/zh/docs/tasks/observability/logs/>日志</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="此任务向您展示如何配置 Envoy 代理将访问日志打印到其标准输出。" href=/v1.5/zh/docs/tasks/observability/logs/access-log/>获取 Envoy 访问日志</a></li><li role=none><a role=treeitem title="本任务向您展示如何配置 Istio 来收集和定制日志。" href=/v1.5/zh/docs/tasks/observability/logs/collecting-logs/>收集日志</a></li><li role=none><a role=treeitem title="此任务向您展示如何配置 Istio 以连接到 Fluentd 守护程序进行日志收集。" href=/v1.5/zh/docs/tasks/observability/logs/fluentd/>使用 Fluentd 进行日志收集</a></li></ul></li><li role=treeitem aria-label=分布式追踪><button aria-hidden=true></button><a title="该任务展示了如何为启用了 Istio 支持的应用进行追踪。" href=/v1.5/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.5/zh/docs/tasks/observability/distributed-tracing/overview/>概述</a></li><li role=none><a role=treeitem title="了解如何通过配置代理以将追踪请求发送到 Zipkin。" href=/v1.5/zh/docs/tasks/observability/distributed-tracing/zipkin/>Zipkin</a></li><li role=none><a role=treeitem title="了解如何配置代理以向 Jaeger 发送追踪请求。" href=/v1.5/zh/docs/tasks/observability/distributed-tracing/jaeger/>Jaeger</a></li><li role=none><a role=treeitem title="怎样配置代理才能把追踪请求发送到 LightStep。" href=/v1.5/zh/docs/tasks/observability/distributed-tracing/lightstep/>LightStep</a></li></ul></li><li role=none><a role=treeitem title="此任务向您展示如何在 Istio 网格中可视化服务。" href=/v1.5/zh/docs/tasks/observability/kiali/>网络可视化</a></li><li role=none><a role=treeitem title="此任务向您展示如何配置从外部访问 Istio 遥测插件。" href=/v1.5/zh/docs/tasks/observability/gateways/>远程访问遥测插件</a></li></ul></li></ul></div></div><div class=card><button class="header dynamic" id=card118 title="这里包括多个可供 Istio 使用的可完整工作的示例,你可以用来亲自部署和体验这些示例。" aria-controls=card118-body><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#examples"/></svg>示例</button><div class=body aria-labelledby=card118 role=region id=card118-body><ul role=tree aria-expanded=true aria-labelledby=card118><li role=none><a role=treeitem title="部署一个用于演示多种 Istio 特性的应用,由四个单独的微服务构成。" href=/v1.5/zh/docs/examples/bookinfo/>Bookinfo 应用</a></li><li role=treeitem aria-label=虚拟机><button aria-hidden=true></button><a title="将虚拟机中运行的工作负载添加到 Istio 网格的示例。" href=/v1.5/zh/docs/examples/virtual-machines/>虚拟机</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="学习如何新增一个服务,使其运行在单网络 Istio 网格的虚拟机上。" href=/v1.5/zh/docs/examples/virtual-machines/single-network/>单个网络网格中的虚拟机</a></li><li role=none><a role=treeitem title="学习怎样添加运行在虚拟机上的服务到您的多网络 Istio 网格中。" href=/v1.5/zh/docs/examples/virtual-machines/multi-network/>多网络网格中的虚拟机</a></li><li role=none><a role=treeitem title="使用在网格内的虚拟机上运行的 MySQL 服务运行 Bookinfo 应用程序。" href=/v1.5/zh/docs/examples/virtual-machines/bookinfo/>在虚拟机上部署 Bookinfo 应用程序</a></li></ul></li><li role=treeitem aria-label="使用 Kubernetes 和 Istio 学习微服务"><button aria-hidden=true></button><a title="该模块化教程为新用户提供了一步步将 Istio 应用于常见微服务场景的动手经验。" href=/v1.5/zh/docs/examples/microservices-istio/>使用 Kubernetes 和 Istio 学习微服务</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem href=/v1.5/zh/docs/examples/microservices-istio/prereq/>前提条件</a></li><li role=none><a role=treeitem href=/v1.5/zh/docs/examples/microservices-istio/setup-kubernetes-cluster/>设置 Kubernetes 集群</a></li><li role=none><a role=treeitem href=/v1.5/zh/docs/examples/microservices-istio/setup-local-computer/>设置本地计算机</a></li><li role=none><a role=treeitem href=/v1.5/zh/docs/examples/microservices-istio/single/>本地运行微服务</a></li><li role=none><a role=treeitem href=/v1.5/zh/docs/examples/microservices-istio/package-service/>在 Docker 中运行 ratings 服务</a></li><li role=none><a role=treeitem href=/v1.5/zh/docs/examples/microservices-istio/bookinfo-kubernetes/>使用 Kubernetes 运行 Bookinfo</a></li><li role=none><a role=treeitem href=/v1.5/zh/docs/examples/microservices-istio/production-testing/>生产测试</a></li></ul></li></ul></div></div><div class=card><button class="header dynamic" id=card125 title="关于部署和管理 Istio 网格的概念、工具和技术。" aria-controls=card125-body><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#guide"/></svg>运维</button><div class=body aria-labelledby=card125 role=region id=card125-body><ul role=tree aria-expanded=true aria-labelledby=card125><li role=treeitem aria-label=部署><button aria-hidden=true></button><a title="设置 Istio 部署的要求、概念和注意事项。" href=/v1.5/zh/docs/ops/deployment/>部署</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="描述 Istio 的整体架构与设计目标。" href=/v1.5/zh/docs/ops/deployment/architecture/>架构</a></li><li role=none><a role=treeitem title="描述 Istio 部署中的选择和建议。" href=/v1.5/zh/docs/ops/deployment/deployment-models/>部署模型</a></li><li role=none><a role=treeitem title="介绍 Istio 的性能和可扩展性。" href=/v1.5/zh/docs/ops/deployment/performance-and-scalability/>性能和可扩展性</a></li><li role=none><a role=treeitem title="在启用了 Istio 的集群中运行 Kubernetes 的 Pod 和 Service,您需要做些准备。" href=/v1.5/zh/docs/ops/deployment/requirements/>Pod 和 Service</a></li></ul></li><li role=treeitem aria-label=配置><button aria-hidden=true></button><a title="配置运行中的 Istio 网格的高级概念和功能。" href=/v1.5/zh/docs/ops/configuration/>配置</a><ul role=group aria-expanded=false><li role=treeitem aria-label=网格配置><button aria-hidden=true></button><a title=帮助您管理全局网格配置。 href=/v1.5/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.5/zh/docs/ops/configuration/mesh/webhook/>动态准入 Webhook 概述</a></li><li role=none><a role=treeitem title="介绍 Istio 是如何通过 Kubernetes 的 webhooks 机制来实现 Sidecar 自动注入。" href=/v1.5/zh/docs/ops/configuration/mesh/injection-concepts/>Sidecar 自动注入</a></li><li role=none><a role=treeitem title="描述 Citadel 如何确定是否创建服务账号 secret。" href=/v1.5/zh/docs/ops/configuration/mesh/secret-creation/>创建服务账号 Secret</a></li><li role=none><a role=treeitem title="为您展示如何对 Istio 服务做健康检查。" href=/v1.5/zh/docs/ops/configuration/mesh/app-health-check/>Istio 服务的健康检查</a></li></ul></li><li role=treeitem aria-label=流量管理><button aria-hidden=true></button><a title=帮助您管理正在运行的网格的网络方面。 href=/v1.5/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.5/zh/docs/ops/configuration/traffic-management/protocol-selection/>协议选择</a></li><li role=none><a role=treeitem title=有关如何启用和理解地域负载平衡。 href=/v1.5/zh/docs/ops/configuration/traffic-management/locality-load-balancing/>地域负载均衡</a></li></ul></li><li role=treeitem aria-label=安全><button aria-hidden=true></button><a title=帮助您管理正在运行的网格的安全性方面。 href=/v1.5/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.5/zh/docs/ops/configuration/security/harden-docker-images/>加固 Docker 容器镜像</a></li><li role=none><a role=treeitem title="学习如何延长 Istio 自签名根证书的寿命。" href=/v1.5/zh/docs/ops/configuration/security/root-transition/>延长自签名证书的寿命</a></li></ul></li><li role=treeitem aria-label=可观测性><button aria-hidden=true></button><a title=帮助您管理正在运行的网格中的遥测收集和可视化。 href=/v1.5/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.5/zh/docs/ops/configuration/telemetry/envoy-stats/>Envoy 的统计信息</a></li><li role=none><a role=treeitem title=怎样使用代理生成服务级别的指标。 href=/v1.5/zh/docs/ops/configuration/telemetry/in-proxy-service-telemetry/>不使用 Mixer 生成 Istio 指标 [Alpha]</a></li></ul></li></ul></li><li role=treeitem aria-label=最佳实践><button aria-hidden=true></button><a title="设置和管理 Istio 服务网格的最佳实践。" href=/v1.5/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.5/zh/docs/ops/best-practices/deployment/>Deployment 最佳实践</a></li><li role=none><a role=treeitem title=避免网络或流量管理问题的配置最佳实践。 href=/v1.5/zh/docs/ops/best-practices/traffic-management/>流量管理最佳实践</a></li><li role=none><a role=treeitem title="使用 Istio 保护应用的最佳实践。" href=/v1.5/zh/docs/ops/best-practices/security/>安全最佳实践</a></li></ul></li><li role=treeitem aria-label=常见问题><button aria-hidden=true></button><a title="描述如何辨认和解决 Istio 中的常见问题。" href=/v1.5/zh/docs/ops/common-problems/>常见问题</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="定位常见的 Istio 流量管理和网络问题的技术。" href=/v1.5/zh/docs/ops/common-problems/network-issues/>流量管理问题</a></li><li role=none><a role=treeitem title="定位常见 Istio 认证、授权、安全相关问题的技巧。" href=/v1.5/zh/docs/ops/common-problems/security-issues/>安全问题</a></li><li role=none><a role=treeitem title="处理 Telemetry 收集问题。" href=/v1.5/zh/docs/ops/common-problems/observability-issues/>可观测性问题</a></li><li role=none><a role=treeitem title="解决 Istio 使用 Kubernetes Webhooks 进行 sidecar 自动注入的常见问题。" href=/v1.5/zh/docs/ops/common-problems/injection/>Sidecar 自动注入问题</a></li><li role=none><a role=treeitem title=如何解决配置验证的问题。 href=/v1.5/zh/docs/ops/common-problems/validation/>配置验证的问题</a></li></ul></li><li role=treeitem aria-label=诊断工具><button aria-hidden=true></button><a title="帮助解决 Istio 网格问题的工具和技术。" href=/v1.5/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.5/zh/docs/ops/diagnostic-tools/istioctl/>使用 Istioctl 命令行工具</a></li><li role=none><a role=treeitem title="描述诊断与流量管理相关的 Envoy 配置问题的工具和技术。" href=/v1.5/zh/docs/ops/diagnostic-tools/proxy-cmd/>调试 Envoy 和 Pilot</a></li><li role=none><a role=treeitem title="向您展示如何使用 istioctl describe 来验证您的网格中的 pod 的配置。" href=/v1.5/zh/docs/ops/diagnostic-tools/istioctl-describe/>通过 Istioctl Describe 理解您的网格</a></li><li role=none><a role=treeitem title="演示如何使用 istioctl analyze 来识别配置中的潜在问题。" href=/v1.5/zh/docs/ops/diagnostic-tools/istioctl-analyze/>使用 Istioctl Analyze 诊断配置</a></li><li role=none><a role=treeitem title="介绍如何使用 ControlZ 深入了解各个运行组件。" href=/v1.5/zh/docs/ops/diagnostic-tools/controlz/>组件自检</a></li><li role=none><a role=treeitem title=如何使用组件的级别日志来记录正在运行中的组件的行为。 href=/v1.5/zh/docs/ops/diagnostic-tools/component-logging/>组件日志记录</a></li></ul></li></ul></div></div><div class=card><button class="header dynamic" id=card162 title="参考部分包含详细的权威参考资料,如命令行选项、配置选项和 API 调用参数。" aria-controls=card162-body><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#reference"/></svg>参考</button><div class=body aria-labelledby=card162 role=region id=card162-body><ul role=tree aria-expanded=true aria-labelledby=card162><li role=treeitem aria-label=配置><button aria-hidden=true></button><a title=关于配置选项的详细信息。 href=/v1.5/zh/docs/reference/config/>配置</a><ul role=group aria-expanded=false><li role=none><a role=treeitem title="Configuration affecting the service mesh as a whole." href=/v1.5/zh/docs/reference/config/istio.mesh.v1alpha1/>Service Mesh</a></li><li role=none><a role=treeitem title="Configuration for Istio control plane installation through the Operator." href=/v1.5/zh/docs/reference/config/istio.operator.v1alpha12.pb/>Operator Installation</a></li><li role=none><a role=treeitem title="描述使用 Helm chart 安装 Istio 时的可选项。" href=/v1.5/zh/docs/reference/config/installation-options/>安装选项(Helm)</a></li><li role=none><a role=treeitem title="Configuration affecting Istio control plane installation version and shape." href=/v1.5/zh/docs/reference/config/istio.operator.v1alpha1/>IstioOperator Options</a></li><li role=none><a role=treeitem title="Resource annotations used by Istio." href=/v1.5/zh/docs/reference/config/annotations/>Resource Annotations</a></li><li role=treeitem aria-label=流量管理><button aria-hidden=true></button><a title="描述如何配置 HTTP/TCP 路由功能。" href=/v1.5/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.5/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.5/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.5/zh/docs/reference/config/networking/gateway/>Gateway</a></li><li role=none><a role=treeitem title="Configuration affecting label/content routing, sni routing, etc." href=/v1.5/zh/docs/reference/config/networking/virtual-service/>Virtual Service</a></li><li role=none><a role=treeitem title="Configuration affecting network reachability of a sidecar." href=/v1.5/zh/docs/reference/config/networking/sidecar/>Sidecar</a></li><li role=none><a role=treeitem title="Configuration affecting service registry." href=/v1.5/zh/docs/reference/config/networking/service-entry/>Service Entry</a></li></ul></li><li role=treeitem aria-label=Security><button aria-hidden=true></button><a title="如何配置 Istio 的安全功能。" href=/v1.5/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.5/zh/docs/reference/config/security/jwt/>JWTRule</a></li><li role=none><a role=treeitem title="Request authentication configuration for workloads." href=/v1.5/zh/docs/reference/config/security/request_authentication/>RequestAuthentication</a></li><li role=none><a role=treeitem title="Peer authentication configuration for workloads." href=/v1.5/zh/docs/reference/config/security/peer_authentication/>PeerAuthentication</a></li><li role=none><a role=treeitem title="Authentication policy for Istio services." href=/v1.5/zh/docs/reference/config/security/istio.authentication.v1alpha1/>Authentication Policy</a></li><li role=none><a role=treeitem title="Configuration for access control on workloads." href=/v1.5/zh/docs/reference/config/security/authorization-policy/>Authorization Policy</a></li><li role=none><a role=treeitem title=授权策略中支持的条件。 href=/v1.5/zh/docs/reference/config/security/conditions/>授权策略</a></li><li role=none><a role=treeitem title="Configuration for Role Based Access Control." href=/v1.5/zh/docs/reference/config/security/istio.rbac.v1alpha1/>RBAC (deprecated)</a></li><li role=none><a role=treeitem title=受支持的约束条件和属性。 href=/v1.5/zh/docs/reference/config/security/constraints-and-properties/>RBAC 约束和属性(不建议使用)</a></li></ul></li><li role=treeitem aria-label="Telemetry V2"><button aria-hidden=true></button><a title="Describes how to configure Istio telemetry V2." href=/v1.5/zh/docs/reference/config/telemetry/>Telemetry V2</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="Istio standard metrics exported by Istio telemetry." href=/v1.5/zh/docs/reference/config/telemetry/metrics/>Istio Standard Metrics</a></li><li role=none><a role=treeitem title="How to configure v2 metrics (experimental)." href=/v1.5/zh/docs/reference/config/telemetry/configurable_metrics/>Configurable Metrics (Experimental)</a></li><li role=none><a role=treeitem title="How to enable Telemetry V2 with Wasm runtime (experimental)." href=/v1.5/zh/docs/reference/config/telemetry/telemetry_v2_with_wasm/>Telemetry V2 with Wasm runtime (Experimental)</a></li></ul></li><li role=treeitem aria-label=策略和遥测><button aria-hidden=true></button><a title="描述如何配置 Istio 的策略和遥测功能。" href=/v1.5/zh/docs/reference/config/policy-and-telemetry/>策略和遥测</a><ul role=group aria-expanded=false><li role=none><a role=treeitem title="Configuration state for the Mixer client library." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/istio.mixer.v1.config.client/>Mixer Client</a></li><li role=none><a role=treeitem title="Describes the rules used to configure Mixer's policy and telemetry features." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/istio.policy.v1beta1/>Rules</a></li><li role=none><a role=treeitem title="描述 Istio 策略执行和遥测机制的配置模型。" href=/v1.5/zh/docs/reference/config/policy-and-telemetry/mixer-overview/>Mixer 配置模型</a></li><li role=none><a role=treeitem title=描述用于策略和控制的基本属性词汇表。 href=/v1.5/zh/docs/reference/config/policy-and-telemetry/attribute-vocabulary/>属性词汇</a></li><li role=none><a role=treeitem title="Mixer 配置表达式语言手册。" href=/v1.5/zh/docs/reference/config/policy-and-telemetry/expression-language/>表达式语言</a></li><li role=treeitem aria-label=适配器><button aria-hidden=true></button><a title="Mixer 适配器能够让 Istio 连接各种基础设施后端以完成类似指标和日志这样的功能。" href=/v1.5/zh/docs/reference/config/policy-and-telemetry/adapters/>适配器</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="Adapter to deliver metrics to Apache SkyWalking." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/adapters/apache-skywalking/>Apache SkyWalking</a></li><li role=none><a role=treeitem title="Adapter for Apigee's distributed policy checks and analytics." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/adapters/apigee/>Apigee</a></li><li role=none><a role=treeitem title="Adapter to enforce authentication and authorization policies for web apps and APIs." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/adapters/app-identity-access-adapter/>App Identity and Access</a></li><li role=none><a role=treeitem title="Adapter for circonus.com's monitoring solution." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/adapters/circonus/>Circonus</a></li><li role=none><a role=treeitem title="Adapter for cloudmonitor metrics." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/adapters/cloudmonitor/>CloudMonitor</a></li><li role=none><a role=treeitem title="Adapter for cloudwatch metrics." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/adapters/cloudwatch/>CloudWatch</a></li><li role=none><a role=treeitem title="Adapter to deliver metrics to a dogstatsd agent for delivery to DataDog." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/adapters/datadog/>Datadog</a></li><li role=none><a role=treeitem title="Adapter to deliver tracing data to Zipkin." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/adapters/zipkin/>Zipkin</a></li><li role=none><a role=treeitem title="Adapter that always returns a precondition denial." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/adapters/denier/>Denier</a></li><li role=none><a role=treeitem title="Adapter that delivers logs to a Fluentd daemon." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/adapters/fluentd/>Fluentd</a></li><li role=none><a role=treeitem title="Adapter that extracts information from a Kubernetes environment." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/adapters/kubernetesenv/>Kubernetes Env</a></li><li role=none><a role=treeitem title="Adapter that performs whitelist or blacklist checks." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/adapters/list/>List</a></li><li role=none><a role=treeitem title="Adapter for a simple in-memory quota management system." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/adapters/memquota/>Memory quota</a></li><li role=none><a role=treeitem title="An Istio Mixer adapter to send telemetry data to New Relic." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/adapters/newrelic/>New Relic</a></li><li role=none><a role=treeitem title="Adapter to deliver metrics to Wavefront by VMware." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/adapters/wavefront/>Wavefront by VMware</a></li><li role=none><a role=treeitem title="Adapter to locally output logs and metrics." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/adapters/stdio/>Stdio</a></li><li role=none><a role=treeitem title="Adapter to deliver metrics to a StatsD backend." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/adapters/statsd/>StatsD</a></li><li role=none><a role=treeitem title="Adapter to deliver logs, metrics, and traces to Stackdriver." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/adapters/stackdriver/>Stackdriver</a></li><li role=none><a role=treeitem title="Adapter to deliver logs and metrics to Papertrail and AppOptics backends." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/adapters/solarwinds/>SolarWinds</a></li><li role=none><a role=treeitem title="Adapter for a Redis-based quota management system." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/adapters/redisquota/>Redis Quota</a></li><li role=none><a role=treeitem title="Adapter that exposes Istio metrics for ingestion by a Prometheus harvester." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/adapters/prometheus/>Prometheus</a></li><li role=none><a role=treeitem title="Adapter that implements an Open Policy Agent engine." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/adapters/opa/>OPA</a></li></ul></li><li role=none><a role=treeitem title="通过 Mixer 从 Istio 导出的默认监控指标。" href=/v1.5/zh/docs/reference/config/policy-and-telemetry/metrics/>默认监控指标</a></li><li role=treeitem aria-label=模板><button aria-hidden=true></button><a title="Mixer 模板用于将数据发送到各个适配器。" href=/v1.5/zh/docs/reference/config/policy-and-telemetry/templates/>模板</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="The Analytics template is used to dispatch runtime telemetry to Apigee." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/templates/analytics/>Analytics</a></li><li role=none><a role=treeitem title="A template that represents a single API key." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/templates/apikey/>API Key</a></li><li role=none><a role=treeitem title="A template used to represent an access control query." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/templates/authorization/>Authorization</a></li><li role=none><a role=treeitem title="A template that carries no data, useful for testing." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/templates/checknothing/>Check Nothing</a></li><li role=none><a role=treeitem title="A template designed to report observed communication edges between workloads." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/templates/edge/>Edge</a></li><li role=none><a role=treeitem title="A template that is used to control the production of Kubernetes-specific attributes." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/templates/kubernetes/>Kubernetes</a></li><li role=none><a role=treeitem title="A template designed to let you perform list checking operations." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/templates/listentry/>List Entry</a></li><li role=none><a role=treeitem title="A template that represents a single runtime log entry." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/templates/logentry/>Log Entry</a></li><li role=none><a role=treeitem title="A template that represents a single runtime metric." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/templates/metric/>Metric</a></li><li role=none><a role=treeitem title="A template that represents an individual span within a distributed trace." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/templates/tracespan/>Trace Span</a></li><li role=none><a role=treeitem title="A template that carries no data, useful for testing." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/templates/reportnothing/>Report Nothing</a></li><li role=none><a role=treeitem title="A template that represents a quota allocation request." href=/v1.5/zh/docs/reference/config/policy-and-telemetry/templates/quota/>Quota</a></li></ul></li></ul></li><li role=treeitem aria-label=配置分析消息><button aria-hidden=true></button><a title=记录配置分析期间产生的各个错误和警告消息。 href=/v1.5/zh/docs/reference/config/analysis/>配置分析消息</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem href=/v1.5/zh/docs/reference/config/analysis/message-format/>Analyzer Message Format</a></li><li role=none><a role=treeitem href=/v1.5/zh/docs/reference/config/analysis/ist0109/>ConflictingMeshGatewayVirtualServiceHosts</a></li><li role=none><a role=treeitem href=/v1.5/zh/docs/reference/config/analysis/ist0110/>ConflictingSidecarWorkloadSelectors</a></li><li role=none><a role=treeitem href=/v1.5/zh/docs/reference/config/analysis/ist0002/>Deprecated</a></li><li role=none><a role=treeitem href=/v1.5/zh/docs/reference/config/analysis/ist0104/>GatewayPortNotOnWorkload</a></li><li role=none><a role=treeitem href=/v1.5/zh/docs/reference/config/analysis/ist0001/>InternalError</a></li><li role=none><a role=treeitem href=/v1.5/zh/docs/reference/config/analysis/ist0105/>IstioProxyImageMismatch</a></li><li role=none><a role=treeitem href=/v1.5/zh/docs/reference/config/analysis/ist0119/>JwtFailureDueToInvalidServicePortPrefix</a></li><li role=none><a role=treeitem href=/v1.5/zh/docs/reference/config/analysis/ist0107/>MisplacedAnnotation</a></li><li role=none><a role=treeitem href=/v1.5/zh/docs/reference/config/analysis/ist0113/>MTLSPolicyConflict</a></li><li role=none><a role=treeitem href=/v1.5/zh/docs/reference/config/analysis/ist0111/>MultipleSidecarsWithoutWorkloadSelectors</a></li><li role=none><a role=treeitem href=/v1.5/zh/docs/reference/config/analysis/ist0102/>NamespaceNotInjected</a></li><li role=none><a role=treeitem href=/v1.5/zh/docs/reference/config/analysis/ist0106/>SchemaValidationError</a></li><li role=none><a role=treeitem href=/v1.5/zh/docs/reference/config/analysis/ist0112/>VirtualServiceDestinationPortSelectorRequired</a></li><li role=none><a role=treeitem href=/v1.5/zh/docs/reference/config/analysis/ist0108/>UnknownAnnotation</a></li><li role=none><a role=treeitem href=/v1.5/zh/docs/reference/config/analysis/ist0101/>ReferencedResourceNotFound</a></li><li role=none><a role=treeitem href=/v1.5/zh/docs/reference/config/analysis/ist0118/>PortNameIsNotUnderNamingConvention</a></li><li role=none><a role=treeitem href=/v1.5/zh/docs/reference/config/analysis/ist0103/>PodMissingProxy</a></li></ul></li></ul></li><li role=treeitem aria-label=命令><button aria-hidden=true></button><a title="描述 Istio 命令和工具的用法及选项。" href=/v1.5/zh/docs/reference/commands/>命令</a><ul role=group aria-expanded=false class=leaf-section><li role=none><a role=treeitem title="Galley provides configuration management services for Istio." href=/v1.5/zh/docs/reference/commands/galley/>galley</a></li><li role=none><a role=treeitem title="Istio Certificate Authority (CA)." href=/v1.5/zh/docs/reference/commands/istio_ca/>istio_ca</a></li><li role=none><a role=treeitem title="Istio control interface." href=/v1.5/zh/docs/reference/commands/istioctl/>istioctl</a></li><li role=none><a role=treeitem title="Mixer is Istio's abstraction on top of infrastructure backends." href=/v1.5/zh/docs/reference/commands/mixs/>mixs</a></li><li role=none><a role=treeitem title="Istio security per-node agent." href=/v1.5/zh/docs/reference/commands/node_agent/>node_agent</a></li><li role=none><a role=treeitem title="Kubernetes webhook for automatic Istio sidecar injection." href=/v1.5/zh/docs/reference/commands/sidecar-injector/>sidecar-injector</a></li><li role=none><a role=treeitem title="The Istio operator." href=/v1.5/zh/docs/reference/commands/operator/>operator</a></li><li role=none><a role=treeitem title="Istio Pilot." href=/v1.5/zh/docs/reference/commands/pilot-discovery/>pilot-discovery</a></li><li role=none><a role=treeitem title="Istio Pilot agent." href=/v1.5/zh/docs/reference/commands/pilot-agent/>pilot-agent</a></li></ul></li><li role=none><a role=treeitem title="Istio 常用术语的词汇表。" href=/v1.5/zh/docs/reference/glossary/>术语表</a></li></ul></div></div></div></nav></div><div class=article-container><button tabindex=-1 id=sidebar-toggler title=折叠导航栏><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#pull"/></svg></button><nav aria-label=Breadcrumb><ol><li><a href=/v1.5/zh/ title=用于连接、保护、控制和观测服务。>Istio</a></li><li><a href=/v1.5/zh/docs/ title="了解如何部署、使用和运维 Istio。">文档</a></li><li><a href=/v1.5/zh/docs/setup/ title="关于如何在 Kubernetes 集群中安装 Istio 控制平面和添加虚拟机到 mesh 中的说明。">安装</a></li><li><a href=/v1.5/zh/docs/setup/install/ title=选择最适合您的需求和平台的指南。>安装</a></li><li><a href=/v1.5/zh/docs/setup/install/multicluster/ title="配置跨越多个 Kubernetes 集群的 Istio 服务网格。">多集群安装</a></li><li>共享控制平面(单一网络)</li></ol></nav><article aria-labelledby=title><div class=title-area><div style=width:100%><h1 id=title>共享控制平面(单一网络)</h1><p class=byline><span title="1015 字"><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#clock"/></svg><span> </span>阅读大约需要 5 分钟</span></p></div></div><nav class=toc-inlined aria-label="Table of Contents"><div><hr><ol><li role=none aria-label=前提条件><a href=#prerequisites>前提条件</a><li role=none aria-label=部署本地控制平面><a href=#deploy-the-local-control-plane>部署本地控制平面</a><ol><li role=none aria-label=设置环境变量><a href=#environment-var>设置环境变量</a></ol></li><li role=none aria-label="安装 Istio 远程组件"><a href=#install-the-Istio-remote>安装 Istio 远程组件</a><ol><li role=none aria-label=安装配置参数><a href=#installation-configuration-parameters>安装配置参数</a></ol></li><li role=none aria-label=为远程集群创建配置文件><a href=#kubeconfig>为远程集群创建配置文件</a><li role=none aria-label=实例化凭证><a href=#credentials>实例化凭证</a><li role=none aria-label=卸载远程集群><a href=#uninstalling-the-remote-cluster>卸载远程集群</a><li role=none aria-label="手动 sidecar 注入示例"><a href=#manual-sidecar>手动 sidecar 注入示例</a><ol><li role=none aria-label="手动将 sidecars 注入到应用程序清单"><a href=#manually-inject-the-sidecars-into-the-application-manifests>手动将 sidecars 注入到应用程序清单</a></ol></li><li role=none aria-label=从不同的集群中访问服务><a href=#access-services-from-different-clusters>从不同的集群中访问服务</a><li role=none aria-label=部署注意事项><a href=#deployment-considerations>部署注意事项</a><ol><li role=none aria-label="更新 DNS 条目"><a href=#update-the-DNS-entries>更新 DNS 条目</a><li role=none aria-label=使用负载均衡服务类型><a href=#use-load-balance-service-type>使用负载均衡服务类型</a><li role=none aria-label="通过网关暴露这些 Istio 服务"><a href=#expose-the-Istio-services-via-a-gateway>通过网关暴露这些 Istio 服务</a></ol></li><li role=none aria-label=安全性><a href=#security>安全性</a><ol><li role=none aria-label=控制平面安全性><a href=#control-plane-security>控制平面安全性</a><li role=none aria-label="应用 pods 间的双向 TLS"><a href=#mutual-TLS-between-application-pods>应用 pods 间的双向 TLS</a><li role=none aria-label=部署示例><a href=#example-deployment>部署示例</a><ol><li role=none aria-label=主集群:部署控制平面集群><a href=#primary-cluster-deploy-the-control-plane-cluster>主集群:部署控制平面集群</a><li role=none aria-label="远程集群:部署 Istio 组件"><a href=#remote-cluster-deploy-Istio-components>远程集群:部署 Istio 组件</a></ol></li><li role=none aria-label=主集群:实例化凭证><a href=#primary-cluster-instantiate-credentials>主集群:实例化凭证</a><li role=none aria-label=恭喜><a href=#congratulations>恭喜</a></ol></li><li role=none aria-label=相关内容><a href=#see-also>相关内容</a></li></ol><hr></div></nav><p>按照该指南安装一个 Istio <a href=/v1.5/zh/docs/ops/deployment/deployment-models/#multiple-clusters>多集群服务网格</a>以让每个 Kubernetes 集群的服务和应用能够将他们的内部 Kubernetes 网络暴露至其它集群。</p><p>在这个配置中,多个 Kubernetes 集群运行一份可以连接到一个共享 Istio <a href=/v1.5/zh/docs/ops/deployment/deployment-models/#control-plane-models>控制平面</a>的远程配置。
|
||
一旦一个或多个远程 Kubernetes 集群连接到该 Istio 控制平面,Envoy 就会形成一个跨多集群的网格网络。</p><figure style=width:80%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:60.01468418364452%><a data-skipendnotes=true href=/v1.5/zh/docs/setup/install/multicluster/shared-vpn/multicluster-with-vpn.svg title="跨多 Kubernetes 集群的 Istio 网格可通过 VPN 直接访问远程 Pod"><img class=element-to-stretch src=/v1.5/zh/docs/setup/install/multicluster/shared-vpn/multicluster-with-vpn.svg alt="跨多 Kubernetes 集群的 Istio 网格可通过 VPN 直接访问远程 Pod"></a></div><figcaption>跨多 Kubernetes 集群的 Istio 网格可通过 VPN 直接访问远程 Pod</figcaption></figure><h2 id=prerequisites>前提条件</h2><ul><li><p>两个或更多运行受支持的 Kubernetes 版本(1.14, 1.15, 1.16)的集群。</p></li><li><p>能够在多集群中的<strong>一个</strong>上<a href=/v1.5/zh/docs/setup/install/istioctl/>部署 Istio 控制平面</a>。</p></li><li><p>满足下列要求的 RFC1918 网络、VPN、或其它更高级的网络技术:</p><ul><li><p>各集群的 Pod CIDR 范围和服务 CIDR 范围在多群集环境中必须唯一,并且不能重叠。</p></li><li><p>每个集群中的所有 pod CIDRs 必须互相可路由。</p></li><li><p>所有 Kubernetes 控制平面 API 服务必须互相可路由。</p></li></ul></li></ul><p>本指南介绍如何使用 Istio 提供的远程配置文件安装多群集 Istio 拓扑。</p><h2 id=deploy-the-local-control-plane>部署本地控制平面</h2><p>在 Kubernetes 集群<strong>之一</strong>上<a href=/v1.5/zh/docs/setup/install/istioctl/>安装 Istio 控制平面</a>。</p><h3 id=environment-var>设置环境变量</h3><p>在执行本节中的步骤之前,请等待 Istio 控制平面完成初始化。</p><p>您必须在 Istio 控制平面集群上执行这些操作,以获取 Istio 控制平面服务端点,例如,Pilot 和 Policy Pod IP 端点。</p><p>运行以下命令设置环境变量:</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ export PILOT_POD_IP=$(kubectl -n istio-system get pod -l istio=pilot -o jsonpath='{.items[0].status.podIP}')
|
||
$ export POLICY_POD_IP=$(kubectl -n istio-system get pod -l istio-mixer-type=policy -o jsonpath='{.items[0].status.podIP}')
|
||
$ export TELEMETRY_POD_IP=$(kubectl -n istio-system get pod -l istio-mixer-type=telemetry -o jsonpath='{.items[0].status.podIP}')
|
||
</code></pre><p>通常,在远程集群上自动 sidecar 注入已经启用。
|
||
要执行手动 sidecar 注入,请参考<a href=#manual-sidecar>手动 sidecar 示例</a>。</p><h2 id=install-the-Istio-remote>安装 Istio 远程组件</h2><p>您必须在每个远程 Kubernetes 集群上都部署 <code>istio-remote</code> 组件。
|
||
您可以用下面两种方式之一来安装该组件:</p><ol><li><p>在远程集群上使用下列命令来安装 Istio 控制平面服务端点:</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ istioctl manifest apply \
|
||
--set profile=remote \
|
||
--set values.global.controlPlaneSecurityEnabled=false \
|
||
--set values.global.createRemoteSvcEndpoints=true \
|
||
--set values.global.remotePilotCreateSvcEndpoint=true \
|
||
--set values.global.remotePilotAddress=${PILOT_POD_IP} \
|
||
--set values.global.remotePolicyAddress=${POLICY_POD_IP} \
|
||
--set values.global.remoteTelemetryAddress=${TELEMETRY_POD_IP} \
|
||
--set gateways.enabled=false \
|
||
--set autoInjection.enabled=true
|
||
</code></pre><div><aside class="callout tip"><div class=type><svg class="large-icon"><use xlink:href="/v1.5/img/icons.svg#callout-tip"/></svg></div><div class=content>所有集群的 Istio 组件都必须具有相同的命名空间。
|
||
只要所有集群中所有 Istio 组件的命名空间都相同,就可以在主集群上覆盖 <code>istio-system</code> 名称。</div></aside></div></li><li><p>下列命令示例标记了 <code>default</code> 命名空间。使用类似的命令标记所有需要自动进行 sidecar 注入的远程集群的命名空间。</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ kubectl label namespace default istio-injection=enabled
|
||
</code></pre><p>为所有需要设置自动 sidecar 注入的 Kubernetes 命名空间重复以上命令。</p></li></ol><h3 id=installation-configuration-parameters>安装配置参数</h3><p>你必须配置远程集群的 sidecar 与 Istio 控制平面交互,包括在 <code>istio-remote</code> 配置文件中的以下端点:<code>pilot</code>、<code>policy</code>、<code>telemetry</code>和跟踪服务。
|
||
该配置文件默认在远程集群中启用自动 sidecar 注入。
|
||
您可以通过单独的设置禁用自动 sidecar 注入。</p><p>下列表格展示了 <code>istioctl</code> 针对远程集群的配置值:</p><table><thead><tr><th>安装设置</th><th>可选值</th><th>默认</th><th>值作用</th></tr></thead><tbody><tr><td><code>values.global.remotePilotAddress</code></td><td>有效的 IP 地址或主机名</td><td>None</td><td>指定 Istio 控制平面的 pilot Pod IP 地址或远程集群 DNS 可解析的主机名</td></tr><tr><td><code>values.global.remotePolicyAddress</code></td><td>有效的 IP 地址或主机名</td><td>None</td><td>指定 Istio 控制平面的 policy Pod IP 地址或远程集群 DNS 可解析的主机名</td></tr><tr><td><code>values.global.remoteTelemetryAddress</code></td><td>有效的 IP 地址或主机名</td><td>None</td><td>指定 Istio 控制平面的 telemetry Pod IP 地址或远程集群 DNS 可解析的主机名</td></tr><tr><td><code>values.sidecarInjectorWebhook.enabled</code></td><td>true, false</td><td>true</td><td>指定是否在远程集群上启用自动 sidecar 注入</td></tr><tr><td><code>values.global.remotePilotCreateSvcEndpoint</code></td><td>true, false</td><td>false</td><td>如果设置,将使用 <code>remotePilotAddress</code> IP 创建用于 <code>istio-pilot</code> 的无选择器的服务和端点,以确保 <code>istio-pilot.<namespace></code> 在远程集群上可通过 DNS 解析。</td></tr><tr><td><code>values.global.createRemoteSvcEndpoints</code></td><td>true, false</td><td>false</td><td>如果设置,<code>istio-pilot</code>、<code>istio-telemetry</code> 和 <code>istio-policy</code> 的 selector-less 服务和端点将用相应的远程 IP:<code>remotePilotAddress</code>、<code>remoteTelmetryAddress</code> 和 <code>remotePolicyAddress</code> 分别创建,这样确保在远程集群中服务名可以通过 DNS 解析。</td></tr></tbody></table><h2 id=kubeconfig>为远程集群创建配置文件</h2><p>Istio 控制平面需要访问网格中的所有集群以发现服务、端点和 pod 属性。
|
||
下列步骤描述了如何通过远程集群为 Istio 控制平面创建 <code>kubeconfig</code> 配置文件。</p><p>在每个远程集群上执行这些步骤以将集群加入服务网格。这些步骤需要具有远程集群的 <code>cluster-admin</code> 用户访问权限。</p><ol><li><p>用以下命令设置为 <code>istio-reader-service-account</code> 服务账号构建 <code>kubeconfig</code> 文件所需的环境变量:</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ export WORK_DIR=$(pwd)
|
||
$ CLUSTER_NAME=$(kubectl config view --minify=true -o jsonpath='{.clusters[].name}')
|
||
$ export KUBECFG_FILE=${WORK_DIR}/${CLUSTER_NAME}
|
||
$ SERVER=$(kubectl config view --minify=true -o jsonpath='{.clusters[].cluster.server}')
|
||
$ NAMESPACE=istio-system
|
||
$ SERVICE_ACCOUNT=istio-reader-service-account
|
||
$ SECRET_NAME=$(kubectl get sa ${SERVICE_ACCOUNT} -n ${NAMESPACE} -o jsonpath='{.secrets[].name}')
|
||
$ CA_DATA=$(kubectl get secret ${SECRET_NAME} -n ${NAMESPACE} -o jsonpath="{.data['ca\.crt']}")
|
||
$ TOKEN=$(kubectl get secret ${SECRET_NAME} -n ${NAMESPACE} -o jsonpath="{.data['token']}" | base64 --decode)
|
||
</code></pre><div><aside class="callout tip"><div class=type><svg class="large-icon"><use xlink:href="/v1.5/img/icons.svg#callout-tip"/></svg></div><div class=content>在许多系统上,<code>openssl enc -d -base64 -A</code> 可以替代 <code>base64 --decode</code>。</div></aside></div></li><li><p>在工作目录中,用以下命令创建 <code>istio-reader-service-account</code> 服务账号对应的 <code>kubeconfig</code> 文件:</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ cat <<EOF > ${KUBECFG_FILE}
|
||
apiVersion: v1
|
||
clusters:
|
||
- cluster:
|
||
certificate-authority-data: ${CA_DATA}
|
||
server: ${SERVER}
|
||
name: ${CLUSTER_NAME}
|
||
contexts:
|
||
- context:
|
||
cluster: ${CLUSTER_NAME}
|
||
user: ${CLUSTER_NAME}
|
||
name: ${CLUSTER_NAME}
|
||
current-context: ${CLUSTER_NAME}
|
||
kind: Config
|
||
preferences: {}
|
||
users:
|
||
- name: ${CLUSTER_NAME}
|
||
user:
|
||
token: ${TOKEN}
|
||
EOF
|
||
</code></pre></li><li><p><em>(可选)</em> 创建环境变量文件以创建远程集群的 secret:</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ cat <<EOF > remote_cluster_env_vars
|
||
export CLUSTER_NAME=${CLUSTER_NAME}
|
||
export KUBECFG_FILE=${KUBECFG_FILE}
|
||
export NAMESPACE=${NAMESPACE}
|
||
EOF
|
||
</code></pre></li></ol><p>至此,您已在当前目录中创建了远程集群的 <code>kubeconfig</code> 文件。
|
||
<code>kubeconfig</code> 文件的文件名与原始集群名称相同。</p><h2 id=credentials>实例化凭证</h2><p>在运行 Istio 控制平面的集群上执行这一步骤。
|
||
该步骤使用了来自<a href=#kubeconfig>上一节</a>的 <code>WORK_DIR</code>、<code>CLUSTER_NAME</code> 和 <code>NAMESPACE</code> 环境变量以及为远程集群的 secret 创建的文件。</p><p>如果您已经为远程集群的 secret 创建了环境变量文件,运行以下命令加载该文件:</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ source remote_cluster_env_vars
|
||
</code></pre><p>您可以将 Istio 安装到不同的命名空间。
|
||
本步骤使用了 <code>istio-system</code> 命名空间。</p><div><aside class="callout warning"><div class=type><svg class="large-icon"><use xlink:href="/v1.5/img/icons.svg#callout-warning"/></svg></div><div class=content>不要为运行 Istio 控制平面的本地集群存储和标记 secrets。
|
||
Istio 始终可以感知到本地集群的 Kubernetes 凭据。</div></aside></div><p>创建一个 secret 并为每个远程集群正确标记:</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ kubectl create secret generic ${CLUSTER_NAME} --from-file ${KUBECFG_FILE} -n ${NAMESPACE}
|
||
$ kubectl label secret ${CLUSTER_NAME} istio/multiCluster=true -n ${NAMESPACE}
|
||
</code></pre><div><aside class="callout warning"><div class=type><svg class="large-icon"><use xlink:href="/v1.5/img/icons.svg#callout-warning"/></svg></div><div class=content>Kubernetes secret 数据密钥必须符合 <code>DNS-1123 subdomain</code> <a href=https://tools.ietf.org/html/rfc1123#page-13>格式</a>。
|
||
例如,文件名不能含有下划线。
|
||
只需更改文件名使其符合格式,即可解决文件名的任何问题。</div></aside></div><h2 id=uninstalling-the-remote-cluster>卸载远程集群</h2><p>运行下列命令以卸载远程集群:</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ istioctl manifest generate \
|
||
--set profile=remote \
|
||
--set values.global.controlPlaneSecurityEnabled=false \
|
||
--set values.global.createRemoteSvcEndpoints=true \
|
||
--set values.global.remotePilotCreateSvcEndpoint=true \
|
||
--set values.global.remotePilotAddress=${PILOT_POD_IP} \
|
||
--set values.global.remotePolicyAddress=${POLICY_POD_IP} \
|
||
--set values.global.remoteTelemetryAddress=${TELEMETRY_POD_IP} \
|
||
--set gateways.enabled=false \
|
||
--set autoInjection.enabled=true | kubectl delete -f -
|
||
</code></pre><h2 id=manual-sidecar>手动 sidecar 注入示例</h2><p>下列例子展示了如何使用 <code>istioctl manifest</code> 命令来为禁用自动 sidecar 注入的远程集群生成清单。
|
||
另外,这个例子还展示了如何通过 <a href=/v1.5/zh/docs/reference/commands/istioctl/#istioctl-kube-inject><code>istioctl kube-inject</code></a> 命令使用远程集群的 <code>configmaps</code> 来为远程集群生成任意应用的清单。</p><p>对远程集群执行下列步骤。</p><p>在开始之前,请按照<a href=#environment-var>设置环境变量部分</a>中的说明设置端点 IP 环境变量。</p><ol><li><p>安装 Istio 远程配置文件:</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ istioctl manifest apply \
|
||
--set profile=remote \
|
||
--set values.global.controlPlaneSecurityEnabled=false \
|
||
--set values.global.createRemoteSvcEndpoints=true \
|
||
--set values.global.remotePilotCreateSvcEndpoint=true \
|
||
--set values.global.remotePilotAddress=${PILOT_POD_IP} \
|
||
--set values.global.remotePolicyAddress=${POLICY_POD_IP} \
|
||
--set values.global.remoteTelemetryAddress=${TELEMETRY_POD_IP} \
|
||
--set gateways.enabled=false \
|
||
--set autoInjection.enabled=false
|
||
</code></pre></li><li><p>为每个远程集群<a href=#kubeconfig>生成</a> <code>kubeconfig</code> 配置文件。</p></li><li><p>为每个远程集群<a href=#credentials>实例化凭证</a>。</p></li></ol><h3 id=manually-inject-the-sidecars-into-the-application-manifests>手动将 sidecars 注入到应用程序清单</h3><p>以下示例 <code>istioctl</code> 命令将 sidecar 注入到应用程序清单中。
|
||
在为远程集群设置了 <code>kubeconfig</code> 上下文的 shell 中运行以下命令。</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ ORIGINAL_SVC_MANIFEST=mysvc-v1.yaml
|
||
$ istioctl kube-inject --injectConfigMapName istio-sidecar-injector --meshConfigMapName istio -f ${ORIGINAL_SVC_MANIFEST} | kubectl apply -f -
|
||
</code></pre><h2 id=access-services-from-different-clusters>从不同的集群中访问服务</h2><p>Kubernetes 基于集群解析 DNS。
|
||
由于 DNS 解析与集群有关,因此无论服务端点的位置在哪,您都必须在运行客户端的每个集群中定义服务对象。
|
||
为确保这种情况,请使用 <code>kubectl</code> 将服务对象复制到每个集群。
|
||
复制可确保 Kubernetes 可以解析任何集群中的服务名称。
|
||
由于服务对象是在命名空间中定义的,如果该命名空间不存在,您必须定义它,并将其包含在所有集群的服务定义中。</p><h2 id=deployment-considerations>部署注意事项</h2><p>前面的步骤提供了一个简单且按部就班的部署多集群环境的指导。
|
||
一个生产环境需要更多的步骤或更复杂的部署选项。
|
||
本节收集 Istio 服务的端点 IPs 并使用它们来调用 <code>istioctl</code>。
|
||
这个过程会在远程集群上创建 Istio 服务。
|
||
作为在远程集群中创建那些服务和端口的一部分,Kubernetes 会往 <code>kube-dns</code> 配置对象中添加 DNS 条目。</p><p>这让远程集群上的 <code>kube-dns</code> 配置对象可以为那些远程集群中的所有 Envoy sidecars 解析 Istio 服务名。
|
||
因为 Kubernetes pods 没有固定的 IPs,控制平面中的任意 Istio 服务 pod 的重启都会导致它的端点变化。
|
||
因此,任何从远程集群到那个端点的连接都会断开。
|
||
这个行为记录在 <a href=https://github.com/istio/istio/issues/4822>Istio 问题 #4822</a>。</p><p>有几个选项可以避免或解决这个情况。本节概述了这些选项:</p><ul><li>更新 DNS 条目</li><li>使用负载均衡服务类型</li><li>通过网关暴露这些 Istio 服务</li></ul><h3 id=update-the-DNS-entries>更新 DNS 条目</h3><p>本地 Istio 控制平面发生任何故障或重新启动时,必须使用 Istio 服务的正确端点映射更新远程集群上的 <code>kube-dns</code>。
|
||
有许多方法可以做到这一点。
|
||
最明显的是在控制平面集群上的 Istio 服务重新启动后,在远程集群中重新运行 <code>istioctl</code> 命令。</p><h3 id=use-load-balance-service-type>使用负载均衡服务类型</h3><p>在 Kubernetes 中,您可以声明一个服务的服务类型为 <code>LoadBalancer</code>。
|
||
更多信息请参考 Kubernetes 文档的<a href=https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types>服务类型</a>。</p><p>Pod 重启问题的一个简单的解决方案就是为 Istio 服务使用负载均衡器。
|
||
然后,您可以使用负载均衡器的 IPs 作为 Istio 服务的端点 IPs 来配置远程集群。
|
||
您可能需要下列 Istio 服务的负载均衡器 IPs:</p><ul><li><code>istio-pilot</code></li><li><code>istio-telemetry</code></li><li><code>istio-policy</code></li></ul><p>目前,Istio 安装没有提供用于为 Istio 服务指定服务类型的选项。
|
||
您可以在 Istio 清单中手动指定服务类型。</p><h3 id=expose-the-Istio-services-via-a-gateway>通过网关暴露这些 Istio 服务</h3><p>这个方法使用了 Istio ingress 网关功能。
|
||
远程集群需要 <code>istio-pilot</code>、<code>istio-telemetry</code> 和 <code>istio-policy</code> 服务指向 Istio ingress 网关的负载均衡器 IP。
|
||
然后,所有的服务指向相同的 IP。
|
||
您必须接着创建 destination rules 以在 ingress 网关的主集群中访问到对应的 Istio 服务。</p><p>此方法提供了两种选择:</p><ul><li><p>重用提供的清单所创建的默认 Istio ingress 网关。您只需要添加正确的 destination rules。</p></li><li><p>为多集群创建另外一个 Istio ingress 网关。</p></li></ul><h2 id=security>安全性</h2><p>Istio 支持在控制平面组件之间以及注入到应用的 pods 的 sidecar 之间部署双向 TLS。</p><h3 id=control-plane-security>控制平面安全性</h3><p>按照这些步骤启用控制平面安全性:</p><ol><li><p>部署 Istio 控制平面集群需要:</p><ul><li><p>启用控制平面安全性。</p></li><li><p>禁用 <code>citadel</code> 证书自签名。</p></li><li><p>Istio 控制平面命名空间中具有<a href=/v1.5/zh/docs/tasks/security/citadel-config/plugin-ca-cert/#plugging-in-the-existing-certificate-and-key>证书颁发机构(CA)证书</a>的名为 <code>cacerts</code> 的 secret。</p></li></ul></li><li><p>部署 Istio 远程集群需要:</p><ul><li><p>启用控制平面安全性。</p></li><li><p>禁用 <code>citadel</code> 证书自签名。</p></li><li><p>Istio 控制平面命名空间中具有 <a href=/v1.5/zh/docs/tasks/security/citadel-config/plugin-ca-cert/#plugging-in-the-existing-certificate-and-key>CA 证书</a>的名为 <code>cacerts</code> 的 secret。
|
||
主集群的证书颁发机构(CA)或根 CA 必须也为远程集群签名 CA 证书。</p></li><li><p>Istio pilot 服务主机名可被 DNS 解析。
|
||
DNS 解析是必需的,因为 Istio 将 sidecar 配置为使用 <code>istio-pilot.<namespace></code> 主题名称格式来验证证书主题名称。</p></li><li><p>设置控制平面 IPs 或可解析的主机名。</p></li></ul></li></ol><h3 id=mutual-TLS-between-application-pods>应用 pods 间的双向 TLS</h3><p>按照这些步骤以为所有应用 pods 启用双向 TLS:</p><ol><li><p>部署 Istio 控制平面集群需要:</p><ul><li><p>启用全局双向 TLS。</p></li><li><p>禁用 Citadel 证书自签名。</p></li><li><p>Istio 控制平面命名空间中具有 <a href=/v1.5/zh/docs/tasks/security/citadel-config/plugin-ca-cert/#plugging-in-the-existing-certificate-and-key>CA 证书</a>的名为 <code>cacerts</code> 的 secret。</p></li></ul></li><li><p>部署 Istio 远程集群需要:</p><ul><li><p>启用全局双向 TLS。</p></li><li><p>禁用 Citadel 证书自签名。</p></li><li><p>Istio 控制平面命名空间中具有 <a href=/v1.5/zh/docs/tasks/security/citadel-config/plugin-ca-cert/#plugging-in-the-existing-certificate-and-key>CA 证书</a>的名为 <code>cacerts</code> 的 secret。
|
||
主集群的 CA 或根 CA 必须也为远程集群签名 CA 证书。</p></li></ul></li></ol><div><aside class="callout tip"><div class=type><svg class="large-icon"><use xlink:href="/v1.5/img/icons.svg#callout-tip"/></svg></div><div class=content>对于控制平面安全性和应用 pod 安全性步骤,CA 证书的步骤相同。</div></aside></div><h3 id=example-deployment>部署示例</h3><p>这个示例过程将在同时启用控制平面双向 TLS 和应用 pod 双向 TLS 的情况下安装 Istio。
|
||
该过程用无选择器的服务和端点来设置远程集群。
|
||
Istio Pilot 用该服务和端点以让远程 sidecars 可以通过 Istio 的本地 Kubernetes DNS 解析 <code>istio-pilot.istio-system</code> 主机名。</p><h4 id=primary-cluster-deploy-the-control-plane-cluster>主集群:部署控制平面集群</h4><ol><li><p>使用 <code>istio-system</code> 命名空间中的 Istio 证书示例创建 <code>cacerts</code> secret:</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ kubectl create ns istio-system
|
||
$ kubectl create secret generic cacerts -n istio-system --from-file=samples/certs/ca-cert.pem --from-file=samples/certs/ca-key.pem --from-file=samples/certs/root-cert.pem --from-file=samples/certs/cert-chain.pem
|
||
</code></pre></li><li><p>部署 Istio 控制平面,并为控制平面和应用程序容器启用安全性:</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ istioctl manifest apply \
|
||
--set values.global.mtls.enabled=true \
|
||
--set values.security.selfSigned=false
|
||
</code></pre></li></ol><h4 id=remote-cluster-deploy-Istio-components>远程集群:部署 Istio 组件</h4><ol><li><p>使用 <code>istio-system</code> 命名空间中的 Istio 证书示例创建 <code>cacerts</code> secret:</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ kubectl create ns istio-system
|
||
$ kubectl create secret generic cacerts -n istio-system --from-file=samples/certs/ca-cert.pem --from-file=samples/certs/ca-key.pem --from-file=samples/certs/root-cert.pem --from-file=samples/certs/cert-chain.pem
|
||
</code></pre></li><li><p>按照<a href=#environment-var>设置环境变量部分</a>中的说明设置端点 IP 环境变量。</p></li><li><p>以下命令部署远程集群的组件,并为控制平面和应用程序 pod 启用安全性,并启用 Istio Pilot 无选择器服务和端点的创建,以在远程集群中获取 DNS 条目。</p><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ istioctl manifest apply \
|
||
--set profile=remote \
|
||
--set values.global.mtls.enabled=true \
|
||
--set values.security.selfSigned=false \
|
||
--set values.global.createRemoteSvcEndpoints=true \
|
||
--set values.global.remotePilotCreateSvcEndpoint=true \
|
||
--set values.global.remotePilotAddress=${PILOT_POD_IP} \
|
||
--set values.global.remotePolicyAddress=${POLICY_POD_IP} \
|
||
--set values.global.remoteTelemetryAddress=${TELEMETRY_POD_IP} \
|
||
--set gateways.enabled=false \
|
||
--set autoInjection.enabled=true
|
||
</code></pre></li><li><p>要为远程集群生成 <code>kubeconfig</code> 配置文件,请遵循 <a href=#kubeconfig>Kubernetes 配置部分</a>中的步骤。</p></li></ol><h3 id=primary-cluster-instantiate-credentials>主集群:实例化凭证</h3><p>您必须为每个远程集群都实例化凭证。请按照<a href=#credentials>实例化凭证过程</a>完成部署。</p><h3 id=congratulations>恭喜</h3><p>您已将所有群集中的所有 Istio 组件都配置为在应用 sidecars、控制平面组件和其他应用 sidecars 之间使用双向 TLS。</p><nav id=see-also><h2>相关内容</h2><div class=see-also><div class=entry><p class=link><a data-skipendnotes=true href=/v1.5/zh/docs/setup/install/multicluster/shared-gateways/>共享的控制平面(多网络)</a></p><p class=desc>跨多个 Kubernetes 集群安装一个 Istio 网格,使互不联通的集群网络共享同一个控制平面。</p></div><div class=entry><p class=link><a data-skipendnotes=true href=/v1.5/zh/docs/setup/install/multicluster/gateways/>控制平面副本集</a></p><p class=desc>通过控制平面副本集实例,在多个 Kubernetes 集群上安装 Istio 网格。</p></div><div class=entry><p class=link><a data-skipendnotes=true href=/v1.5/zh/docs/setup/install/multicluster/simplified/>简化地多集群安装[实验性]</a></p><p class=desc>配置一个跨多个 Kubernetes 集群的 Istio 网格。</p></div><div class=entry><p class=link><a data-skipendnotes=true href=/v1.5/zh/blog/2020/multi-cluster-mesh-automation/>使用 Admiral 管理 Istio 多集群的配置和服务发现</a></p><p class=desc>为 Istio deployment(cluster)提供自动化 Istio 配置,并让其像单个网格一样工作。</p></div><div class=entry><p class=link><a data-skipendnotes=true href=/v1.5/zh/blog/2019/dns-cert/>DNS 证书管理</a></p><p class=desc>在 Istio 中配置和管理 DNS 证书。</p></div><div class=entry><p class=link><a data-skipendnotes=true href=/v1.5/zh/blog/2019/webhook/>安全管理 Webhook</a></p><p class=desc>一种更安全管理 Istio webhook 的方法。</p></div></div></nav></article><nav class=pagenav><div class=left><a title="通过控制平面副本集实例,在多个 Kubernetes 集群上安装 Istio 网格。" href=/v1.5/zh/docs/setup/install/multicluster/gateways/><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#left-arrow"/></svg>控制平面副本集</a></div><div class=right><a title="跨多个 Kubernetes 集群安装一个 Istio 网格,使互不联通的集群网络共享同一个控制平面。" href=/v1.5/zh/docs/setup/install/multicluster/shared-gateways/>共享的控制平面(多网络)<svg class="icon"><use xlink:href="/v1.5/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>Do you have any suggestions for improvement?<br><br><input id=feedback-textbox type=text placeholder="Help us improve..." data-lang=zh></div><div id=feedback-thankyou>Thanks for your feedback!</div></div><div id=endnotes-container aria-hidden=true><h2>链接</h2><ol id=endnotes></ol></div></div><div class=toc-container><nav class=toc aria-label="Table of Contents"><div id=toc><ol><li role=none aria-label=前提条件><a href=#prerequisites>前提条件</a><li role=none aria-label=部署本地控制平面><a href=#deploy-the-local-control-plane>部署本地控制平面</a><ol><li role=none aria-label=设置环境变量><a href=#environment-var>设置环境变量</a></ol></li><li role=none aria-label="安装 Istio 远程组件"><a href=#install-the-Istio-remote>安装 Istio 远程组件</a><ol><li role=none aria-label=安装配置参数><a href=#installation-configuration-parameters>安装配置参数</a></ol></li><li role=none aria-label=为远程集群创建配置文件><a href=#kubeconfig>为远程集群创建配置文件</a><li role=none aria-label=实例化凭证><a href=#credentials>实例化凭证</a><li role=none aria-label=卸载远程集群><a href=#uninstalling-the-remote-cluster>卸载远程集群</a><li role=none aria-label="手动 sidecar 注入示例"><a href=#manual-sidecar>手动 sidecar 注入示例</a><ol><li role=none aria-label="手动将 sidecars 注入到应用程序清单"><a href=#manually-inject-the-sidecars-into-the-application-manifests>手动将 sidecars 注入到应用程序清单</a></ol></li><li role=none aria-label=从不同的集群中访问服务><a href=#access-services-from-different-clusters>从不同的集群中访问服务</a><li role=none aria-label=部署注意事项><a href=#deployment-considerations>部署注意事项</a><ol><li role=none aria-label="更新 DNS 条目"><a href=#update-the-DNS-entries>更新 DNS 条目</a><li role=none aria-label=使用负载均衡服务类型><a href=#use-load-balance-service-type>使用负载均衡服务类型</a><li role=none aria-label="通过网关暴露这些 Istio 服务"><a href=#expose-the-Istio-services-via-a-gateway>通过网关暴露这些 Istio 服务</a></ol></li><li role=none aria-label=安全性><a href=#security>安全性</a><ol><li role=none aria-label=控制平面安全性><a href=#control-plane-security>控制平面安全性</a><li role=none aria-label="应用 pods 间的双向 TLS"><a href=#mutual-TLS-between-application-pods>应用 pods 间的双向 TLS</a><li role=none aria-label=部署示例><a href=#example-deployment>部署示例</a><ol><li role=none aria-label=主集群:部署控制平面集群><a href=#primary-cluster-deploy-the-control-plane-cluster>主集群:部署控制平面集群</a><li role=none aria-label="远程集群:部署 Istio 组件"><a href=#remote-cluster-deploy-Istio-components>远程集群:部署 Istio 组件</a></ol></li><li role=none aria-label=主集群:实例化凭证><a href=#primary-cluster-instantiate-credentials>主集群:实例化凭证</a><li role=none aria-label=恭喜><a href=#congratulations>恭喜</a></ol></li><li role=none aria-label=相关内容><a href=#see-also>相关内容</a></li></ol></div></nav></div></main><footer><div class=user-links><a class=channel title="立刻下载 Istio 1.5.4" href=/v1.5/docs/setup/getting-started/#download aria-label="Download Istio"><span>download</span><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#download"/></svg>
|
||
</a><a class=channel title="加入 Istio discussion board 参与讨论获取帮助" href=https://discuss.istio.io aria-label="Istio discussion board"><span>discuss</span><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#discourse"/></svg></a>
|
||
<a class=channel title="Stack Overflow 中列举了针对实际问题以及部署、配置和使用 Istio 的各项回答" href=https://stackoverflow.com/questions/tagged/istio aria-label="Stack Overflow"><span>stack overflow</span><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#stackoverflow"/></svg></a>
|
||
<a class=channel title="在 Slack 上与 Istio 社区交互讨论开发问题(仅限邀请)" href=https://istio.slack.com aria-label=slack><span>slack</span><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#slack"/></svg></a>
|
||
<a class=channel title="关注我们的 Twitter 来获取最新信息" href=https://twitter.com/IstioMesh aria-label=Twitter><span>twitter</span><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#twitter"/></svg></a><div class=tag>对于用户</div></div><div class=info><p class=copyright>中文内容由 ServiceMesher 社区维护,部分文档可能稍微滞后于英文版本,同步工作持续进行中<br>Istio 归档
|
||
1.5.4<br>© 2020 Istio Authors, <a href=https://policies.google.com/privacy>隐私政策</a><br>归档于 2020年5月21日</p></div><div class=dev-links><a class=channel title="Istio 的代码在 GitHub 上开发" href=https://github.com/istio/community aria-label=GitHub><span>github</span><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#github"/></svg></a>
|
||
<a class=channel title="如果您想深入了解 Istio 的技术细节,请查看我们日益完善的设计文档" href=https://groups.google.com/forum/#!forum/istio-team-drive-access aria-label="team drive"><span>drive</span><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#drive"/></svg></a>
|
||
<a class=channel title="如果您想为 Istio 项目做出贡献,请考虑加入我们的工作组" href=https://github.com/istio/community/blob/master/WORKING-GROUPS.md aria-label="working groups"><span>working groups</span><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#working-groups"/></svg></a><div class=tag>对于开发者</div></div></footer><div id=scroll-to-top-container aria-hidden=true><button id=scroll-to-top title=回到顶部><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#top"/></svg></button></div></body></html> |