istio.io/archive/v1.0/zh/docs/concepts/what-is-istio/index.html

27 lines
46 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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="Istio 是什么?"><meta name=description content="介绍 Istio 及其要解决的问题、顶层架构和设计目标。"><meta name=keywords content="microservices,services,mesh"><meta property="og:title" content="Istio 是什么?"><meta property="og:type" content="website"><meta property="og:description" content="介绍 Istio 及其要解决的问题、顶层架构和设计目标。"><meta property="og:url" content="/v1.0/zh/docs/concepts/what-is-istio/"><meta property="og:image" content="/v1.0/img/istio-logo-blue-background.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.0 / Istio 是什么?</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><script>var branchName="release-1.0";var docTitle="Istio 是什么?";</script><link rel=alternate type=application/rss+xml title="Istio Blog" href=/v1.0/feed.xml><link rel="shortcut icon" href=/v1.0/favicons/favicon.ico><link rel=apple-touch-icon href=/v1.0/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/v1.0/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/v1.0/favicons/favicon-32x32.png sizes=32x32><link rel=icon type=image/png href=/v1.0/favicons/android-36x36.png sizes=36x36><link rel=icon type=image/png href=/v1.0/favicons/android-48x48.png sizes=48x48><link rel=icon type=image/png href=/v1.0/favicons/android-72x72.png sizes=72x72><link rel=icon type=image/png href=/v1.0/favicons/android-96x196.png sizes=96x196><link rel=icon type=image/png href=/v1.0/favicons/android-144x144.png sizes=144x144><link rel=icon type=image/png href=/v1.0/favicons/android-192x192.png sizes=192x192><link rel=manifest href=/v1.0/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=Chivo:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic,900,900italic"><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Work Sans:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic,900,900italic"><link rel=stylesheet href=https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css integrity=sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm crossorigin=anonymous><link rel=stylesheet href=https://use.fontawesome.com/releases/v5.0.6/css/all.css><link rel=stylesheet href=/v1.0/css/light_theme_archive.css title=light><link rel="alternate stylesheet" href=/v1.0/css/dark_theme_archive.css title=dark><script src=/v1.0/js/styleSwitcher.min.js></script></head><body class=language-unknown><header><nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark justify-content-between"><a class=navbar-brand href=/v1.0/zh/><span class=logo><svg viewBox="0 0 300 300"><circle cx="150" cy="150" r="150" 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=brand-name>Istioldie 1.0</span></a>
<button class=navbar-toggler type=button data-toggle=collapse data-target=#navbarCollapse aria-controls=navbarCollapse aria-expanded=false aria-label="Toggle navigation">
<span class=navbar-toggler-icon></span></button><div class="collapse navbar-collapse justify-content-end" id=navbarCollapse><ul id=navbar-links class="navbar-nav active"><li class=nav-item><a class="nav-link active" title="了解如何部署、使用和运维 Istio。" href=/v1.0/zh/docs/>文档</a></li><li class=nav-item><a class=nav-link title="关于使用 Istio 的博客文章。" href=/v1.0/zh/blog/2018/announcing-1.0/>博客</a></li><li class=nav-item><a class=nav-link title="一堆帮助您部署、配置和使用 Istio 的资源。" href=/v1.0/zh/help/>帮助</a></li><li class=nav-item><a class=nav-link title=关于Istio的说明。 href=/v1.0/zh/about/>关于</a></li><li class="nav-item dropdown" id=gearDropdown style=white-space:nowrap><a title=选项和设置 href class=nav-link data-toggle=dropdown aria-label=Tools aria-haspopup=true aria-expanded=false><i style=width:1em class="fa fa-lg fa-cog"></i></a><div class="dropdown-menu dropdown-menu-right" aria-labelledby=gearDropdown><a class=dropdown-item id=light-theme-item href onclick="setActiveStyleSheet('light');return false;">亮主题</a>
<a class=dropdown-item id=dark-theme-item href onclick="setActiveStyleSheet('dark');return false;">暗主题</a><div class=dropdown-divider></div><h6 class=dropdown-header>本站的其它版本</h6><a href=https://istio.io class=dropdown-item>当前版本</a>
<a href=https://preliminary.istio.io class=dropdown-item>下个版本</a>
<a href=https://archive.istio.io class=dropdown-item>旧版本</a></div></li><li class=nav-item><a id=search_show class=nav-link href title=搜索istio.io aria-label=Search><i style=width:1em class="fa fa-lg fa-search"></i></a></li></ul><form name=cse id=search_form class="form-inline mr-sm-2" role=search><input type=hidden name=cx value=013699703217164175118:iwwf17ikgf4>
<input type=hidden name=ie value=utf-8>
<input type=hidden name=hl value=en>
<input type=hidden id=search_page_url value=/v1.0/search.html>
<input id=search_textbox class=form-control name=q type=text aria-label="Search this site">
<button id=search_close type=reset aria-label="Cancel Search"><i class="far fa-lg fa-times-circle"></i></button></form></div></nav></header><div class=container-fluid><div class="row row-offcanvas"><div class="col-0 col-md-3 col-xl-2 sidebar-offcanvas"><nav class="sidebar d-print-none"><div class=spacer></div><div class=directory role=tablist><div class=card><div class=card-header role=tab id=header13><a data-toggle=collapse href=#collapse13 title="一些概念,理解它们有助于您更好地了解 Istio 系统的不同部分及其使用的抽象。" role=button aria-controls=collapse13><div><img src=/v1.0/img/concepts.svg alt=Icon class=page_icon>
概念</div></a></div><div id=collapse13 class="collapse show" data-parent=#sidebar role=tabpanel aria-labelledby=header13><div class=card-body><ul class=tree><li><span class=current title="介绍 Istio 及其要解决的问题、顶层架构和设计目标。">Istio 是什么?</span></li><li><a title="介绍 Istio 中关于流量路由与控制的各项功能。" href=/v1.0/zh/docs/concepts/traffic-management/>流量管理</a></li><li><a title="描述 Istio 的授权与鉴权功能。" href=/v1.0/zh/docs/concepts/security/>安全</a></li><li><a title=描述策略实施和遥测机制。 href=/v1.0/zh/docs/concepts/policies-and-telemetry/>策略与遥测</a></li><li><a title="介绍 Istio 组件的性能与可伸缩性方法论、结果和最佳实践。" href=/v1.0/zh/docs/concepts/performance-and-scalability/>性能与可伸缩性</a></li></ul></div></div></div><div class=card><div class=card-header role=tab id=header21><a data-toggle=collapse href=#collapse21 title="安装包含在不同的环境下(如 Kubernetes、Consul 等)安装 Istio 控制平面,以及在应用程序部署中安装 sidecar。" role=button aria-controls=collapse21><div><img src=/v1.0/img/setup.svg alt=Icon class=page_icon>
安装</div></a></div><div id=collapse21 class=collapse data-parent=#sidebar role=tabpanel aria-labelledby=header21><div class=card-body><ul class=tree><li class=sublist><label class=tree-toggle><i class="fa fa-lg fa-caret-right"></i><a title="关于如何在 Kubernetes 集群中安装 Istio 控制平面和添加虚拟机到 mesh 中的说明。" href=/v1.0/zh/docs/setup/kubernetes/>Kubernetes</a></label><ul class="tree collapse"><li><a title="关于 Istio 发布包下载过程的说明。" href=/v1.0/zh/docs/setup/kubernetes/download-release/>下载 Istio 发布包</a></li><li><a title="在 kubernetes 集群中快速安装 Istio service mesh 的说明。" href=/v1.0/zh/docs/setup/kubernetes/quick-start/>快速开始</a></li><li><a title="如何使用 Google Kubernetes Engine (GKE) 快速搭建 Istio 服务。" href=/v1.0/zh/docs/setup/kubernetes/quick-start-gke-dm/>使用 Google Kubernetes Engine 快速开始</a></li><li><a title="使用内含的 Helm chart 安装 Istio。" href=/v1.0/zh/docs/setup/kubernetes/helm-install/>使用 Helm 进行安装</a></li><li><a title="使用内置的 Ansible playbook 安装 Istio。" href=/v1.0/zh/docs/setup/kubernetes/ansible-install/>使用 Ansible 安装</a></li><li><a title="介绍两种将 Istio sidecar 注入应用 Pod 的方法:使用 Sidecar 注入 Webhook 自动完成,或使用 istioctl 客户端工具手工完成。" href=/v1.0/zh/docs/setup/kubernetes/sidecar-injection/>注入 Istio sidecar</a></li><li><a title="部署在 Kubernetes 之中的 Istio 服务网格,将虚拟机和物理机集成进入到服务网格的方法。" href=/v1.0/zh/docs/setup/kubernetes/mesh-expansion/>网格扩展</a></li><li><a title="安装支持多集群的 Istio。" href=/v1.0/zh/docs/setup/kubernetes/multicluster-install/>Istio 多集群设置</a></li><li><a title="演示如何独立升级 Istio 控制平面和数据平面。" href=/v1.0/zh/docs/setup/kubernetes/upgrading-istio/>升级 Istio</a></li><li><a title="这里讲述了 Istio 对 Kubernetes 中 Pod 和服务的要求。" href=/v1.0/zh/docs/setup/kubernetes/spec-requirements/>Istio 对 Pod 和服务的要求</a></li><li class=sublist><label class=tree-toggle><i class="fa fa-lg fa-caret-right"></i><a title="如何对各种平台上安装的 Kubernetes 集群进行配置,以满足 Istio 的安装和运行要求。" href=/v1.0/zh/docs/setup/kubernetes/platform-setup/>各平台下 Kubernetes 集群的配置</a></label><ul class="tree collapse"><li><a title="对 AWS 中以 Kops 安装的集群进行配置以便安装运行 Istio。" href=/v1.0/zh/docs/setup/kubernetes/platform-setup/aws/>Amazon Web Services</a></li><li><a title="对 Azure 集群进行配置以便安装运行 Istio。" href=/v1.0/zh/docs/setup/kubernetes/platform-setup/azure/>Azure</a></li><li><a title="对 Google Kubernetes EngineGKE集群进行配置以便安装运行 Istio。" href=/v1.0/zh/docs/setup/kubernetes/platform-setup/gke/>Google Kubernetes Engine</a></li><li><a title="对 IBM Cloud Kubernetes ServiceIKS集群进行配置以便安装运行 Istio。" href=/v1.0/zh/docs/setup/kubernetes/platform-setup/ibm/>IBM Cloud Kubernetes Service</a></li><li><a title="对 Minikube 集群进行配置以便安装运行 Istio。" href=/v1.0/zh/docs/setup/kubernetes/platform-setup/minikube/>Minikube</a></li><li><a title="对 OpenShift 集群进行配置以便安装运行 Istio。" href=/v1.0/zh/docs/setup/kubernetes/platform-setup/openshift/>OpenShift</a></li></ul></li></ul></li><li class=sublist><label class=tree-toggle><i class="fa fa-lg fa-caret-right"></i><a title="基于 Consul 和 Nomad 安装 Istio 控制平面。" href=/v1.0/zh/docs/setup/consul/>Nomad & Consul</a></label><ul class="tree collapse"><li><a title="通过 Docker Compose 快速安装 Istio service mesh。" href=/v1.0/zh/docs/setup/consul/quick-start/>通过 Docker 快速安装</a></li><li><a title="基于 Consul 和 Nomad 安装 Istio 控制平面。" href=/v1.0/zh/docs/setup/consul/install/>安装</a></li></ul></li></ul></div></div></div><div class=card><div class=card-header role=tab id=header27><a data-toggle=collapse href=#collapse27 title="如何用 Istio 系统实现特定目标的行为。" role=button aria-controls=collapse27><div><img src=/v1.0/img/tasks.svg alt=Icon class=page_icon>
任务</div></a></div><div id=collapse27 class=collapse data-parent=#sidebar role=tabpanel aria-labelledby=header27><div class=card-body><ul class=tree><li class=sublist><label class=tree-toggle><i class="fa fa-lg fa-caret-right"></i><a title=演示Istio流量路由功能的任务。 href=/v1.0/zh/docs/tasks/traffic-management/>流量管理</a></label><ul class="tree collapse"><li><a title="此任务向您展示如何根据权重和 HTTP header配置动态请求路由。" href=/v1.0/zh/docs/tasks/traffic-management/request-routing/>配置请求路由</a></li><li><a title=此任务说明如何注入延迟并测试应用程序的弹性。 href=/v1.0/zh/docs/tasks/traffic-management/fault-injection/>故障注入</a></li><li><a title=向您展示如何将流量从旧版本迁移到新版本的服务。 href=/v1.0/zh/docs/tasks/traffic-management/traffic-shifting/>流量转移</a></li><li><a title="本任务用于示范如何使用 Istio 在 Envoy 中设置请求超时。" href=/v1.0/zh/docs/tasks/traffic-management/request-timeouts/>设置请求超时</a></li><li><a title="介绍在服务网格 Istio 中如何配置外部公开服务。" href=/v1.0/zh/docs/tasks/traffic-management/ingress/>控制 Ingress 流量</a></li><li><a title="配置 Istio 令其以 TLS 或双向 TLS 的方式在网格外公开服务。" href=/v1.0/zh/docs/tasks/traffic-management/secure-ingress/>用 HTTPS 加密 Gateway</a></li><li><a title="在 Istio 中配置从网格内访问外部服务的流量路由。" href=/v1.0/zh/docs/tasks/traffic-management/egress/>控制 Egress 流量</a></li><li><a title="此任务描述 Istio 如何配置出口流量的 TLS。" href=/v1.0/zh/docs/tasks/traffic-management/egress-tls-origination/>出口流量的 TLS</a></li><li><a title="描述如何通过专用网关服务将流量定向到外部服务来配置 Istio。" href=/v1.0/zh/docs/tasks/traffic-management/egress-gateway/>配置 Egress 网关</a></li><li><a title=演示弹性应用所需的熔断能力。 href=/v1.0/zh/docs/tasks/traffic-management/circuit-breaking/>熔断</a></li><li><a title="此任务演示了 Istio 的流量镜像/阴影功能。" href=/v1.0/zh/docs/tasks/traffic-management/mirroring/>镜像</a></li><li><a title="展示如何对 Istio service 进行健康检查。" href=/v1.0/zh/docs/tasks/traffic-management/app-health-check/>Istio Service 健康检查</a></li></ul></li><li class=sublist><label class=tree-toggle><i class="fa fa-lg fa-caret-right"></i><a title=演示对服务网格进行安全加固的方法。 href=/v1.0/zh/docs/tasks/security/>安全</a></label><ul class="tree collapse"><li><a title="介绍如何使用 Istio 认证策略设置双向 TLS 和基本的终端用户认证。" href=/v1.0/zh/docs/tasks/security/authn-policy/>基础认证策略</a></li><li><a title="对 Istio 的自动双向 TLS 认证功能进行体验和测试。" href=/v1.0/zh/docs/tasks/security/mutual-tls/>测试双向 TLS</a></li><li><a title=展示如何在服务网格中进行基于角色的访问控制。 href=/v1.0/zh/docs/tasks/security/role-based-access-control/>基于角色的访问控制</a></li><li><a title="运维人员如何使用现有根证书配置 Citadel 进行证书以及密钥的签发。" href=/v1.0/zh/docs/tasks/security/plugin-ca-cert/>插入外部 CA 密钥和证书</a></li><li><a title="如何在 Kubernetes 中启用 Citadel 的健康检查。" href=/v1.0/zh/docs/tasks/security/health-check/>Citadel 的健康检查</a></li><li><a title="如何渐进式的为现有 Istio 服务添加双向 TLS 支持。" href=/v1.0/zh/docs/tasks/security/mtls-migration/>双向 TLS 的迁移</a></li><li><a title="展示如何在 HTTPS 服务上启用双向 TLS。" href=/v1.0/zh/docs/tasks/security/https-overlay/>通过 HTTPS 进行双向 TLS</a></li></ul></li><li class=sublist><label class=tree-toggle><i class="fa fa-lg fa-caret-right"></i><a title=演示策略实施功能。 href=/v1.0/zh/docs/tasks/policy-enforcement/>策略</a></label><ul class="tree collapse"><li><a title="这一任务展示了如何使用 Istio 动态的对服务通信进行速率限制。" href=/v1.0/zh/docs/tasks/policy-enforcement/rate-limiting/>启用速率限制</a></li><li><a title="展示使用简单的 Denier 适配器或黑白名单对服务进行访问控制的方法。" href=/v1.0/zh/docs/tasks/policy-enforcement/denial-and-list/>Denier 适配器以及黑白名单</a></li></ul></li><li class=sublist><label class=tree-toggle><i class="fa fa-lg fa-caret-right"></i><a title=演示从服务网格收集遥测信息的方法。 href=/v1.0/zh/docs/tasks/telemetry/>遥测</a></label><ul class="tree collapse"><li><a title="如何进行代理配置将跟踪请求发送给 Zipkin 或 Jaeger。" href=/v1.0/zh/docs/tasks/telemetry/distributed-tracing/>分布式跟踪</a></li><li><a title="这一任务讲述如何配置 Istio进行指标和日志的收集工作。" href=/v1.0/zh/docs/tasks/telemetry/metrics-logs/>收集指标和日志</a></li><li><a title="本任务展示了如何配置 Istio 进行 TCP 服务的指标收集。" href=/v1.0/zh/docs/tasks/telemetry/tcp-metrics/>获取 TCP 服务指标</a></li><li><a title="此任务说明如何使用 Prometheus 查询 Istio 指标。" href=/v1.0/zh/docs/tasks/telemetry/querying-metrics/>查询 Prometheus 的指标</a></li><li><a title="此任务说明如何设置和使用 Istio 仪表板来监视网格流量。" href=/v1.0/zh/docs/tasks/telemetry/using-istio-dashboard/>使用 Grafana 进行指标可视化</a></li><li><a title="此任务说明如何在 Istio 网格中生成服务图。" href=/v1.0/zh/docs/tasks/telemetry/servicegraph/>生成服务图</a></li><li><a title="此任务将展示如何配置 Istio 将日志记录到 Fluentd 守护进程。" href=/v1.0/zh/docs/tasks/telemetry/fluentd/>使用 Fluentd 记录日志</a></li></ul></li></ul></div></div></div><div class=card><div class=card-header role=tab id=header48><a data-toggle=collapse href=#collapse48 title="这里包括多个可供 Istio 使用的可完整工作的示例,你可以用来亲自部署和体验这些示例。" role=button aria-controls=collapse48><div><img src=/v1.0/img/examples.svg alt=Icon class=page_icon>
示例</div></a></div><div id=collapse48 class=collapse data-parent=#sidebar role=tabpanel aria-labelledby=header48><div class=card-body><ul class=tree><li><a title="部署一个用于演示多种 Istio 特性的应用,由四个单独的微服务构成。" href=/v1.0/zh/docs/examples/bookinfo/>Bookinfo 应用</a></li><li><a title="如何在 Istio 服务网格中使用多种流量管理功能。" href=/v1.0/zh/docs/examples/intelligent-routing/>智能路由</a></li><li><a title="演示如何使用 Istio Mixer 和 Istio sidecar 获取指标和日志,并在不同的服务间进行跟踪。" href=/v1.0/zh/docs/examples/telemetry/>深入遥测</a></li><li><a title="说明如何在谷歌云 Endpoints 服务中手动整合 Istio。" href=/v1.0/zh/docs/examples/endpoints/>在谷歌云 Endpoints 服务中安装 Istio</a></li><li><a title="在单一服务网格中,如何使用 Istio 对 Kubernetes 集群以及虚拟机进行控制。" href=/v1.0/zh/docs/examples/integrating-vms/>虚拟机集成</a></li><li><a title="基于 GKE 的 Istio 多集群安装。" href=/v1.0/zh/docs/examples/multicluster/gke/>Google Kubernetes Engine</a></li><li><a title="多 IBM Cloud Private 集群安装 Istio 示例。" href=/v1.0/zh/docs/examples/multicluster/icp/>IBM Cloud Private</a></li></ul></div></div></div><div class=card><div class=card-header role=tab id=header69><a data-toggle=collapse href=#collapse69 title="参考部分包含详细的权威参考资料,如命令行选项、配置选项和 API 调用参数。" role=button aria-controls=collapse69><div><img src=/v1.0/img/reference.svg alt=Icon class=page_icon>
参考</div></a></div><div id=collapse69 class=collapse data-parent=#sidebar role=tabpanel aria-labelledby=header69><div class=card-body><ul class=tree><li class=sublist><label class=tree-toggle><i class="fa fa-lg fa-caret-right"></i><a title=关于配置选项的详细信息。 href=/v1.0/zh/docs/reference/config/>配置</a></label><ul class="tree collapse"><li><a title="描述了使用 Helm chart 安装 Istio 时可以使用的选项。" href=/v1.0/zh/docs/reference/config/installation-options/>安装选项</a></li><li class=sublist><label class=tree-toggle><i class="fa fa-lg fa-caret-right"></i><a title=关于如何配置Istio授权特性的描述。 href=/v1.0/zh/docs/reference/config/authorization/>授权</a></label><ul class="tree collapse"></ul></li><li class=sublist><label class=tree-toggle><i class="fa fa-lg fa-caret-right"></i><a title="描述如何配置 Istio 的策略和遥测功能。" href=/v1.0/zh/docs/reference/config/policy-and-telemetry/>策略和遥测</a></label><ul class="tree collapse"><li><a title=介绍策略和控制中会用到的一些基础属性词汇。 href=/v1.0/zh/docs/reference/config/policy-and-telemetry/attribute-vocabulary/>属性词汇</a></li><li><a title="Mixer 的配置表达式语言参考。" href=/v1.0/zh/docs/reference/config/policy-and-telemetry/expression-language/>表达式语言</a></li><li class=sublist><label class=tree-toggle><i class="fa fa-lg fa-caret-right"></i><a title="Mixer 适配器能够让 Istio 连接各种基础设施后端以完成类似指标和日志这样的功能。" href=/v1.0/zh/docs/reference/config/policy-and-telemetry/adapters/>适配器</a></label><ul class="tree collapse"></ul></li><li class=sublist><label class=tree-toggle><i class="fa fa-lg fa-caret-right"></i><a title="Mixer 模板用于将数据发送到各个适配器。" href=/v1.0/zh/docs/reference/config/policy-and-telemetry/templates/>模板</a></label><ul class="tree collapse"></ul></li><li><a title="通过 Mixer 从 Istio 导出的默认监控指标Metrics。" href=/v1.0/zh/docs/reference/config/policy-and-telemetry/metrics/>默认监控指标</a></li></ul></li><li><a title=流量路由配置。 href=/v1.0/zh/docs/reference/config/istio.networking.v1alpha3/>通信路由</a></li></ul></li><li class=sublist><label class=tree-toggle><i class="fa fa-lg fa-caret-right"></i><a title="描述 Istio 命令和工具的用法及选项。" href=/v1.0/zh/docs/reference/commands/>命令</a></label><ul class="tree collapse"><li><a title="Galley 为 Istio 提供配置管理服务。" href=/v1.0/zh/docs/reference/commands/galley/>galley</a></li><li><a title="Istio 控制界面。" href=/v1.0/zh/docs/reference/commands/istioctl/>istioctl</a></li></ul></li></ul></div></div></div></div></nav></div><div class="col-12 col-md-9 col-xl-8"><p class=d-md-none><label class=sidebar-toggler data-toggle=offcanvas><i class="fa fa-sign-out-alt"></i></label></p><main aria-labelledby=title><div class=pagenav><p><a href=/v1.0/zh/docs/concepts/ title="一些概念,理解它们有助于您更好地了解 Istio 系统的不同部分及其使用的抽象。"><i style=transform:scaleX(-1) class="fa fa-level-up-alt"></i>&nbsp;概念</a></p></div><h1 id=title>Istio 是什么?</h1><nav class="toc-inlined d-xl-none d-print-none"><hr><div class=directory role=directory><nav id=InlinedTableOfContents><ul><li><a href=#heading>什么是服务网格?</a></li><li><a href=#-istio>为什么要使用 Istio</a></li><li><a href=#heading-1>核心功能</a></li><ul><li><a href=#heading-2>流量管理</a></li><li><a href=#heading-3>安全</a></li><li><a href=#heading-4>可观察性</a></li><li><a href=#heading-5>平台支持</a></li><li><a href=#heading-6>集成和定制</a></li></ul><li><a href=#heading-7>架构</a></li><ul><li><a href=#envoy>Envoy</a></li><li><a href=#mixer>Mixer</a></li><li><a href=#pilot>Pilot</a></li><li><a href=#citadel>Citadel</a></li></ul><li><a href=#heading-8>设计目标</a></li></ul></nav></div><hr></nav><p>使用云平台可以为组织提供丰富的好处。然而,不可否认的是,采用云可能会给 DevOps 团队带来压力。开发人员必须使用微服务已满足应用的可移植性同时运营商管理了极其庞大的混合和多云部署。Istio 允许您连接、保护、控制和观测服务。</p><p>在较高的层次上Istio 有助于降低这些部署的复杂性,并减轻开发团队的压力。它是一个完全开源的服务网格,可以透明地分层到现有的分布式应用程序上。它也是一个平台,包括允许它集成到任何日志记录平台、遥测或策略系统的 API。Istio 的多样化功能集使您能够成功高效地运行分布式微服务架构,并提供保护、连接和监控微服务的统一方法。</p><h2 id=heading>什么是服务网格?</h2><p>在从单体应用程序向分布式微服务架构的转型过程中,开发人员和运维人员面临诸多挑战,使用 Istio 可以解决这些问题。</p><p>服务网格Service Mesh这个术语通常用于描述构成这些应用程序的微服务网络以及应用之间的交互。随着规模和复杂性的增长服务网格越来越难以理解和管理。它的需求包括服务发现、负载均衡、故障恢复、指标收集和监控以及通常更加复杂的运维需求例如 A/B 测试、金丝雀发布、限流、访问控制和端到端认证等。</p><p>Istio 提供了一个完整的解决方案,通过为整个服务网格提供行为洞察和操作控制来满足微服务应用程序的多样化需求。</p><h2 id=-istio>为什么要使用 Istio</h2><p>Istio 提供一种简单的方式来为已部署的服务建立网络,该网络具有负载均衡、服务间认证、监控等功能,而不需要对服务的代码做任何改动。想要让服务支持 Istio只需要在您的环境中部署一个特殊的 sidecar 代理,使用 Istio 控制平面功能配置和管理代理,拦截微服务之间的所有网络通信:</p><ul><li>HTTP、gRPC、WebSocket 和 TCP 流量的自动负载均衡。</li><li>通过丰富的路由规则、重试、故障转移和故障注入,可以对流量行为进行细粒度控制。</li><li>可插入的策略层和配置 API支持访问控制、速率限制和配额。</li><li>对出入集群入口和出口中所有流量的自动度量指标、日志记录和跟踪。</li><li>通过强大的基于身份的验证和授权,在集群中实现安全的服务间通信。</li></ul><p>Istio 旨在实现可扩展性,满足各种部署需求。</p><h2 id=heading-1>核心功能</h2><p>Istio 在服务网络中统一提供了许多关键功能:</p><h3 id=heading-2>流量管理</h3><p>通过简单的规则配置和流量路由,您可以控制服务之间的流量和 API 调用。Istio 简化了断路器、超时和重试等服务级别属性的配置,并且可以轻松设置 A/B测试、金丝雀部署和基于百分比的流量分割的分阶段部署等重要任务。</p><p>通过更好地了解您的流量和开箱即用的故障恢复功能,您可以在问题出现之前先发现问题,使调用更可靠,并且使您的网络更加强大——无论您面临什么条件。</p><h3 id=heading-3>安全</h3><p>Istio 的安全功能使开发人员可以专注于应用程序级别的安全性。Istio 提供底层安全通信信道并大规模管理服务通信的认证、授权和加密。使用Istio服务通信在默认情况下是安全的它允许您跨多种协议和运行时一致地实施策略——所有这些都很少或根本不需要应用程序更改。</p><p>虽然 Istio 与平台无关,但将其与 Kubernetes或基础架构网络策略结合使用其优势会更大包括在网络和应用层保护 pod 间或服务间通信的能力。</p><h3 id=heading-4>可观察性</h3><p>Istio 强大的跟踪、监控和日志记录可让您深入了解服务网格部署。通过 Istio 的监控功能,可以真正了解服务性能如何影响上游和下游的功能,而其自定义仪表板可以提供对所有服务性能的可视性,并让您了解该性能如何影响您的其他进程。</p><p>Istio 的 Mixer 组件负责策略控制和遥测收集。它提供后端抽象和中介,将 Istio 的其余部分与各个基础架构后端的实现细节隔离开来,并为运维提供对网格和基础架构后端之间所有交互的细粒度控制。</p><p>所有这些功能可以让您可以更有效地设置、监控和实施服务上的 SLO。当然最重要的是您可以快速有效地检测和修复问题。</p><h3 id=heading-5>平台支持</h3><p>Istio 是独立于平台的旨在运行在各种环境中包括跨云、内部部署、Kubernetes、Mesos 等。您可以在 Kubernetes 上部署 Istio 或具有 Consul 的 Nomad 上部署。Istio 目前支持:</p><ul><li>在 Kubernetes 上部署的服务</li><li>使用 Consul 注册的服务</li><li>在虚拟机上部署的服务</li></ul><h3 id=heading-6>集成和定制</h3><p>策略执行组件可以扩展和定制,以便与现有的 ACL、日志、监控、配额、审计等方案集成。</p><h2 id=heading-7>架构</h2><p>Istio 服务网格逻辑上分为<strong>数据平面</strong><strong>控制平面</strong></p><ul><li><strong>数据平面</strong>由一组以 sidecar 方式部署的智能代理(<a href=https://www.envoyproxy.io/>Envoy</a>)组成。这些代理可以调节和控制微服务及 <a href=/v1.0/zh/docs/concepts/policies-and-telemetry/>Mixer</a> 之间所有的网络通信。</li><li><strong>控制平面</strong>负责管理和配置代理来路由流量。此外控制平面配置 Mixer 以实施策略和收集遥测数据。</li></ul><p>下图显示了构成每个面板的不同组件:</p><figure style=width:80%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:56.25%><a class=not-for-endnotes href=/v1.0/docs/concepts/what-is-istio/arch.svg><img class=element-to-stretch src=/v1.0/docs/concepts/what-is-istio/arch.svg alt="基于 Istio 的应用程序架构概览" title="Istio 架构"></a></div><figcaption>Istio 架构</figcaption></figure><h3 id=envoy>Envoy</h3><p>Istio 使用 <a href=https://www.envoyproxy.io/>Envoy</a> 代理的扩展版本Envoy 是以 C++ 开发的高性能代理用于调解服务网格中所有服务的所有入站和出站流量。Envoy 的许多内置功能被 istio 发扬光大,例如:</p><ul><li>动态服务发现</li><li>负载均衡</li><li>TLS 终止</li><li>HTTP/2 & gRPC 代理</li><li>熔断器</li><li>健康检查、基于百分比流量拆分的灰度发布</li><li>故障注入</li><li>丰富的度量指标</li></ul><p>Envoy 被部署为 <strong>sidecar</strong>,和对应服务在同一个 Kubernetes pod 中。这允许 Istio 将大量关于流量行为的信号作为<a href=/v1.0/zh/docs/concepts/policies-and-telemetry/#%E5%B1%9E%E6%80%A7>属性</a>提取出来,而这些属性又可以在 <a href=/v1.0/zh/docs/concepts/policies-and-telemetry/>Mixer</a> 中用于执行策略决策,并发送给监控系统,以提供整个网格行为的信息。</p><p>Sidecar 代理模型还可以将 Istio 的功能添加到现有部署中,而无需重新构建或重写代码。可以阅读更多来了解为什么我们在<a href=/v1.0/zh/docs/concepts/what-is-istio/#%E8%AE%BE%E8%AE%A1%E7%9B%AE%E6%A0%87>设计目标</a>中选择这种方式。</p><h3 id=mixer>Mixer</h3><p><a href=/v1.0/zh/docs/concepts/policies-and-telemetry/>Mixer</a> 是一个独立于平台的组件,负责在服务网格上执行访问控制和使用策略,并从 Envoy 代理和其他服务收集遥测数据。代理提取请求级<a href=/v1.0/zh/docs/concepts/policies-and-telemetry/#%E5%B1%9E%E6%80%A7>属性</a>,发送到 Mixer 进行评估。有关属性提取和策略评估的更多信息,请参见 <a href=/v1.0/zh/docs/concepts/policies-and-telemetry/#%E9%85%8D%E7%BD%AE%E6%A8%A1%E5%9E%8B>Mixer 配置</a></p><p>Mixer 中包括一个灵活的插件模型,使其能够接入到各种主机环境和基础设施后端,从这些细节中抽象出 Envoy 代理和 Istio 管理的服务。</p><h3 id=pilot>Pilot</h3><p><a href=/v1.0/zh/docs/concepts/traffic-management/#pilot-%E5%92%8C-envoy>Pilot</a> 为 Envoy sidecar 提供服务发现功能,为智能路由(例如 A/B 测试、金丝雀部署等)和弹性(超时、重试、熔断器等)提供流量管理功能。它将控制流量行为的高级路由规则转换为特定于 Envoy 的配置,并在运行时将它们传播到 sidecar。</p><p>Pilot 将平台特定的服务发现机制抽象化并将其合成为符合 <a href=https://github.com/envoyproxy/data-plane-api>Envoy 数据平面 API</a> 的任何 sidecar 都可以使用的标准格式。这种松散耦合使得 Istio 能够在多种环境下运行例如Kubernetes、Consul、Nomad同时保持用于流量管理的相同操作界面。</p><h3 id=citadel>Citadel</h3><p><a href=/v1.0/zh/docs/concepts/security/>Citadel</a> 通过内置身份和凭证管理可以提供强大的服务间和最终用户身份验证。可用于升级服务网格中未加密的流量,并为运维人员提供基于服务标识而不是网络控制的强制执行策略的能力。从 0.5 版本开始Istio 支持<a href=/v1.0/zh/docs/concepts/security/#%E8%AE%A4%E8%AF%81>基于角色的访问控制</a>,以控制谁可以访问您的服务。</p><h2 id=heading-8>设计目标</h2><p>Istio 的架构设计中有几个关键目标,这些目标对于使系统能够应对大规模流量和高性能地服务处理至关重要。</p><ul><li><p><strong>最大化透明度</strong>:若想 Istio 被采纳应该让运维和开发人员只需付出很少的代价就可以从中受益。为此Istio 将自身自动注入到服务间所有的网络路径中。Istio 使用 sidecar 代理来捕获流量,并且在尽可能的地方自动编程网络层,以路由流量通过这些代理,而无需对已部署的应用程序代码进行任何改动。在 Kubernetes中代理被注入到 pod 中,通过编写 iptables 规则来捕获流量。注入 sidecar 代理到 pod 中并且修改路由规则后Istio 就能够调解所有流量。这个原则也适用于性能。当将 Istio 应用于部署时,运维人员可以发现,为提供这些功能而增加的资源开销是很小的。所有组件和 API 在设计时都必须考虑性能和规模。</p></li><li><p><strong>增量</strong>:随着运维人员和开发人员越来越依赖 Istio 提供的功能,系统必然和他们的需求一起成长。虽然我们期望继续自己添加新功能,但是我们预计最大的需求是扩展策略系统,集成其他策略和控制来源,并将网格行为信号传播到其他系统进行分析。策略运行时支持标准扩展机制以便插入到其他服务中。此外,它允许扩展词汇表,以允许基于网格生成的新信号来执行策略。</p></li><li><p><strong>可移植性</strong>:使用 Istio 的生态系统将在很多维度上有差异。Istio 必须能够以最少的代价运行在任何云或预置环境中。将基于 Istio 的服务移植到新环境应该是轻而易举的,而使用 Istio 将一个服务同时部署到多个环境中也是可行的(例如,在多个云上进行冗余部署)。</p></li><li><p><strong>策略一致性</strong>:在服务间的 API 调用中,策略的应用使得可以对网格间行为进行全面的控制,但对于无需在 API 级别表达的资源来说,对资源应用策略也同样重要。例如,将配额应用到 ML 训练任务消耗的 CPU 数量上,比将配额应用到启动这个工作的调用上更为有用。因此,策略系统作为独特的服务来维护,具有自己的 API而不是将其放到代理/sidecar 中,这容许服务根据需要直接与其集成。</p></li></ul></main><div class="container-fluid d-print-none"><br><div class=row><div class="col-6 pagenav"></div><div class="col-6 pagenav" style=text-align:right><p><a title="介绍 Istio 中关于流量路由与控制的各项功能。" href=/v1.0/zh/docs/concepts/traffic-management/>流量管理
<i class="fa fa-long-arrow-alt-right"></i></a></p></div></div></div><div class="d-none d-print-block" aria-hidden=true><h2>Links</h2><ol id=endnotes></ol></div></div><div class="col-12 col-md-2 d-none d-xl-block d-print-none"><nav class=toc><div class=spacer></div><div id=toc class=directory role=directory><nav id=TableOfContents><ul><li><a href=#heading>什么是服务网格?</a></li><li><a href=#-istio>为什么要使用 Istio</a></li><li><a href=#heading-1>核心功能</a></li><ul><li><a href=#heading-2>流量管理</a></li><li><a href=#heading-3>安全</a></li><li><a href=#heading-4>可观察性</a></li><li><a href=#heading-5>平台支持</a></li><li><a href=#heading-6>集成和定制</a></li></ul><li><a href=#heading-7>架构</a></li><ul><li><a href=#envoy>Envoy</a></li><li><a href=#mixer>Mixer</a></li><li><a href=#pilot>Pilot</a></li><li><a href=#citadel>Citadel</a></li></ul><li><a href=#heading-8>设计目标</a></li></ul></nav></div></nav></div></div></div><footer class="d-print-none container-fluid"><div class=row><div class="col-5 col-lg-4" role=navigation><div class=container-fluid><div class=row><div class=icon><span>discuss</span>
<a title="Join the Istio discussion board to participate in discussions and get help troubleshooting problems" href=https://discuss.istio.io aria-label="Istio discussion board"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M225.9 32C103.3 32 0 130.5.0 252.1.0 256 .1 480 .1 480l225.8-.2c122.7.0 222.1-102.3 222.1-223.9S348.6 32 225.9 32zM224 384c-19.4.0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z" /></svg></a></div><div class=icon><span>slack</span>
<a title="在 Slack 上与 Istio 社区交互讨论开发问题(仅限邀请)" href=https://istio.slack.com aria-label=slack><svg viewBox="0 0 31.444 31.443"><path d="M31.202 16.369c-.62-1.388-2.249-2.011-3.637-1.391l-1.325.594-3.396-7.591 1.325-.592c1.388-.622 2.01-2.25 1.389-3.637-.62-1.389-2.248-2.012-3.637-1.39l-1.324.593-.593-1.326c-.621-1.388-2.249-2.009-3.637-1.388-1.388.62-2.009 2.247-1.389 3.637l.593 1.325L7.98 8.598 7.388 7.273c-.621-1.39-2.249-2.009-3.637-1.39C2.363 6.504 1.742 8.132 2.362 9.52l.592 1.324L1.63 11.438c-1.388.621-2.01 2.247-1.389 3.636.62 1.388 2.249 2.01 3.637 1.39l1.325-.594 3.394 7.592-1.325.592c-1.388.621-2.009 2.25-1.389 3.637.621 1.389 2.249 2.011 3.637 1.391l1.324-.593.593 1.325c.621 1.389 2.249 2.01 3.637 1.389 1.387-.62 2.009-2.248 1.388-3.636l-.591-1.326 7.591-3.394.592 1.321c.621 1.391 2.248 2.013 3.637 1.392 1.388-.619 2.01-2.248 1.389-3.637l-.592-1.324 1.323-.594C31.201 19.384 31.823 17.757 31.202 16.369zM13.623 21.215l-3.395-7.593 7.591-3.394 3.395 7.591L13.623 21.215z"/></svg></a></div><div class=icon><span>twitter</span>
<a title="关注我们的 Twitter 来获最新信息" href=https://twitter.com/IstioMesh aria-label=Twitter><svg viewBox="0 0 310 310"><path d="M302.973 57.388c-4.87 2.16-9.877 3.983-14.993 5.463 6.057-6.85 10.675-14.91 13.494-23.73.632-1.977-.023-4.141-1.648-5.434-1.623-1.294-3.878-1.449-5.665-.39-10.865 6.444-22.587 11.075-34.878 13.783-12.381-12.098-29.197-18.983-46.581-18.983-36.695.0-66.549 29.853-66.549 66.547.0 2.89.183 5.764.545 8.598C101.163 99.244 58.83 76.863 29.76 41.204c-1.036-1.271-2.632-1.956-4.266-1.825-1.635.128-3.104 1.05-3.93 2.467-5.896 10.117-9.013 21.688-9.013 33.461.0 16.035 5.725 31.249 15.838 43.137-3.075-1.065-6.059-2.396-8.907-3.977-1.529-.851-3.395-.838-4.914.033-1.52.871-2.473 2.473-2.513 4.224-.007.295-.007.59-.007.889.0 23.935 12.882 45.484 32.577 57.229-1.692-.169-3.383-.414-5.063-.735-1.732-.331-3.513.276-4.681 1.597-1.17 1.32-1.557 3.16-1.018 4.84 7.29 22.76 26.059 39.501 48.749 44.605-18.819 11.787-40.34 17.961-62.932 17.961-4.714.0-9.455-.277-14.095-.826-2.305-.274-4.509 1.087-5.294 3.279-.785 2.193.047 4.638 2.008 5.895 29.023 18.609 62.582 28.445 97.047 28.445 67.754.0 110.139-31.95 133.764-58.753 29.46-33.421 46.356-77.658 46.356-121.367.0-1.826-.028-3.67-.084-5.508 11.623-8.757 21.63-19.355 29.773-31.536 1.237-1.85 1.103-4.295-.33-5.998C307.394 57.037 305.009 56.486 302.973 57.388z"/></svg></a></div><div class=icon><span>stack overflow</span>
<a title="Stack Overflow 中列举了针对实际问题以及部署、配置和使用 Istio 的各项回答" href=https://stackoverflow.com/questions/tagged/istio aria-label="Stack Overflow"><svg viewBox="0 0 120 120"><polygon points="84.4,93.8 84.4,70.6 92.1,70.6 92.1,101.5 22.6,101.5 22.6,70.6 30.3,70.6 30.3,93.8"/><path d="M38.8 68.4l37.8 7.9 1.6-7.6-37.8-7.9L38.8 68.4zM43.8 50.4l35 16.3 3.2-7-35-16.4L43.8 50.4zM53.5 33.2l29.7 24.7 4.9-5.9L58.4 27.3 53.5 33.2zM72.7 14.9l-6.2 4.6 23 31 6.2-4.6-23-31zM38 86h38.6v-7.7H38V86z"/></svg></a></div></div><div class="tag row d-none d-lg-flex">对于用户</div></div></div><div class="col-7 col-lg-4"><p class="text-center copyright" role=contentinfo>Istio
Archive
1.0<br>&copy; 2019 Istio Authors, <a href=https://policies.google.com/privacy>Privacy Policy</a><br>Archived on March 19, 2019</p></div><div class="col-6 col-lg-4 d-none d-lg-flex" role=navigation><div class=container-fluid><div class="row justify-content-end"><div class=icon><span>github</span>
<a title="Istio 的代码在 GitHub 上开发" href=https://github.com/istio/community aria-label=GitHub><svg viewBox="0 0 478.165 478.165"><path d="M349.22 55.768c6.136 14.046 10.241 37.556 4.224 54.69 24.426 20.999 33.073 71.904 21.079 113.704 35.006 2.73 76.666-1.235 103.642 9.484-25.183-3.248-59.651-9.563-91.987-7.431-6.136.458-15.361-.239-14.903 8.408 37.735 3.008 75.092 6.117 105.894 15.779-30.702-4.981-67.74-12.552-105.894-13.668-15.54 30.921-47.239 46.262-90.991 49.49 4.682 10.261 13.847 14.066 15.879 30.702 3.267 24.406-4.881 60.328 3.208 76.686 4.064 7.89 10.579 8.009 14.863 14.604-10.699 12.871-37.257-1.395-40.186-14.604-5.14-22.852 7.89-58.256-6.415-73.737.996 24.865-5.718 59.85.996 82.145 2.789 8.806 10.659 12.113 8.647 20.063-49.809 5.08-28.989-64.373-37.177-105.356-7.471.697-4.204 11.197-4.224 15.76-.199 40.106 8.189 94.836-34.846 89.556-1.315-8.348 5.838-11.217 8.467-19.007 7.91-22.434-1.454-56.045 2.112-83.161-16.417 12.512 1.793 55.666-8.428 77.961-5.838 12.671-24.785 18.27-39.19 12.651 1.873-9.464 11.695-7.989 15.879-16.875 5.818-12.452.02-30.244 2.092-48.494-30.423 6.097-53.993-.877-65.608-20.023-5.12-8.507-6.356-18.708-12.632-26.219-6.117-7.551-16.098-8.507-19.087-18.808 37.755-9.185 39.17 38.771 73.06 39.807 10.44.418 15.799-2.909 25.402-5.16 2.749-12.113 8.428-21.039 16.875-27.494-42.078-5.658-76.865-18.788-93.023-50.466-38.293 1.893-73.339 7.013-105.894 14.843 29.547-10.679 65.807-14.604 104.778-15.819-2.351-13.807-22.434-10.022-34.866-9.543C47.677 227.17 18.449 230.138.0 233.645c26.817-9.543 64.233-8.348 100.454-8.428-11.038-34.767-7.232-90.014 17.015-110.615-6.854-17.254-4.722-45.346 4.184-58.834 27.036 1.175 43.374 12.891 60.388 24.247 21.019-6.017 43.035-9.045 71.904-7.451 12.133.677 24.705 6.097 33.731 5.32 8.906-.877 18.728-10.898 27.534-14.843C326.507 58.099 336.17 56.206 349.22 55.768z"/></svg></a></div><div class=icon><span>drive</span>
<a title="如果您想深入了解 Istio 的技术细节,请查看我们日益完善的设计文档" href=https://groups.google.com/forum/#!forum/istio-team-drive-access aria-label="team drive"><svg viewBox="0 0 207.027 207.027"><path d="M69.866 15.557.0 138.919l28.732 52.552 143.288-.029 35.008-59.588L136.39 15.735 69.866 15.557zM17.166 139.046 74.268 38.205 91.21 67.783 33.24 168.447 17.166 139.046zM99.841 82.851l23.805 41.558-47.732-.006L99.841 82.851zM163.434 176.443l-117.332.024 21.53-37.065 64.606.008.067.119 52.865-.085L163.434 176.443zM140.932 124.411 90.157 35.767l-2.966-5.178 40.751.121 57.003 93.706L140.932 124.411z"/></svg></a></div><div class=icon><span>working groups</span>
<a title="如果您想为 Istio 项目做出贡献,请考虑加入我们的工作组" href=https://github.com/istio/community/blob/master/WORKING-GROUPS.md aria-label="working groups"><svg viewBox="0 -45 439.833 439.833"><polygon points="246.048,195.833 299.966,235.085 319.497,227.296 276.278,195.833"/><polygon points="193.786,195.833 163.556,195.833 120.33,227.3 139.862,235.089"/><path d="M219.927 11.558c-23.854.0-37.057 12.362-36.814 36.182.348 32.623 14.211 52.414 36.814 52.068.0.0 36.802 1.492 36.802-52.068C256.729 23.918 244.294 11.558 219.927 11.558z"/><path d="M285.017 124.567l-36.77-14.659-8.608-7.256c-2.274-1.922-5.636-1.78-7.741.317l-11.973 11.904-12.008-11.907c-2.109-2.094-5.465-2.229-7.736-.313l-8.611 7.256-36.77 14.661c-11.842 4.715-11.83 46.647-12.848 50.497h155.93C296.866 171.228 296.862 129.28 285.017 124.567z"/><path d="M77.976 228.568s36.801 1.492 36.801-52.068c0-23.82-12.434-36.182-36.801-36.182-23.854.0-37.057 12.362-36.814 36.182C41.509 209.124 55.372 228.915 77.976 228.568z"/><path d="M143.065 253.329l-36.77-14.658-8.609-7.256c-2.275-1.923-5.635-1.781-7.742.315l-11.971 11.904-12.008-11.908c-2.109-2.094-5.465-2.229-7.736-.312l-8.611 7.256-36.77 14.66C1.006 258.045 1.018 299.977.0 303.827h155.93C154.915 299.988 154.911 258.042 143.065 253.329z"/><path d="M361.878 228.568s36.801 1.492 36.801-52.068c0-23.82-12.434-36.182-36.801-36.182-23.854.0-37.057 12.362-36.812 36.182C325.411 209.124 339.274 228.915 361.878 228.568z"/><path d="M426.968 253.329l-36.77-14.658-8.609-7.256c-2.273-1.923-5.635-1.781-7.742.315l-11.971 11.904-12.008-11.908c-2.109-2.094-5.465-2.229-7.736-.312l-8.61 7.256-36.771 14.66c-11.842 4.715-11.83 46.646-12.848 50.497h155.93C438.817 299.988 438.812 258.042 426.968 253.329z"/></svg></a></div></div><div class="tag row justify-content-end text-right">对于开发者</div></div></div></div></footer><div class="d-xl-none d-print-none"><button id=scroll-to-top aria-hidden=true onclick=scrollToTop() title="Back to top"><i class="fa fa-lg fa-arrow-up"></i></button></div><script src=https://code.jquery.com/jquery-3.2.1.slim.min.js integrity=sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN crossorigin=anonymous></script><script src=https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js integrity=sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl crossorigin=anonymous></script><script src=https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js></script><script src="https://www.google.com/cse/brand?form=search_form"></script><script src=/v1.0/js/all.min.js data-manual></script></body></html>