国产精品免费久久久久电影院_亚洲日韩蜜桃av无码一二三区_AV在线无码免费特黄毛片_亚洲欧美日韩电影在线专区_福利小视频午夜福利一区二区中文字幕_在线免费观看黄黄色视频_欧美菊爆视频在线观看免费_婷婷六月丁香五月_久久伊人精品中文字幕有码_强奸国产无码激情

為遠程集群配置 istioctl

2022-05-30

649

使用代理服務器在具有外部控制平面的網(wǎng)格中支持 istioctl 命令。


在使用 istioctlCLI 時遠程集群對于外部控制平面或多集群 Istio 部署,默認情況下某些命令將不起作用。例如,需要訪問服務以檢索其管理的代理的狀態(tài)和配置。如果您嘗試在遠程集群上運行它,您將收到如下錯誤消息:istioctl proxy-statusistiod



請注意,錯誤消息不僅說它無法訪問該 istiod 服務,它還特別提到了它無法找到 istiod 實例。這是因為istioctl proxy-status實現(xiàn)需要檢索的不僅僅是任何單個 istiod 實例的同步狀態(tài),而是所有實例的同步狀態(tài)。當有多個 istiod 實例(副本)運行時,每個實例僅連接到網(wǎng)格中運行的服務代理的一個子集。該 istioctl 命令需要返回整個網(wǎng)格的狀態(tài),而不僅僅是由其中一個實例管理的子集。


在 istiod 服務在集群本地運行的普通 Istio 安裝中(即,主集群),該命令的實現(xiàn)方式是簡單地找到所有正在運行的 Pod,依次調(diào)用每個 Pod,然后在返回給用戶之前匯總結果。



另一方面,當使用遠程集群時,這是不可能的,因為 istiod 實例在網(wǎng)格集群之外運行,并且網(wǎng)格用戶無法訪問。這些實例甚至可能不會使用 Kubernetes 集群上的 Pod 進行部署。


幸運的是,istioctl 提供了一個配置選項來解決這個問題。您可以使用將有權訪問實例 istioctl 的外部代理服務的地址進行 配置。istiod 與將傳入請求委托給其中一個實例的普通負載均衡器服務不同,此代理服務必須委托給所有 istiod 實例,聚合響應,然后返回組合結果。


如果外部代理服務實際上是在另一個 Kubernetes 集群上運行,那么代理實現(xiàn)代碼可以與 istioctl 在主集群情況下運行的實現(xiàn)代碼非常相似,即找到所有正在運行的 istiodPod,依次調(diào)用每個 Pod ,然后聚合結果。



istioctl 可以在 此處找到包含此類代理服務器實現(xiàn)的 Istio 生態(tài)系統(tǒng)項目。要試用它,您需要兩個集群,其中一個使用安裝在另一個集群中的控制平面配置為遠程集群。


使用遠程集群拓撲安裝 Istio


為了演示istioctl在遠程集群上的工作,我們將首先使用 外部控制平面安裝說明 來設置單個遠程集群網(wǎng)格,外部控制平面在單獨的外部集群中運行。


完成安裝后,我們應該有兩個環(huán)境變量CTX_REMOTE_CLUSTER和CTX_EXTERNAL_CLUSTER,分別包含遠程(網(wǎng)格)和外部(控制平面)集群的上下文名稱。


我們還應該讓 helloworld 和 sleep 樣本在網(wǎng)格中運行,即在遠程集群上:



請注意,如果您嘗試istioctl proxy-status在遠程集群中運行,您將看到前面描述的錯誤消息:



配置 istioctl 以使用示例代理服務


要進行配置,我們首先需要在正在運行的Podistioctl旁邊部署代理服務。istiod在我們的安裝中,我們已經(jīng)在external-istiod命名空間中部署了控制平面,因此我們使用以下命令在外部集群上啟動代理服務:



您可以運行以下命令來確認istioctl-proxy服務正在旁邊運行istiod:



代理服務是在端口 9090 上提供服務的 gRPC 服務器:



然而,在我們使用它之前,我們需要將它暴露在外部集群之外。有很多方法可以做到這一點,具體取決于部署環(huán)境。在我們的設置中,我們有一個在外部集群上運行的入口網(wǎng)關,因此我們可以更新它以公開端口 9090,更新關聯(lián)的虛擬服務以將端口 9090 請求定向到代理服務,然后配置istioctl為使用網(wǎng)關地址代理服務。這將是一個“正確”的方法。


然而,由于這只是一個簡單的演示,我們可以訪問兩個集群,我們將簡單地port-forward 代理服務localhost:



我們現(xiàn)在通過設置環(huán)境變量來配置istioctl用于localhost:9090訪問代理:ISTIOCTL_XDS_ADDRESS


因為我們的控制平面是在external-istiod命名空間中運行的,而不是默認的istio-system,我們還需要設置ISTIOCTL_ISTIONAMESPACE環(huán)境變量。


設置ISTIOCTL_PREFER_EXPERIMENTAL是可選的。它指示將調(diào)用istioctl重定向istioctl command到實驗等價物 ,istioctl x command對于任何command同時具有穩(wěn)定和實驗性實現(xiàn)的人。在我們的例子中,我們需要使用istioctl x proxy-status實現(xiàn)代理委托功能的版本。


運行 istioctl proxy-status 命令


現(xiàn)在我們已經(jīng)完成了配置 istioctl,可以通過再次運行proxy-status命令來嘗試一下:



如您所見,這一次它正確顯示了網(wǎng)格中運行的所有服務的同步狀態(tài)。請注意,該 ISTIOD 列返回通用值,而不是pod 在本地運行時將顯示的實例名稱(例如)。istiod-666fb6694d-jklkt在這種情況下,網(wǎng)格用戶無法獲得或不需要此詳細信息。它僅在外部集群上可供網(wǎng)格操作員查看。


總結


在本文中,我們使用示例代理服務器進行配置istioctl以與外部控制平面安裝一起使用。我們已經(jīng)看到了一些istioctlCLI 命令在由外部控制平面管理的遠程集群上是如何開箱即用的。諸如 等命令istioctl proxy-status需要訪問istiod管理網(wǎng)格的服務實例,當控制平面在網(wǎng)格集群之外運行時,這些服務實例不可用。為了解決這個問題,istioctl被配置為委托代理服務器,與外部控制平面一起運行,istiod代表它訪問實例。


基于 Istio 及容器技術,SolarMesh 提供流量監(jiān)控和管理,提供完善的非侵入式服務治理解決方案,幫助企業(yè)在紛繁復雜的微服務調(diào)度中快速定位問題,增強研發(fā)效率。

SolarMesh 在線體驗



原文出處:https://istio.io/latest/blog/2022/istioctl-proxy/



技術交流
我們建立了多個云原生技術交流群,其中有來自Oracle、Citrix、華為、騰訊等國內(nèi)外云計算專家,立即掃碼,拉你進群。目前已有2000+開發(fā)者加入我們......
云原生廠商 云原生技術服務商
在云原生時代,行云創(chuàng)新致力于通過賦能開發(fā)者,實現(xiàn)企業(yè)快速迭代與交付,大幅提升創(chuàng)新效率。
產(chǎn)品下載