mirror of https://github.com/istio/istio.io.git
132 lines
91 KiB
HTML
132 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="描述 Istio 部署中的选择和建议。"><meta name=keywords content="microservices,services,mesh,single-cluster,multiple-clusters,control-plane,tenancy,networks,identity,trust,single-mesh,multiple-meshes"><meta property="og:title" content="部署模型"><meta property="og:type" content="website"><meta property="og:description" content="描述 Istio 部署中的选择和建议。"><meta property="og:url" content="/v1.5/zh/docs/ops/deployment/deployment-models/"><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\/ops\/deployment\/deployment-models\/');return false;">当前版本</a>
|
||
<a tabindex=-1 role=menuitem onclick="navigateToUrlOrRoot('https://preliminary.istio.io/docs\/ops\/deployment\/deployment-models\/');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 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 aria-hidden=true></button><a title=选择最适合您的需求和平台的指南。 href=/v1.5/zh/docs/setup/install/>安装</a><ul role=group aria-expanded=false><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 aria-hidden=true></button><a title="配置跨越多个 Kubernetes 集群的 Istio 服务网格。" href=/v1.5/zh/docs/setup/install/multicluster/>多集群安装</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/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><a role=treeitem title="安装一个跨多个 Kubernetes 集群的 Istio 网格,多集群共享控制平面,并且集群间通过 VPN 互连。" href=/v1.5/zh/docs/setup/install/multicluster/shared-vpn/>共享控制平面(单一网络)</a></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 default" aria-labelledby=card125 role=region id=card125-body><ul role=tree aria-expanded=true aria-labelledby=card125><li role=treeitem aria-label=部署><button class=show aria-hidden=true></button><a title="设置 Istio 部署的要求、概念和注意事项。" href=/v1.5/zh/docs/ops/deployment/>部署</a><ul role=group aria-expanded=true class=leaf-section><li role=none><a role=treeitem title="描述 Istio 的整体架构与设计目标。" href=/v1.5/zh/docs/ops/deployment/architecture/>架构</a></li><li role=none><span role=treeitem class=current title="描述 Istio 部署中的选择和建议。">部署模型</span></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/ops/ title="关于部署和管理 Istio 网格的概念、工具和技术。">运维</a></li><li><a href=/v1.5/zh/docs/ops/deployment/ title="设置 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="297 字"><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#clock"/></svg><span> </span>阅读大约需要 2 分钟</span></p></div></div><nav class=toc-inlined aria-label="Table of Contents"><div><hr><ol><li role=none aria-label=集群模型><a href=#cluster-models>集群模型</a><ol><li role=none aria-label=单一集群><a href=#single-cluster>单一集群</a><li role=none aria-label=多集群><a href=#multiple-clusters>多集群</a></ol></li><li role=none aria-label=网络模型><a href=#network-models>网络模型</a><ol><li role=none aria-label=单一网络><a href=#single-network>单一网络</a><li role=none aria-label=多网络><a href=#multiple-networks>多网络</a></ol></li><li role=none aria-label=控制平面模型><a href=#control-plane-models>控制平面模型</a><li role=none aria-label=身份和信任模型><a href=#identity-and-trust-models>身份和信任模型</a><ol><li role=none aria-label=网格内的信任><a href=#trust-within-a-mesh>网格内的信任</a><li role=none aria-label=网格之间的信任><a href=#trust-between-meshes>网格之间的信任</a></ol></li><li role=none aria-label=网格模型><a href=#mesh-models>网格模型</a><ol><li role=none aria-label=单一网格><a href=#single-mesh>单一网格</a><li role=none aria-label=多网格><a href=#multiple-meshes>多网格</a></ol></li><li role=none aria-label=租户模型><a href=#tenancy-models>租户模型</a><ol><li role=none aria-label=命名空间租赁><a href=#namespace-tenancy>命名空间租赁</a><li role=none aria-label=集群租户模型><a href=#cluster-tenancy>集群租户模型</a></ol></li><li role=none aria-label=相关内容><a href=#see-also>相关内容</a></li></ol><hr></div></nav><p>当您将 Istio 用于生产环境部署时,需要回答一系列的问题。
|
||
网格将被限制在单个 <span class=term data-title=Cluster data-body="<p>集群是运行容器化应用程序的一组计算节点。
|
||
通常,组成集群的计算节点彼此可以直接连接。
|
||
集群通过规则或策略限制外部访问。</p>">集群</span> 中还是分布在多个集群中?
|
||
是将所有服务都放置在单个完全连接的网络中,还是需要网关来跨多个网络连接服务?
|
||
是否存在单个<span class=term data-title="Control Plane" data-body="<p>控制平面是一组系统服务,这些服务配置网格或者网格的子网来管理工作负载实例之间的通信。
|
||
单个网格中控制平面的所有实例共享相同的配置资源。</p>">控制平面</span>(可能在集群之间共享),或者是否部署了多个控制平面以确保高可用(HA)?
|
||
如果要部署多个集群(更具体地说是在隔离的网络中),是否要将它们连接到单个<span class=term data-title=Multicluster data-body='<p>Multicluster 是一种部署模型, 由具有多个<a href="/zh/docs/reference/glossary/#cluster">集群</a>的<a href="/zh/docs/reference/glossary/#service-mesh">网格</a>组成。</p>'>多集群</span>服务网格中,
|
||
还是将它们联合到一个 <span class=term data-title=Multi-Mesh data-body='<p>Multi-mesh 是由两个或多个<a href="/zh/docs/reference/glossary/#service-mesh">服务网格</a>组成的部署模型。
|
||
每个网格都有独立的命名管理和身份管理,但是您可以通过<a href="/zh/docs/reference/glossary/#mesh-federation">网格联邦</a>来暴露
|
||
网格之间的服务, 最终构成一个多网格部署。</p>'>多网格</span> 部署中?</p><p>所有这些问题,都代表了 Istio 部署的独立配置维度。</p><ol><li>单一或多个集群</li><li>单一或多个网络</li><li>单一或多控制平面</li><li>单一或多个网格</li></ol><p>所有组合都是可能的,尽管某些组合比其他组合更常见,并且某些组合显然不是很有趣(例如,单一集群中有多个网格)。</p><p>在涉及多个集群的生产环境部署中,部署可能使用多种模式。
|
||
例如,基于 3 个集群实现多控制平面的高可用部署,您可以通过使用单一控制平面部署 2 个集群,然后再添加第 3 个集群和
|
||
第 2 个控制平面来实现这一点,最后,再将所有 3 个集群配置为共享 2 个控制平面,以确保所有集群都有 2 个控制源来确保 HA。</p><p>如何选择正确的部署模型,取决于您对隔离性、性能和 HA 的要求。本指南介绍了配置 Istio 部署时的各种选择和注意事项。</p><h2 id=cluster-models>集群模型</h2><p>应用程序的工作负载实例运行在一个或多个<span class=term data-title=Cluster data-body="<p>集群是运行容器化应用程序的一组计算节点。
|
||
通常,组成集群的计算节点彼此可以直接连接。
|
||
集群通过规则或策略限制外部访问。</p>">集群</span>中。
|
||
针对隔离性、性能和高可用的需求,您还可以将集群限制在可用区和地域中。</p><p>根据需求,生产系统可以跨多个集群(基于多可用区、多地域)运行,
|
||
借助云负载均衡器来处理诸如本地、区域或地域性故障转移之类的问题。</p><p>大多数情况下,集群代表着配置和端点发现的边界。
|
||
例如,每个 Kubernetes 集群都有一个 API 服务器,该服务器管理集群的配置,
|
||
在 Pod 变化时提供 <span class=term data-title="Service Endpoint" data-body='<p>Service Endpoint 是一个 <a href="#service">service</a> 的网络可达表现形式。Service endpoint 由<a href="#workload-instance">工作负载实例</a>暴露,但并不是所有的服务都有 service endpoint。</p>'>服务端点</span> 信息。
|
||
Kubernetes 在每个集群都默认配置此行为,这有助于限制由错误配置引起的潜在风险。</p><p>在 Istio 中,您可以配置单一服务网格以跨越任意数量的集群。</p><h3 id=single-cluster>单一集群</h3><p>在最简单的情况下,您可以将 Istio 网格限制为单一<span class=term data-title=Cluster data-body="<p>集群是运行容器化应用程序的一组计算节点。
|
||
通常,组成集群的计算节点彼此可以直接连接。
|
||
集群通过规则或策略限制外部访问。</p>">集群</span>。
|
||
集群通常在<a href=#single-network>单一网络</a>上运行,但是在不同的基础架构之间会有所不同。
|
||
单一集群和单一网络模型包括一个控制平面,这是最简单的 Istio 部署。</p><figure style=width:50%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:91.74921915843377%><a data-skipendnotes=true href=/v1.5/zh/docs/ops/deployment/deployment-models/single-cluster.svg title=单一集群><img class=element-to-stretch src=/v1.5/zh/docs/ops/deployment/deployment-models/single-cluster.svg alt=单一集群服务网格></a></div><figcaption>单一集群服务网格</figcaption></figure><p>单一集群部署提供了简单性,但缺少更多的功能,例如,故障隔离和故障转移。
|
||
如果您需要高可用性,则应使用多个集群。</p><h3 id=multiple-clusters>多集群</h3><p>您可以将单个网格配置为包括多<span class=term data-title=Cluster data-body="<p>集群是运行容器化应用程序的一组计算节点。
|
||
通常,组成集群的计算节点彼此可以直接连接。
|
||
集群通过规则或策略限制外部访问。</p>">集群</span>。
|
||
在单一网格中使用<span class=term data-title=Multicluster data-body='<p>Multicluster 是一种部署模型, 由具有多个<a href="/zh/docs/reference/glossary/#cluster">集群</a>的<a href="/zh/docs/reference/glossary/#service-mesh">网格</a>组成。</p>'>多集群</span>部署,与单一集群部署相比其具备以下更多能力:</p><ul><li>故障隔离和故障转移:当 <code>cluster-1</code> 下线,业务将转移至 <code>cluster-2</code>。</li><li>位置感知路由和故障转移:将请求发送到最近的服务。</li><li>多种<a href=#control-plane-models>控制平面</a>模型:支持不同级别的可用性。</li><li>团队或项目隔离:每个团队仅运行自己的集集群。</li></ul><figure style=width:75%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:65.0971323771268%><a data-skipendnotes=true href=/v1.5/zh/docs/ops/deployment/deployment-models/multi-cluster.svg title=多集群><img class=element-to-stretch src=/v1.5/zh/docs/ops/deployment/deployment-models/multi-cluster.svg alt=多集群服务网格></a></div><figcaption>多集群服务网格</figcaption></figure><p>多集群部署可为您提供更大程度的隔离和可用性,但会增加复杂性。
|
||
如果您的系统具有高可用性要求,则可能需要集群跨多个可用区和地域。
|
||
对于应用变更或新的版本,您可以在一个集群中配置金丝雀发布,这有助于把对用户的影响降到最低。
|
||
此外,如果某个集群有问题,您可以暂时将流量路由到附近的集群,直到解决该问题为止。</p><p>您可以根据<a href=#network-models>网络</a>和云提供商所支持的选项来配置集群间通信。
|
||
例如,若两个集群位于同一基础网络,则可以通过简单地配置防火墙规则来启用跨集群通信。</p><h2 id=network-models>网络模型</h2><p>许多生产系统需要多个网络或子网来实现隔离和高可用性。
|
||
Istio 支持跨多种网络拓扑扩展服务网格。
|
||
这使您可以选择适合您现有网络拓扑的网络模型。</p><h3 id=single-network>单一网络</h3><p>在最简单的情况下,服务网格在单个完全连接的网络上运行。
|
||
在单一网络模型中, <span class=term data-title="Workload Instance" data-body='<p>工作负载实例是<a href="#workload">工作负载</a>的一个二进制实例化对象。
|
||
一个工作负载实例可以开放零个或多个<a href="#service-endpoint">服务 endpoint</a>,
|
||
也可以消费零个或多个<a href="#service">服务</a>。</p>
|
||
|
||
<p>工作负载实例具有许多属性:</p>
|
||
|
||
<ul>
|
||
<li>名称和命名空间</li>
|
||
<li>唯一的 ID</li>
|
||
<li>IP 地址</li>
|
||
<li>标签</li>
|
||
<li>主体</li>
|
||
</ul>
|
||
|
||
<p>通过访问 <a href="/zh/docs/reference/config/policy-and-telemetry/attribute-vocabulary/"><code>source.*</code> 和 <code>destination.*</code> 下面的属性</a>,在 Istio 的策略和遥测配置功能中,可以用到这些属性。</p>'>工作负载实例</span>
|
||
都可以直接相互访问,而无需 Istio 网关。</p><p>单一网络模型允许 Istio 以统一的方式在网格上配置服务使用者,从而能够直接处理工作负载实例。</p><figure style=width:50%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:75.78194040013328%><a data-skipendnotes=true href=/v1.5/zh/docs/ops/deployment/deployment-models/single-net.svg title=单一网络><img class=element-to-stretch src=/v1.5/zh/docs/ops/deployment/deployment-models/single-net.svg alt=单一网络服务网格></a></div><figcaption>单一网络服务网格</figcaption></figure><h3 id=multiple-networks>多网络</h3><p>您可以配置单个服务网格跨多个网络,这样的配置称为<strong>多网络</strong>。</p><p>多网络模型提供了单一网络之外的以下功能:</p><ul><li><strong>服务端点</strong>范围的 IP 或 VIP 重叠</li><li>跨越管理边界</li><li>容错能力</li><li>网络地址扩展</li><li>符合网络分段要求的标准</li></ul><p>在此模型中,不同网络中的工作负载实例只能通过一个或多个 Istio 网关相互访问。Istio 使用 <strong>分区服务发现</strong> 为消
|
||
费者提供 <span class=term data-title="Service Endpoint" data-body='<p>Service Endpoint 是一个 <a href="#service">service</a> 的网络可达表现形式。Service endpoint 由<a href="#workload-instance">工作负载实例</a>暴露,但并不是所有的服务都有 service endpoint。</p>'>服务端点</span> 的不同视图。该视图取决于消费者的网络。</p><figure style=width:50%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:75.57262768530374%><a data-skipendnotes=true href=/v1.5/zh/docs/ops/deployment/deployment-models/multi-net.svg title=多网络部署><img class=element-to-stretch src=/v1.5/zh/docs/ops/deployment/deployment-models/multi-net.svg alt=多网络服务网格></a></div><figcaption>多网络服务网格</figcaption></figure><h2 id=control-plane-models>控制平面模型</h2><p>Istio 网格使用<span class=term data-title="Control Plane" data-body="<p>控制平面是一组系统服务,这些服务配置网格或者网格的子网来管理工作负载实例之间的通信。
|
||
单个网格中控制平面的所有实例共享相同的配置资源。</p>">控制平面</span>来配置网格内工作负载实例之间的所有通信。
|
||
您可以复制控制平面,工作负载实例可以连接到任何一个控制平面实例以获取其配置。</p><p>在最简单的情况下,可以在单一集群上使用控制平面运行网格。</p><figure style=width:50%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:91.74921915843377%><a data-skipendnotes=true href=/v1.5/zh/docs/ops/deployment/deployment-models/single-cluster.svg title=单一控制平面><img class=element-to-stretch src=/v1.5/zh/docs/ops/deployment/deployment-models/single-cluster.svg alt=单一控制平面服务网格></a></div><figcaption>单一控制平面服务网格</figcaption></figure><p>多集群部署也可以共享控制平面实例。在这种情况下,控制平面实例可以驻留在一个或多个集群中。</p><figure style=width:75%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:52.89403650064289%><a data-skipendnotes=true href=/v1.5/zh/docs/ops/deployment/deployment-models/shared-control.svg title=共享控制平面><img class=element-to-stretch src=/v1.5/zh/docs/ops/deployment/deployment-models/shared-control.svg alt=跨两个集群共享控制平面的服务网格></a></div><figcaption>跨两个集群共享控制平面的服务网格</figcaption></figure><p>为了获得高可用性,您应该在多个集群、区或地域之间部署控制平面。</p><figure style=width:75%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:92.28423056604902%><a data-skipendnotes=true href=/v1.5/zh/docs/ops/deployment/deployment-models/multi-control.svg title=多控制平面><img class=element-to-stretch src=/v1.5/zh/docs/ops/deployment/deployment-models/multi-control.svg alt=每个地域都有控制平面实例的服务网格></a></div><figcaption>每个地域都有控制平面实例的服务网格</figcaption></figure><p>该模型具有以下优点:</p><ul><li><p>更强的可用性:如果控制平面不可用,则中断范围仅限于该控制平面。</p></li><li><p>配置隔离:您可以在一个集群、区域或地域中进行配置更改,而不会影响其他集群、区或或地域。</p></li></ul><p>您可以通过故障转移来提高控制平面的可用性。当控制平面实例不可用时,工作负载实例可以连接到另一个可用的控制平面实例。
|
||
故障转移可能发生在集群、区域或地域之间。</p><figure style=width:50%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:52.89403650064289%><a data-skipendnotes=true href=/v1.5/zh/docs/ops/deployment/deployment-models/failover.svg title=控制平面故障转移><img class=element-to-stretch src=/v1.5/zh/docs/ops/deployment/deployment-models/failover.svg alt=控制平面实例失败后的服务网格></a></div><figcaption>控制平面实例失败后的服务网格</figcaption></figure><p>以下列表按可用性对控制平面部署进行了排名:</p><ul><li>每个地域一个集群(<strong>最低可用性</strong>)</li><li>每个地域多个集群</li><li>每个区域一个集群</li><li>每个区域多个集群</li><li>每个集群(<strong>最高可用性</strong>)</li></ul><h2 id=identity-and-trust-models>身份和信任模型</h2><p>在服务网格中创建工作负载实例时,Istio 会为工作负载分配一个<span class=term data-title=Identity data-body='<p>身份是基本的安全基础结构概念。Istio 的身份模型是基于第一阶级的工作负载身份。在服务之间的通信开始时,双方使用身份信息交换证书来实现相互认证的目的。</p>
|
||
|
||
<p>客户端根据其安全的命名信息检查服务器的身份,以便确定服务器是否被授权运行服务。</p>
|
||
|
||
<p>服务器检查客户端的身份,以确定客户端可以访问的信息。服务器基于客户端的身份,来确定配置的策略。</p>
|
||
|
||
<p>通过使用身份,服务器可以审核访问信息的时间和特定客户端访问的信息内容。还可以根据客户使用的服务向他们收费,并拒绝任何未付款的客户访问服务。</p>
|
||
|
||
<p>Istio 身份模型非常灵活,粒度足以代表单个用户、单个服务,或者一组服务。在没有第一阶级服务身份的平台,Istio 可以使用其他的身份为服务实例进行分组,例如服务名称。</p>
|
||
|
||
<p>Istio 在不同的平台上支持以下服务身份:</p>
|
||
|
||
<ul>
|
||
<li><p>Kubernetes: Kubernetes 服务账户</p></li>
|
||
|
||
<li><p>GKE/GCE: GCP 服务账户</p></li>
|
||
|
||
<li><p>GCP: GCP 服务账户</p></li>
|
||
|
||
<li><p>AWS: AWS IAM 用户/角色 账户</p></li>
|
||
|
||
<li><p>本地 (非 Kubernetes):用户账户、客户服务账户、服务名称、Istio 服务账户,或者 GCP 服务账户。
|
||
客户服务账户指现有的服务账户,就像客户身份目录中管理的身份。</p></li>
|
||
</ul>
|
||
|
||
<p>通常,<a href="/zh/docs/reference/glossary/#trust-domain">信任域</a>指定身份所属的网格。</p>'>身份标识</span>。</p><p>证书颁发机构(CA)创建并签名身份标识的证书,以用于验证网格中的使用者身份,您可以使用其公钥来验证消息发送者的身份。
|
||
<strong>trust bundle</strong> 是一组在 Istio 网格使用的所有 CA 公钥的集合。使用 <strong>trust bundle</strong> 任何人都可以验证来自该网格的任何消息发送者。</p><h3 id=trust-within-a-mesh>网格内的信任</h3><p>在单一 Istio 网格中,Istio 确保每个工作负载实例都有一个表示自己身份的适当证书,以及用于识别网格及网格联邦中所有身份
|
||
信息的 <strong>trust bundle</strong>。CA 只为这些身份标识创建和签名证书。该模型允许网格中的工作负载实例通信时相互认证。</p><figure style=width:50%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:91.74921915843377%><a data-skipendnotes=true href=/v1.5/zh/docs/ops/deployment/deployment-models/single-trust.svg title=网格内的信任模型><img class=element-to-stretch src=/v1.5/zh/docs/ops/deployment/deployment-models/single-trust.svg alt=具有证书颁发机构的服务网格></a></div><figcaption>具有证书颁发机构的服务网格</figcaption></figure><h3 id=trust-between-meshes>网格之间的信任</h3><p>如果网格中的服务需要另一个网格中的服务,则必须在两个网格之间联合身份和信任。要在不同网格之间联合身份和信任,必须交换网格的 <strong>trust bundle</strong>。
|
||
您可以使用像 <a href=https://github.com/spiffe/spiffe/blob/main/standards/SPIFFE_Federation.md>SPIFFE 信任域联邦</a>
|
||
之类的协议手动或自动交换 <strong>trust bundle</strong>,将 <strong>trust bundle</strong> 导入网格后,即可为这些身份配置本地策略。</p><figure style=width:50%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:52.79593627076436%><a data-skipendnotes=true href=/v1.5/zh/docs/ops/deployment/deployment-models/multi-trust.svg title=网格之间的信任模型><img class=element-to-stretch src=/v1.5/zh/docs/ops/deployment/deployment-models/multi-trust.svg alt=具有证书颁发机构的多服务网格></a></div><figcaption>具有证书颁发机构的多服务网格</figcaption></figure><h2 id=mesh-models>网格模型</h2><p>Istio 支持将您的所有服务都放在一个<span class=term data-title="Service Mesh" data-body='<p><em>服务网格</em> (简称 <em>网格</em> )是一个可管理、可观测以及支持<a href="#workload-instance">工作负载实例</a>之间进行安全通信的基础设施层。</p>
|
||
|
||
<p>在一个网格中,服务名称与命名空间组合具有唯一性。例如,在一个<a href="#multicluster">多集群</a>的网格中,<code>cluster-1</code> 集群的 <code>foo</code> 命名空间中的 <code>bar</code> 服务和 <code>cluster-2</code> 集群的 <code>foo</code> 命名空间中的 <code>bar</code> 服务被认为是同一个服务。</p>
|
||
|
||
<p>由于服务网格会共享这种<a href="#identity">标识</a>,因此同一服务网格内的<a href="#workload-instance">工作负载实例</a>可以相互认证通信。</p>'>服务网格</span>中,
|
||
或者将多个网格联合在一起,这也称为<span class=term data-title=Multi-Mesh data-body='<p>Multi-mesh 是由两个或多个<a href="/zh/docs/reference/glossary/#service-mesh">服务网格</a>组成的部署模型。
|
||
每个网格都有独立的命名管理和身份管理,但是您可以通过<a href="/zh/docs/reference/glossary/#mesh-federation">网格联邦</a>来暴露
|
||
网格之间的服务, 最终构成一个多网格部署。</p>'>多网格</span>。</p><h3 id=single-mesh>单一网格</h3><p>最简单的 Istio 部署是单一网格。网格内,服务名称是唯一的。例如,在命名空间 <code>foo</code> 中只能存在一个名为 <code>mysvc</code> 的服务。
|
||
此外,工作负载实例具有相同的标识,因为服务帐户名称在命名空间中也是唯一的,就像服务名称一样。</p><p>单一网格可以跨越<a href=#cluster-models>一个或多个集群</a>和<a href=#network-models>一个或多个网络</a>。
|
||
网格内部,<a href=#namespace-tenancy>命名空间</a>用于<a href=#tenancy-models>多租户</a>。</p><h3 id=multiple-meshes>多网格</h3><p>通过<span class=term data-title="Mesh Federation" data-body='<p>网格联邦是在网格之间公开服务的一种行为,并且能跨越网格边界进行通信。每一个网格或许会公开其一部分的服务,使一个或多个其他网格使用此公开的服务。
|
||
您可以使用网格联邦来启用网格之间的通信,可参阅<a href="/zh/docs/ops/deployment/deployment-models/#multiple-meshes">多个网格部署</a>。</p>'>网格联邦</span>可以实现多网格部署。</p><p>与单一网格相比,多网格具备以下更多功能:</p><ul><li>组织边界:业务范围</li><li>服务名称或命名空间复用:比如 <code>default</code> 的使用</li><li>加强隔离:将测试工作负载与生产工作负载隔离</li></ul><p>您可以使用<span class=term data-title="Mesh Federation" data-body='<p>网格联邦是在网格之间公开服务的一种行为,并且能跨越网格边界进行通信。每一个网格或许会公开其一部分的服务,使一个或多个其他网格使用此公开的服务。
|
||
您可以使用网格联邦来启用网格之间的通信,可参阅<a href="/zh/docs/ops/deployment/deployment-models/#multiple-meshes">多个网格部署</a>。</p>'>网格联邦</span>启用网格间通信。
|
||
联合时,每个网格可以公开一组服务和身份,它们可以被所有参与的网格都可以识别。</p><figure style=width:50%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:68.06079261254328%><a data-skipendnotes=true href=/v1.5/zh/docs/ops/deployment/deployment-models/multi-mesh.svg title=多服务网格><img class=element-to-stretch src=/v1.5/zh/docs/ops/deployment/deployment-models/multi-mesh.svg alt=多服务网格></a></div><figcaption>多服务网格</figcaption></figure><p>为避免服务命名冲突,可以为每个网格赋予全局唯一的 <strong>mesh ID</strong>,以确保每个服务的完全限定域名(FQDN)是不同的。</p><p>联合两个不共享同一<span class=term data-title="Trust Domain" data-body='<p><a href="https://spiffe.io/spiffe/concepts/#trust-domain">信任域</a>对应于系统的信任根,并且是工作负载标识的一部分。</p>
|
||
|
||
<p>Istio 使用信任域在网格中创建所有<a href="/zh/docs/reference/glossary/#identity">身份</a>。每个网格都有一个专用的信任域。</p>
|
||
|
||
<p>例如在 <code>spiffe://mytrustdomain.com/ns/default/sa/myname</code> 中标示网格的子字符串是:<code>mytrustdomain.com</code>。此子字符串是此网格的信任域。</p>'>信任域</span>的网格时, 必须<span class=term data-title="Mesh Federation" data-body='<p>网格联邦是在网格之间公开服务的一种行为,并且能跨越网格边界进行通信。每一个网格或许会公开其一部分的服务,使一个或多个其他网格使用此公开的服务。
|
||
您可以使用网格联邦来启用网格之间的通信,可参阅<a href="/zh/docs/ops/deployment/deployment-models/#multiple-meshes">多个网格部署</a>。</p>'>
|
||
联合</span>身份标识和它们之间的 <strong>trust bundles</strong>。有关概述请参考<a href=#trust-between-meshes>多信任域</a>部分。</p><h2 id=tenancy-models>租户模型</h2><p>在 Istio 中,<strong>租户</strong>是一组用户,它们共享对一组已部署工作负载的公共访问权限。通常,您可以通过网络配置和策略将工作负载实例与多个租户彼此隔离。</p><p>您可以配置租户模型以满足以下组织隔离要求:</p><ul><li>安全</li><li>策略</li><li>容量(Capacity)</li><li>成本(Cost)</li><li>性能</li></ul><p>Istio 支持两种类型的租赁模型:</p><ul><li><a href=#namespace-tenancy>命名空间租赁</a></li><li><a href=#cluster-tenancy>集群租赁</a></li></ul><h3 id=namespace-tenancy>命名空间租赁</h3><p>Istio 使用<a href="https://kubernetes.io/docs/reference/glossary/?fundamental=true#term-namespace">命名空间</a>作为网格内的租赁单位。
|
||
Istio 还可以在未实现命名空间租用的环境中使用。在这样的环境中,您可以授予团队权限,以仅允许其将工作负载部署到给定的或一组命名空间。
|
||
默认情况下,来自多个租赁命名空间的服务可以相互通信。</p><figure style=width:50%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:75.78194040013328%><a data-skipendnotes=true href=/v1.5/zh/docs/ops/deployment/deployment-models/iso-ns.svg title=独立命名空间><img class=element-to-stretch src=/v1.5/zh/docs/ops/deployment/deployment-models/iso-ns.svg alt=具有两个隔离的命名空间的服务网格></a></div><figcaption>具有两个隔离的命名空间的服务网格</figcaption></figure><p>为提高隔离性,您可以有选择地将部分服务公开给其他命名空间。您可以为公开服务配置授权策略,以将访问权限仅交给适当的调用者。</p><figure style=width:50%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:75.78194040013328%><a data-skipendnotes=true href=/v1.5/zh/docs/ops/deployment/deployment-models/exp-ns.svg title=具有两个命名空间和一个公开服务的服务网格><img class=element-to-stretch src=/v1.5/zh/docs/ops/deployment/deployment-models/exp-ns.svg alt=具有两个命名空间和一个公开服务的服务网格></a></div><figcaption>具有两个命名空间和一个公开服务的服务网格</figcaption></figure><p>在<a href=#multiple-clusters>多集群</a>场景中,不同集群中名字相同的命名空间,被认为是相同的命名空间。
|
||
例如,集群 <code>cluster-1</code> 中命名空间 <code>foo</code> 下的服务 <code>Service B</code> 与集群 <code>cluster-2</code> 中命名空间 <code>foo</code> 下的服务 <code>Service B</code>,
|
||
指向的是相同的服务,Istio 会合并这些服务端点,用于服务发现和负载均衡。</p><figure style=width:50%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:75.78194040013328%><a data-skipendnotes=true href=/v1.5/zh/docs/ops/deployment/deployment-models/cluster-ns.svg title=多集群命名空间><img class=element-to-stretch src=/v1.5/zh/docs/ops/deployment/deployment-models/cluster-ns.svg alt=具有相同命名空间的多集群服务网格></a></div><figcaption>具有相同命名空间的多集群服务网格</figcaption></figure><h3 id=cluster-tenancy>集群租户模型</h3><p>Istio 还支持使用集群作为租赁单位。在这种情况下,您可以为每个团队提供一个专用集群或一组集群来部署其工作负载。
|
||
集群的权限通常仅限于拥有它的团队和成员。您可以设置各种角色以实现更精细的控制,例如:</p><ul><li>集群管理员</li><li>开发者</li></ul><p>要在 Istio 中使用集群租用,请将每个集群配置为一个独立的网格。或者,您可以使用 Istio 将一组集群实现为单一租户。
|
||
然后,每个团队可以拥有一个或多个集群,但是您可以将所有集群配置为单一网格。
|
||
要将各个团队的网格连接在一起,可以将网格联合成一个多网格部署。</p><figure style=width:50%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:76.17309435102204%><a data-skipendnotes=true href=/v1.5/zh/docs/ops/deployment/deployment-models/cluster-iso.svg title=集群隔离><img class=element-to-stretch src=/v1.5/zh/docs/ops/deployment/deployment-models/cluster-iso.svg alt=具有两个集群和两个命名空间的隔离的服务网格></a></div><figcaption>具有两个集群和两个命名空间的隔离的服务网格</figcaption></figure><p>由于每个网格都由不同的团队或组织来管理,因此服务命名不需要担心冲突。
|
||
例如,集群 <code>cluster-1</code> 中命名空间 <code>foo</code> 下的服务 <code>mysvc</code> 与集群 <code>cluster-2</code> 中命名空间 <code>foo</code> 下的服务 <code>mysvc</code>,
|
||
不是指相同的服务。最常见的示例是在 Kubernetes 中的场景,其中许多团队将其工作负载部署到 <code>default</code> 命名空间。</p><p>当每个团队都有自己的网格时,跨网格通信遵循<a href=#multiple-meshes>多网格模型</a>中描述的概念。</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/blog/2018/soft-multitenancy/>Istio 的软性多租户支持</a></p><p class=desc>使用 Kubernetes 命名空间和 RBAC 为 Istio 构建软性多租户环境。</p></div></div></nav></article><nav class=pagenav><div class=left><a title="描述 Istio 的整体架构与设计目标。" href=/v1.5/zh/docs/ops/deployment/architecture/><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#left-arrow"/></svg>架构</a></div><div class=right><a title="介绍 Istio 的性能和可扩展性。" href=/v1.5/zh/docs/ops/deployment/performance-and-scalability/>性能和可扩展性<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=#cluster-models>集群模型</a><ol><li role=none aria-label=单一集群><a href=#single-cluster>单一集群</a><li role=none aria-label=多集群><a href=#multiple-clusters>多集群</a></ol></li><li role=none aria-label=网络模型><a href=#network-models>网络模型</a><ol><li role=none aria-label=单一网络><a href=#single-network>单一网络</a><li role=none aria-label=多网络><a href=#multiple-networks>多网络</a></ol></li><li role=none aria-label=控制平面模型><a href=#control-plane-models>控制平面模型</a><li role=none aria-label=身份和信任模型><a href=#identity-and-trust-models>身份和信任模型</a><ol><li role=none aria-label=网格内的信任><a href=#trust-within-a-mesh>网格内的信任</a><li role=none aria-label=网格之间的信任><a href=#trust-between-meshes>网格之间的信任</a></ol></li><li role=none aria-label=网格模型><a href=#mesh-models>网格模型</a><ol><li role=none aria-label=单一网格><a href=#single-mesh>单一网格</a><li role=none aria-label=多网格><a href=#multiple-meshes>多网格</a></ol></li><li role=none aria-label=租户模型><a href=#tenancy-models>租户模型</a><ol><li role=none aria-label=命名空间租赁><a href=#namespace-tenancy>命名空间租赁</a><li role=none aria-label=集群租户模型><a href=#cluster-tenancy>集群租户模型</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><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=回到顶部><svg class="icon"><use xlink:href="/v1.5/img/icons.svg#top"/></svg></button></div></body></html> |