用户云卷云舒 发表于 2024-7-15 03:24:20

云盘算-istio运维

架构

   https://img-blog.csdnimg.cn/img_convert/debbd2188c455df4175b32464248f054.png
   服务网格在逻辑上,分为控制层面control plane和数据层面data plane
   

[*]控制层面 通过智能代理envoy管理流量路由,服务运行计谋执行等
[*]数据层面 数据层面由一组以sidecar方式部署的智能代理envoy组成,这些代理可以调节和控制微服务以及istiod之间的所有网络通信
   服务网格重要由以下组件构成:
   Envoy

   Istio 使用 Envoy 代理的扩展版本。Envoy 是使用 C++ 开发的高性能代理,可为服务网格中的所有服务调解所有入站和出站流量。Envoy 代理是与数据平面流量交互的唯一 Istio 组件。
   Envoy 代理被部署为服务的辅助工具,通过 Envoy 的很多内置功能在逻辑上增强了服务,例如:
   

[*]动态服务发现
[*]负载均衡
[*]TLS停止
[*]HTTP / 2 和 gRPC 代理
[*]断路器
[*]健康检查
[*]分阶段、按百分比分配流量
[*]故障注入
[*]丰富的指标
   这种 Sidecar 部署使 Istio 可以提取大量有关流量行为的信号作为属性。Istio 可以使用这些属性来执行计谋决策,并将其发送到监督体系以提供有关整个网格行为的信息。Sidecar 代理模型还允许用户将 Istio 功能添加到现有部署中,而无需重新构造或重写代码。
   Envoy 代理启用的一些 Istio 功能和使命如下:
   

[*]流量控制功能:使用丰富的路由规则对 HTTP、gRPC、WebSocket 和 TCP 流量实行细粒度的流量控制。
[*]网络弹性功能:设置重试、故障转移、断路器和故障注入。
[*]安全和身份验证功能:实行安全计谋并实行通过配置 API 定义的访问控制和速率限制。
[*]基于 WebAssembly 的可插入扩展模型,允许自定义计谋实行和网状流量的遥测生成。
   istiod

   

[*]Istiod 提供服务发现,配置和证书管理。
[*]Istiod 将控制流量行为的高级路由规则转换为 Envoy 特定的配置,并在运行时将其流传到 Sidecar。Pilot 提取了特定于平台的服务发现机制,并将它们合成为标准格式,任何符合 Envoy API 的 Sidecar 都可以使用。
[*]Istio 可以支持针对多个环境(例如 Kubernetes,Consul 或 VM)的服务发现。
[*]用户可以使用 Istio 的流量管理 API 来指示 Istiod 改进 Envoy 配置,以对服务网格中的流量举行更精细的控制。
[*]Istiod 安全性通过内置的身份和凭据管理实现了强盛的服务到服务和最终用户身份验证。用户可以使用 Istio 升级服务网格中的未加密流量。使用 Istio,用户可以基于服务身份而不是相对不稳定的第 3 层或第 4 层网络标识符来实行计谋。从版本 0.5 开始,用户可以使用 Istio 的授权功能来控制谁可以访问您的服务。
[*]Istiod 维护一个 CA 并生成证书以允许在数据平面中举行安全的 mTLS 通信。
   运维

                                 登录后复制                         #检索特定 Pod 中 Envoy 实例的集群配置的信息:
Istioctl proxy-config cluster <pod-name>

#检索特定 Pod 中 Envoy 实例的 Bootstrap 配置的信息
Istioctl proxy-config bootstrap <pod-name>

#检索特定 Pod 中 Envoy 实例的监听器配置的信息:
Istioctl proxy-config listener <pod-name>

#检索特定 Pod 中 Envoy 实例的路由配置的信息:
Istioctl proxy-config route <pod-name>

#检索特定 Pod 中 Envoy 实例的 Endpoint 配置的信息:
Istioctl proxy-config endpoints <pod-name>
      

[*]1.
[*]2.
[*]3.
[*]4.
[*]5.
[*]6.
[*]7.
[*]8.
[*]9.
[*]10.
[*]11.
[*]12.
[*]13.
[*]14.
                     Istio 的 Listener,Route,Cluster 和 Endpoint 与 Envoy 中的概念类似。
   

[*]Cluster:在 Envoy 中,Cluster 是一个服务集群,Cluster 中包含一个到多个 Endpoint,每个 Endpoint 都可以提供服务,Envoy 根据负载均衡算法将哀求发送到这些 Endpoint 中。Cluster 分为 Inbound 和 Outbound  两种,前者对应 Envoy 所在节点上的服务;后者占了绝大多数,对应 Envoy 所在节点的外部服务。可以使用如下方式分别检察 Inbound 和 Outbound 的 Cluster:
                                 登录后复制                         Istioctl pc cluster productpage-v1-64794f5db4-4h8c8.default--direction inbound -ojson
Istioctl pc cluster productpage-v1-64794f5db4-4h8c8.default --direction outbound -ojson       

[*]1.
[*]2.
                     

[*]Listeners:Envoy 接纳 Listener 来吸收并处理 Downstream 发过来的哀求。
[*]Routes:配置 Envoy 的路由规则。Istio 下发的缺省路由规则中对每个端口(服务)设置了一个路由规则,根据 Host 来对哀求举行路由分发,Routes 的目的为其他服务的 Cluster
[*]Endpoint:Cluster 对应的后端服务,可以通过 Istio Pc Endpoint 检察 Inbound 和 Outbound 对应的 Endpoint 信息
   调试Envoy 和 Istiod

   istio 提供了两个非常有价值的下令来资助诊断流量管理配置相干的题目,Proxy-status 和 Proxy-config 下令。
   Proxy-status 下令容许您获取网格的概况,并识别出导致题目的代理。
   Proxy-config 可以被用于检查 Envoy 配置和诊断题目。
   获取网格概况
   Proxy-status 下令容许您获取网格的概况。如果您怀疑某一个 Sidecar 没有吸收到配置或配置差别步时,Proxy-status 将告诉您缘故原由。
   https://img-blog.csdnimg.cn/img_convert/b2ce99cf39a6ee9ac5aab0f4cb41e8cd.png
   如果列表中缺少代理,这意味着它目前没有毗连到 Istiod 实例,因此不会吸收任何配置。
   

[*]SYNCED 意思是 Envoy 知晓了 Istiod 已经将最新的配置发送给了它。
[*]NOT SENT 意思是 Istiod 没有发送任何信息给 Envoy, 这通常是因为 Istiod 没什么可发送的。
[*]STALE 意思是 Istiod 已经发送了一个更新到 Envoy,但还没有收到应答。这通常意味着 Envoy 和 Istiod 之间存在网络题目,大概 Istio 自身的 Bug。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 云盘算-istio运维