istio.io/archive/v1.20/zh/blog/2022/istioctl-proxy/index.html

118 lines
30 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="为从集群配置 istioctl"><meta name=description content="使用代理服务器在具有外部控制平面的网格中支持 istioctl 命令。"><meta name=author content="Frank Budinsky (IBM)"><meta name=keywords content="microservices,services,mesh,istioctl,cli,external,remote,multicluster"><meta property="og:title" content="为从集群配置 istioctl"><meta property="og:type" content="website"><meta property="og:description" content="使用代理服务器在具有外部控制平面的网格中支持 istioctl 命令。"><meta property="og:url" content="/v1.20/zh/blog/2022/istioctl-proxy/"><meta property="og:image" content="https://raw.githubusercontent.com/istio/istio.io/master/static/img/istio-social.png"><meta property="og:image:alt" content="The Istio sailboat logo"><meta property="og:image:width" content="4096"><meta property="og:image:height" content="2048"><meta property="og:site_name" content="Istio"><meta name=twitter:card content="summary_large_image"><meta name=twitter:site content="@IstioMesh"><title>Istioldie 1.20 / 为从集群配置 istioctl</title>
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-98480406-2"></script><script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag("js",new Date),gtag("config","UA-98480406-2")</script><link rel=alternate type=application/rss+xml title="Istio Blog" href=/v1.20/blog/feed.xml><link rel=alternate type=application/rss+xml title="Istio News" href=/v1.20/news/feed.xml><link rel=alternate type=application/rss+xml title="Istio Blog and News" href=/v1.20/feed.xml><link rel="shortcut icon" href=/v1.20/favicons/favicon.ico><link rel=apple-touch-icon href=/v1.20/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/v1.20/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/v1.20/favicons/favicon-32x32.png sizes=32x32><link rel=icon type=image/png href=/v1.20/favicons/android-36x36.png sizes=36x36><link rel=icon type=image/png href=/v1.20/favicons/android-48x48.png sizes=48x48><link rel=icon type=image/png href=/v1.20/favicons/android-72x72.png sizes=72x72><link rel=icon type=image/png href=/v1.20/favicons/android-96x96.png sizes=96xW96><link rel=icon type=image/png href=/v1.20/favicons/android-144x144.png sizes=144x144><link rel=icon type=image/png href=/v1.20/favicons/android-192x192.png sizes=192x192><link rel=icon type=image/svg+xml href=/v1.20/favicons/favicon.svg><link rel=icon type=image/png href=/v1.20/favicons/favicon.png><link rel=mask-icon href=/v1.20/favicons/safari-pinned-tab.svg color=#466BB0><link rel=manifest href=/v1.20/manifest.json><meta name=apple-mobile-web-app-title content="Istio"><meta name=application-name content="Istio"><meta name=msapplication-config content="/browserconfig.xml"><meta name=msapplication-TileColor content="#466BB0"><meta name=theme-color content="#466BB0"><link rel=stylesheet href=/v1.20/css/all.css><link rel=preconnect href=https://fonts.googleapis.com><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css2?family=Barlow:ital,wght@0,400;0,500;0,600;0,700;1,400;1,600&display=swap"><script src=/v1.20/js/themes_init.min.js></script></head><body class="language-unknown archive-site"><script>const branchName="release-1.20",docTitle="为从集群配置 istioctl",iconFile="/v1.20//img/icons.svg",buttonCopy="复制到剪切板",buttonPrint="打印",buttonDownload="下载"</script><script src="https://www.google.com/cse/brand?form=search-form" defer></script><script src=/v1.20/js/all.min.js data-manual defer></script><header class=main-navigation><nav class="main-navigation-wrapper container-l"><div class=main-navigation-header><a id=brand href=/v1.20/zh/ aria-label=logotype><span class=logo><svg xmlns="http://www.w3.org/2000/svg" width="128" height="60" viewBox="0 0 128 60"><path d="M58.434 48.823A.441.441.0 0158.3 48.497V22.583a.444.444.0 01.134-.326.446.446.0 01.327-.134h3.527a.447.447.0 01.325.134.447.447.0 01.134.326v25.914a.443.443.0 01-.134.326.444.444.0 01-.325.134h-3.527a.444.444.0 01-.327-.134z"/><path d="m70.969 48.477a6.556 6.556.0 01-2.818-1.955 4.338 4.338.0 01-1-2.78v-.345a.443.443.0 01.134-.326.444.444.0 01.326-.135h3.374a.444.444.0 01.326.135.445.445.0 01.134.326v.077a2.014 2.014.0 001.054 1.667 4.672 4.672.0 002.664.709 4.446 4.446.0 002.492-.633 1.862 1.862.0 00.958-1.591 1.426 1.426.0 00-.786-1.322 12.7 12.7.0 00-2.549-.939l-1.457-.46a21.526 21.526.0 01-3.3-1.227 6.57 6.57.0 01-2.262-1.783 4.435 4.435.0 01-.92-2.894 5.081 5.081.0 012.109-4.275 8.993 8.993.0 015.558-1.591 10.445 10.445.0 014.1.748 6.3 6.3.0 012.722 2.07 5 5 0 01.958 3.009.441.441.0 01-.134.326.441.441.0 01-.325.134h-3.258a.441.441.0 01-.326-.134.443.443.0 01-.134-.326 1.974 1.974.0 00-.978-1.667 4.647 4.647.0 00-2.665-.671 4.741 4.741.0 00-2.435.556 1.724 1.724.0 00-.938 1.553 1.512 1.512.0 00.9 1.4 15.875 15.875.0 003.01 1.055l.843.229a27.368 27.368.0 013.412 1.246 6.67 6.67.0 012.338 1.763 4.387 4.387.0 01.958 2.933 4.988 4.988.0 01-2.146 4.275 9.543 9.543.0 01-5.712 1.552 11.626 11.626.0 01-4.227-.709z"/><path d="m97.039 32.837a.443.443.0 01-.326.135h-3.911a.169.169.0 00-.191.192v9.239a2.951 2.951.0 00.632 2.108 2.7 2.7.0 002.013.652h1.15a.444.444.0 01.325.134.441.441.0 01.134.326v2.875a.471.471.0 01-.459.5l-1.994.039a8 8 0 01-4.524-1.035q-1.495-1.035-1.533-3.91V33.166A.17.17.0 0088.164 32.974H85.978A.441.441.0 0185.652 32.839.441.441.0 0185.518 32.513V29.83a.441.441.0 01.134-.326.444.444.0 01.326-.135h2.186a.169.169.0 00.191-.192v-4.485a.438.438.0 01.134-.326.44.44.0 01.325-.134h3.336a.443.443.0 01.325.134.442.442.0 01.135.326v4.485a.169.169.0 00.191.192h3.911a.446.446.0 01.326.135.446.446.0 01.134.326v2.683a.446.446.0 01-.133.324z"/><path d="m101.694 25.917a2.645 2.645.0 01-.767-1.955 2.65 2.65.0 01.767-1.955 2.65 2.65.0 011.955-.767 2.65 2.65.0 011.955.767 2.652 2.652.0 01.767 1.955 2.647 2.647.0 01-.767 1.955 2.646 2.646.0 01-1.955.767 2.645 2.645.0 01-1.955-.767zm-.211 22.906a.441.441.0 01-.134-.326V29.79a.444.444.0 01.134-.326.446.446.0 01.326-.134h3.527a.446.446.0 01.326.134.445.445.0 01.134.326v18.707a.443.443.0 01-.134.326.443.443.0 01-.326.134h-3.527a.443.443.0 01-.326-.134z"/><path d="m114.019 47.734a8.1 8.1.0 01-3.047-4.255 14.439 14.439.0 01-.652-4.37 14.3 14.3.0 01.614-4.371A7.869 7.869.0 01114 30.56a9.072 9.072.0 015.252-1.5 8.543 8.543.0 015.041 1.5 7.985 7.985.0 013.009 4.14 12.439 12.439.0 01.69 4.37 13.793 13.793.0 01-.651 4.37 8.255 8.255.0 01-3.028 4.275 8.475 8.475.0 01-5.1 1.553 8.754 8.754.0 01-5.194-1.534zm7.629-3.1a4.536 4.536.0 001.476-2.262 11.335 11.335.0 00.383-3.221 10.618 10.618.0 00-.383-3.22 4.169 4.169.0 00-1.457-2.243 4.066 4.066.0 00-2.531-.785 3.942 3.942.0 00-2.453.785 4.376 4.376.0 00-1.5 2.243 11.839 11.839.0 00-.383 3.22 11.84 11.84.0 00.383 3.221 4.222 4.222.0 001.476 2.262 4.075 4.075.0 002.549.8 3.8 3.8.0 002.44-.809z"/><path d="m15.105 32.057v15.565a.059.059.0 01-.049.059L.069 50.25A.06.06.0 01.005 50.167l14.987-33.47a.06.06.0 01.114.025z"/><path d="m17.631 23.087v24.6a.06.06.0 00.053.059l22.449 2.507a.06.06.0 00.061-.084L17.745.032a.06.06.0 00-.114.024z"/><path d="m39.961 52.548-24.833 7.45a.062.062.0 01-.043.0L.079 52.548a.059.059.0 01.026-.113h39.839a.06.06.0 01.017.113z"/></svg></span>
</a><button id=hamburger class=main-navigation-toggle aria-label="Open navigation">
<svg class="icon menu-hamburger"><use xlink:href="/v1.20/img/icons.svg#menu-hamburger"/></svg>
</button>
<button id=menu-close class=main-navigation-toggle aria-label="Close navigation"><svg class="icon menu-close"><use xlink:href="/v1.20/img/icons.svg#menu-close"/></svg></button></div><div id=header-links class=main-navigation-links-wrapper><ul class=main-navigation-links><li class=main-navigation-links-item><a class="main-navigation-links-link has-dropdown"><span>关于</span><svg class="icon dropdown-arrow"><use xlink:href="/v1.20/img/icons.svg#dropdown-arrow"/></svg></a><ul class=main-navigation-links-dropdown><li class=main-navigation-links-dropdown-item><a href=/v1.20/zh/about/service-mesh class=main-navigation-links-link>服务网格</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.20/zh/about/solutions class=main-navigation-links-link>解决方案</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.20/zh/about/case-studies class=main-navigation-links-link>案例学习</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.20/zh/about/ecosystem class=main-navigation-links-link>生态系统</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.20/zh/about/deployment class=main-navigation-links-link>部署</a></li><li class=main-navigation-links-dropdown-item><a href=/v1.20/zh/about/faq class=main-navigation-links-link>FAQ</a></li></ul></li><li class=main-navigation-links-item><a href=/v1.20/zh/blog/ class=main-navigation-links-link><span>博客</span></a></li><li class=main-navigation-links-item><a href=/v1.20/zh/news/ class=main-navigation-links-link><span>新闻</span></a></li><li class=main-navigation-links-item><a href=/v1.20/zh/get-involved/ class=main-navigation-links-link><span>加入我们</span></a></li><li class=main-navigation-links-item><a href=/v1.20/zh/docs/ class=main-navigation-links-link><span>文档</span></a></li></ul><div class=main-navigation-footer><button id=search-show class=search-show title='搜索 istio.io' aria-label=搜索><svg class="icon magnifier"><use xlink:href="/v1.20/img/icons.svg#magnifier"/></svg></button>
<a href=/v1.20/zh/docs/setup/getting-started class="btn btn--primary" id=try-istio>试用 Istio</a></div></div><form id=search-form class=search name=cse role=search><input type=hidden name=cx value=002184991200833970123:iwwf17ikgf4>
<input type=hidden name=ie value=utf-8>
<input type=hidden name=hl value=zh>
<input type=hidden id=search-page-url value=/zh/search>
<input id=search-textbox class="search-textbox form-control" name=q type=search aria-label='搜索 istio.io' placeholder=搜索>
<button id=search-close title=取消搜索 type=reset aria-label=取消搜索><svg class="icon menu-close"><use xlink:href="/v1.20/img/icons.svg#menu-close"/></svg></button></form></nav></header><div class=banner-container></div><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=header-content><h1>为从集群配置 istioctl</h1><p>使用代理服务器在具有外部控制平面的网格中支持 istioctl 命令。</p></div><p class=post-author>Mar 25, 2022 <span>| </span>By Frank Budinsky - IBM</p><div><p>当在 <span class=term data-title="Remote Cluster" data-body='<p>从集群是一个连接到集群外部
<a href="/zh/docs/reference/glossary/#control-plane">控制平面</a>
的<a href="/zh/docs/reference/glossary/#cluster">集群</a>。
从集群可以连接到
<a href="/zh/docs/reference/glossary/#primary-cluster">主集群</a>
的控制平面,或连接到一个
<a href="/zh/docs/reference/glossary/#external-control-plane">外部控制平面</a>。</p>
'>remote cluster</span>
<a href=/v1.20/zh/docs/setup/install/external-controlplane/>外部控制平面</a><a href=/v1.20/zh/docs/setup/install/multicluster/>多集群</a>
Istio 部署中使用 <code>istioctl</code> CLI 时,默认情况下某些命令将不起作用。
例如,<code>istioctl proxy-status</code> 需要访问 <code>istiod</code>
服务来对其管理的代理状态和配置执行检索操作。所以,如果您尝试在从集群上运行它,
您将收到如下错误消息:</p><pre><code><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ istioctl proxy-status
Error: unable to find any Istiod instances
</code></pre></code></pre><p>请注意,错误消息不仅表示无法访问 <code>istiod</code> 服务,而且还特别提到无法找到
<code>istiod</code> 实例。这是因为 <code>istioctl proxy-status</code>
命令的实现不仅需要检索单个 <code>istiod</code> 实例的同步状态,
而且也需要检索其他所有实例的同步状态。当存在多个 <code>istiod</code>
实例(副本)在运行时,每个实例仅为连接到网格中运行服务代理的一个子集。
<code>istioctl</code> 命令需要返回整个网格的状态,
而不仅仅是返回其中一个实例所管理的子集信息。</p><p><code>istiod</code> 服务运行在集群(即,<span class=term data-title="Primary Cluster" data-body='<p>主集群是具有<a href="/zh/docs/reference/glossary/#control-plane">控制平面</a>
的<a href="/zh/docs/reference/glossary/#cluster">集群</a>。
一个网格可以有一个以上的主集群,以用于 HA 或需要低延迟的场景。
主集群可以充当<a href="/zh/docs/reference/glossary/#remote-cluster">从集群</a>的控制平面。</p>
'>primary cluster</span>)本地的普通
Istio 环境中,通过简单查找所有正在运行中 <code>istiod</code> Pod 的命令,
依次调用每个 Pod然后再聚合这些结果并返回给用户。</p><figure style=width:75%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:50.168828057550705%><a data-skipendnotes=true href=/v1.20/zh/blog/2022/istioctl-proxy/istioctl-primary-cluster.svg title="具有对 istiod Pod 本地访问权限的 CLI"><img class=element-to-stretch src=/v1.20/zh/blog/2022/istioctl-proxy/istioctl-primary-cluster.svg alt="具有对 istiod Pod 本地访问权限的 CLI"></a></div><figcaption>具有对 istiod Pod 本地访问权限的 CLI</figcaption></figure><p>另一方面,当使用从集群时,这个方式就变得不可行,因为 <code>istiod</code>
实例在网格集群之外运行,并且对于网格用户来说是无法访问的。
这些实例甚至可能不会使用 Kubernetes 集群上的 Pod 进行部署。</p><p>幸运的是,<code>istioctl</code> 提供了一个配置选项来解决这个问题。
您可以使用能访问 <code>istiod</code> 实例的外部代理服务地址配置 <code>istioctl</code>
与只会将请求委托给一个具体的实例的普通负载均衡器服务不同,
此代理服务会代替委托到所有 <code>istiod</code> 实例,聚合响应,然后返回组合结果。</p><p>如果外部代理服务实际上在另一个 Kubernetes 集群上运行,
则代理实现代码可能与 <code>istioctl</code> 在主集群情况下运行的实现代码非常相似,
就是找到所有正在运行的 <code>istiod</code> Pod依次调用每一个然后聚合结果。</p><figure style=width:75%><div class=wrapper-with-intrinsic-ratio style=padding-bottom:68.64155561599131%><a data-skipendnotes=true href=/v1.20/zh/blog/2022/istioctl-proxy/istioctl-remote-cluster.svg title="不具有对 istiod Pod 本地访问权限的 CLI"><img class=element-to-stretch src=/v1.20/zh/blog/2022/istioctl-proxy/istioctl-remote-cluster.svg alt="不具有对 istiod Pod 本地访问权限的 CLI"></a></div><figcaption>不具有对 istiod Pod 本地访问权限的 CLI</figcaption></figure><p>可以在<a href=https://github.com/istio-ecosystem/istioctl-proxy-sample>此处</a>找到包含此类
<code>istioctl</code> 代理服务器实现的 Istio 生态系统项目。要试用它,
您需要两个集群,其中一个集群使用安装在另一个集群中的控制平面将其配置为从集群。</p><h2 id=install-istio-with-a-remote-cluster-topology>使用从集群拓扑安装 Istio</h2><p>为了演示 <code>istioctl</code> 在从集群上的工作情况,
我们将首先使用<a href=/v1.20/zh/docs/setup/install/external-controlplane/>外部控制平面安装说明</a>来安装一个具有在另一个外部集群中运行外部控制平面的独立外部网格。</p><p>完成安装后,我们应该有两个环境变量,<code>CTX_REMOTE_CLUSTER</code><code>CTX_EXTERNAL_CLUSTER</code>
分别包含远程(网格)和外部(控制平面)集群的上下文名称。</p><p>我们还应该在网格中运行 <code>helloworld</code><code>sleep</code>
示例程序,比如在从集群上运行它们:</p><pre><code><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ kubectl get pod -n sample --context=&#34;${CTX_REMOTE_CLUSTER}&#34;
NAME READY STATUS RESTARTS AGE
helloworld-v1-776f57d5f6-tmpkd 2/2 Running 0 10s
sleep-557747455f-v627d 2/2 Running 0 9s
</code></pre></code></pre><p>请注意,如果您尝试在从集群中运行 <code>istioctl proxy-status</code> 命令,
您将看到前面描述的错误消息:</p><pre><code><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ istioctl proxy-status --context=&#34;${CTX_REMOTE_CLUSTER}&#34;
Error: unable to find any Istiod instances
</code></pre></code></pre><h2 id=configure-istioctl-to-use-the-sample-proxy-service>为 istioctl 配置和使用简单的代理服务</h2><p>要对 <code>istioctl</code> 进行配置,我们首先需要在运行中的 <code>istiod</code> Pod 处部署代理服务。
在我们的安装中,已经在 <code>external-istiod</code> 命名空间中部署了控制平面,
因此可以使用以下命令在外部集群上启动代理服务:</p><pre><code><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ kubectl apply -n external-istiod --context=&#34;${CTX_EXTERNAL_CLUSTER}&#34; \
-f https://raw.githubusercontent.com/istio-ecosystem/istioctl-proxy-sample/main/istioctl-proxy.yaml
service/istioctl-proxy created
serviceaccount/istioctl-proxy created
secret/jwt-cert-key-secret created
deployment.apps/istioctl-proxy created
role.rbac.authorization.k8s.io/istioctl-proxy-role created
rolebinding.rbac.authorization.k8s.io/istioctl-proxy-role created
</code></pre></code></pre><p>您可以运行以下命令来确认 <code>istioctl-proxy</code> 服务与 <code>istiod</code> 是否在一起运行:</p><pre><code><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ kubectl get po -n external-istiod --context=&#34;${CTX_EXTERNAL_CLUSTER}&#34;
NAME READY STATUS RESTARTS AGE
istioctl-proxy-664bcc596f-9q8px 1/1 Running 0 15s
istiod-666fb6694d-jklkt 1/1 Running 0 5m31s
</code></pre></code></pre><p>代理服务是一个端口为 9090 的 gRPC 服务器:</p><pre><code><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ kubectl get svc istioctl-proxy -n external-istiod --context=&#34;${CTX_EXTERNAL_CLUSTER}&#34;
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
istioctl-proxy ClusterIP 172.21.127.192 &lt;none&gt; 9090/TCP 11m
</code></pre></code></pre><p>然而,在我们使用它之前,我们需要将它暴露在外部集群之外。
由于部署环境的不同,有很多方法可以做到这一点。在当前设置中,
我们拥有一个在外部集群上运行的入口网关,因此我们可以更新它来暴露 9090 端口,
然后更新关联的虚拟服务用来将 9090 端口的请求定向到代理服务中,
然后配置 <code>istioctl</code>,使用网关地址作为代理服务地址。这是其中一种“合适”的方法。</p><p>然而,这只是一个简单地将代理服务 <code>port-forward</code><code>localhost</code> 的方式,
让我们可以访问两个集群的简单演示:</p><pre><code><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ kubectl port-forward -n external-istiod service/istioctl-proxy 9090:9090 --context=&#34;${CTX_EXTERNAL_CLUSTER}&#34;
</code></pre></code></pre><p>我们现在通过设置 <code>ISTIOCTL_XDS_ADDRESS</code> 环境变量将 <code>istioctl</code>
的访问代理配置为使用 <code>localhost:9090</code> 地址:</p><pre><code><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ export ISTIOCTL_XDS_ADDRESS=localhost:9090
$ export ISTIOCTL_ISTIONAMESPACE=external-istiod
$ export ISTIOCTL_PREFER_EXPERIMENTAL=true
</code></pre></code></pre><p>因为我们的控制平面运行在 <code>external-istiod</code> 命名空间,
而不是默认的 <code>istio-system</code> 命名空间中,我们需要额外设置
<code>ISTIOCTL_ISTIONAMESPACE</code> 环境变量。</p><p>设置 <code>ISTIOCTL_PREFER_EXPERIMENTAL</code> 环境变量是可选的。
它将 <code>istioctl</code><code>istioctl command</code> 调用重定向到实验性等效项
<code>istioctl x command</code> 中,对于任何 <code>command</code> 都具备稳定版和实验性版本实现。</p><h2 id=run-the-istioctl-proxy-status-command>运行 istioctl proxy-status 命令</h2><p>现在我们已经完成了 <code>istioctl</code> 的配置,我们可以再次尝试运行
<code>proxy-status</code> 命令:</p><pre><code><pre><code class=language-bash data-expandlinks=true data-repo=istio>$ istioctl proxy-status --context=&#34;${CTX_REMOTE_CLUSTER}&#34;
NAME CDS LDS EDS RDS ISTIOD VERSION
helloworld-v1-776f57d5f6-tmpkd.sample SYNCED SYNCED SYNCED SYNCED &lt;external&gt; 1.12.1
istio-ingressgateway-75bfd5668f-lggn4.external-istiod SYNCED SYNCED SYNCED SYNCED &lt;external&gt; 1.12.1
sleep-557747455f-v627d.sample SYNCED SYNCED SYNCED SYNCED &lt;external&gt; 1.12.1
</code></pre></code></pre><p>如您所见,这次网格中运行的所有服务的同步状态都正确显示了。请注意,
<code>ISTIOD</code> 列的返回值为 <code>&lt;external></code>,而不是在 Pod
在本地运行时显示的实例名称(例如,<code>istiod-666fb6694d-jklkt</code>)。
在这种情况下,网格用户是无法获得或不需要此详细信息的。
它仅在外部集群上可用,供网格操作员查看。</p><h2 id=summary>总结</h2><p>在本文中,我们使用了一个<a href=https://github.com/istio-ecosystem/istioctl-proxy-sample>示例代理服务器</a>来配置
<code>istioctl</code> 并与<a href=/v1.20/zh/docs/setup/install/external-controlplane/>安装在外部的控制平面</a>一同工作。
我们已经看到一些 <code>istioctl</code> CLI 不能在由外部控制平面管理的从集群上开箱即用的原因。
<code>istioctl proxy-status</code> 等命令需要访问 istiod 服务实例来管理网格,
当控制平面在网格集群外部运行时,这些实例是不可用的。为了解决这个问题,
<code>istioctl</code> 被配置了与外部控制平面一起运行的代理服务器,用于访问 <code>istiod</code> 实例。</p></div><nav class=pagenav><div class=left><a title href=/v1.20/zh/blog/2022/istio-has-applied-to-join-the-cncf/ class=next-link><svg class="icon left-arrow"><use xlink:href="/v1.20/img/icons.svg#left-arrow"/></svg>Istio 已申请成为一个 CNCF 项目</a></div><div class=right><a title="用 eBPF 代替 iptables 规则可以将应用发出的包直接转发到对端的 socket从而缩短 sidecar 和服务之间的数据路径。" href=/v1.20/zh/blog/2022/merbridge/ class=next-link>Merbridge - 使用 eBPF 实现网络加速<svg class="icon right-arrow"><use xlink:href="/v1.20/img/icons.svg#right-arrow"/></svg></a></div></nav></article><footer class=footer><div class="footer-wrapper container-l"><div class="user-links footer-links"><a class=channel title='Istio 的代码在 GitHub 上开发' href=https://github.com/istio/community aria-label=GitHub><svg class="icon github"><use xlink:href="/v1.20/img/icons.svg#github"/></svg>
</a><a class=channel title='如果您想深入了解 Istio 的技术细节,请查看我们日益完善的设计文档' href=https://groups.google.com/forum/#!forum/istio-team-drive-access aria-label="team drive"><svg class="icon drive"><use xlink:href="/v1.20/img/icons.svg#drive"/></svg>
</a><a class=channel title='在 Slack 上与 Istio 社区交互讨论开发问题(仅限邀请)' href=https://slack.istio.io aria-label=slack><svg class="icon slack"><use xlink:href="/v1.20/img/icons.svg#slack"/></svg>
</a><a class=channel title='Stack Overflow 中列举了针对实际问题以及部署、配置和使用 Istio 的各项回答' href=https://stackoverflow.com/questions/tagged/istio aria-label="Stack Overflow"><svg class="icon stackoverflow"><use xlink:href="/v1.20/img/icons.svg#stackoverflow"/></svg>
</a><a class=channel title='关注我们的 Twitter 来获取最新信息' href=https://twitter.com/IstioMesh aria-label=Twitter><svg class="icon twitter"><use xlink:href="/v1.20/img/icons.svg#twitter"/></svg></a></div><hr class=footer-separator role=separator><div class="info footer-info"><a class=logo href=/v1.20/zh/ aria-label=logotype><svg xmlns="http://www.w3.org/2000/svg" width="128" height="60" viewBox="0 0 128 60"><path d="M58.434 48.823A.441.441.0 0158.3 48.497V22.583a.444.444.0 01.134-.326.446.446.0 01.327-.134h3.527a.447.447.0 01.325.134.447.447.0 01.134.326v25.914a.443.443.0 01-.134.326.444.444.0 01-.325.134h-3.527a.444.444.0 01-.327-.134z"/><path d="m70.969 48.477a6.556 6.556.0 01-2.818-1.955 4.338 4.338.0 01-1-2.78v-.345a.443.443.0 01.134-.326.444.444.0 01.326-.135h3.374a.444.444.0 01.326.135.445.445.0 01.134.326v.077a2.014 2.014.0 001.054 1.667 4.672 4.672.0 002.664.709 4.446 4.446.0 002.492-.633 1.862 1.862.0 00.958-1.591 1.426 1.426.0 00-.786-1.322 12.7 12.7.0 00-2.549-.939l-1.457-.46a21.526 21.526.0 01-3.3-1.227 6.57 6.57.0 01-2.262-1.783 4.435 4.435.0 01-.92-2.894 5.081 5.081.0 012.109-4.275 8.993 8.993.0 015.558-1.591 10.445 10.445.0 014.1.748 6.3 6.3.0 012.722 2.07 5 5 0 01.958 3.009.441.441.0 01-.134.326.441.441.0 01-.325.134h-3.258a.441.441.0 01-.326-.134.443.443.0 01-.134-.326 1.974 1.974.0 00-.978-1.667 4.647 4.647.0 00-2.665-.671 4.741 4.741.0 00-2.435.556 1.724 1.724.0 00-.938 1.553 1.512 1.512.0 00.9 1.4 15.875 15.875.0 003.01 1.055l.843.229a27.368 27.368.0 013.412 1.246 6.67 6.67.0 012.338 1.763 4.387 4.387.0 01.958 2.933 4.988 4.988.0 01-2.146 4.275 9.543 9.543.0 01-5.712 1.552 11.626 11.626.0 01-4.227-.709z"/><path d="m97.039 32.837a.443.443.0 01-.326.135h-3.911a.169.169.0 00-.191.192v9.239a2.951 2.951.0 00.632 2.108 2.7 2.7.0 002.013.652h1.15a.444.444.0 01.325.134.441.441.0 01.134.326v2.875a.471.471.0 01-.459.5l-1.994.039a8 8 0 01-4.524-1.035q-1.495-1.035-1.533-3.91V33.166A.17.17.0 0088.164 32.974H85.978A.441.441.0 0185.652 32.839.441.441.0 0185.518 32.513V29.83a.441.441.0 01.134-.326.444.444.0 01.326-.135h2.186a.169.169.0 00.191-.192v-4.485a.438.438.0 01.134-.326.44.44.0 01.325-.134h3.336a.443.443.0 01.325.134.442.442.0 01.135.326v4.485a.169.169.0 00.191.192h3.911a.446.446.0 01.326.135.446.446.0 01.134.326v2.683a.446.446.0 01-.133.324z"/><path d="m101.694 25.917a2.645 2.645.0 01-.767-1.955 2.65 2.65.0 01.767-1.955 2.65 2.65.0 011.955-.767 2.65 2.65.0 011.955.767 2.652 2.652.0 01.767 1.955 2.647 2.647.0 01-.767 1.955 2.646 2.646.0 01-1.955.767 2.645 2.645.0 01-1.955-.767zm-.211 22.906a.441.441.0 01-.134-.326V29.79a.444.444.0 01.134-.326.446.446.0 01.326-.134h3.527a.446.446.0 01.326.134.445.445.0 01.134.326v18.707a.443.443.0 01-.134.326.443.443.0 01-.326.134h-3.527a.443.443.0 01-.326-.134z"/><path d="m114.019 47.734a8.1 8.1.0 01-3.047-4.255 14.439 14.439.0 01-.652-4.37 14.3 14.3.0 01.614-4.371A7.869 7.869.0 01114 30.56a9.072 9.072.0 015.252-1.5 8.543 8.543.0 015.041 1.5 7.985 7.985.0 013.009 4.14 12.439 12.439.0 01.69 4.37 13.793 13.793.0 01-.651 4.37 8.255 8.255.0 01-3.028 4.275 8.475 8.475.0 01-5.1 1.553 8.754 8.754.0 01-5.194-1.534zm7.629-3.1a4.536 4.536.0 001.476-2.262 11.335 11.335.0 00.383-3.221 10.618 10.618.0 00-.383-3.22 4.169 4.169.0 00-1.457-2.243 4.066 4.066.0 00-2.531-.785 3.942 3.942.0 00-2.453.785 4.376 4.376.0 00-1.5 2.243 11.839 11.839.0 00-.383 3.22 11.84 11.84.0 00.383 3.221 4.222 4.222.0 001.476 2.262 4.075 4.075.0 002.549.8 3.8 3.8.0 002.44-.809z"/><path d="m15.105 32.057v15.565a.059.059.0 01-.049.059L.069 50.25A.06.06.0 01.005 50.167l14.987-33.47a.06.06.0 01.114.025z"/><path d="m17.631 23.087v24.6a.06.06.0 00.053.059l22.449 2.507a.06.06.0 00.061-.084L17.745.032a.06.06.0 00-.114.024z"/><path d="m39.961 52.548-24.833 7.45a.062.062.0 01-.043.0L.079 52.548a.059.059.0 01.026-.113h39.839a.06.06.0 01.017.113z"/></svg></a><div class=footer-languages><a tabindex=-1 lang=en id=switch-lang-en class=footer-languages-item>English
</a><a tabindex=-1 lang=zh id=switch-lang-zh class="footer-languages-item active"><svg class="icon tick"><use xlink:href="/v1.20/img/icons.svg#tick"/></svg>
中文</a></div></div><ul class=footer-policies><li class=footer-policies-item><a class=footer-policies-link href=https://www.linuxfoundation.org/legal/terms>条款
</a>|
<a class=footer-policies-link href=https://www.linuxfoundation.org/legal/privacy-policy>隐私政策
</a>|
<a class=footer-policies-link href=https://www.linuxfoundation.org/legal/trademark-usage>商标
</a>|
<a class=footer-policies-link href=https://github.com/istio/istio.io/edit/release-1.20/content/zh/index>在 GitHub 上编辑此页</a></li></ul><div class=footer-base><span class=footer-base-copyright>&copy; 2024 the Istio Authors.</span>
<span class=footer-base-version>部分内容可能滞后于英文版本,同步工作正在进行中<br>版本
Istio 归档
1.20.3</span><ul class=footer-base-releases><li class=footer-base-releases-item><a tabindex=-1 class=footer-base-releases-link onclick='return navigateToUrlOrRoot("https://istio.io/blog/2022/istioctl-proxy/"),!1'>当前版本</a></li><li class=footer-base-releases-item><a tabindex=-1 class=footer-base-releases-link onclick='return navigateToUrlOrRoot("https://preliminary.istio.io/blog/2022/istioctl-proxy/"),!1'>下个版本</a></li><li class=footer-base-releases-item><a tabindex=-1 class=footer-base-releases-link href=https://istio.io/archive>旧版本</a></li></ul></div></div></footer><script src=https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js defer></script><div id=scroll-to-top-container aria-hidden=true><button id=scroll-to-top title=回到顶部 tabindex=-1><svg class="icon top"><use xlink:href="/v1.20/img/icons.svg#top"/></svg></button></div></body></html>