![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Istio
文章平均质量分 84
Istio
最爱喝酸奶
一直要努力!
展开
-
EnvoyFilter
EnvoyFilterEnvoyFilter 提供了一种机制,来自定义 Istio Pilot 生成的 Envoy 配置。使用 EnvoyFilter 可以 修改某些字段的值,添加特定的过滤器,甚至添加全新的监听器、集群等。必须谨慎使用此功能,因为不正确的配置可能会破坏整个网格的稳定性。与其他 Istio 网络对象不同,EnvoyFilters 是附加应用的。对于特定命名空间中的给定工作负载,可以有任意数量的 EnvoyFilters。这些 EnvoyFilters 的应用顺序如下:配置根命名空间中的所有转载 2021-07-23 18:46:06 · 3090 阅读 · 0 评论 -
Sidecar
SidecarSidecar 描述了 Sidecar 代理的配置,该代理可将入站和出站通信调解到它所附加的工作负载实例。默认情况下,Istio 将为网格中的所有 Sidecar 代理进行必要的配置,以达到网格中的每个工作负载示例,并接受与工作负载相关的所有端口上的流量。Sidecar 配置提供了一种调优端口集的方法,代理在向工作负载转发流量和从工作负载转发流量时将接受端口集和协议。此外,当转发来自工作负载实例的出站流量时,可以限制代理可以访问的服务集。网格中的服务和配置被组织到一个或多个命名空间(如 K转载 2021-07-19 19:00:07 · 446 阅读 · 0 评论 -
ServiceEntry
ServiceEntryServiceEntry 允许向 Istio 的内部服务注册表中添加额外的条目,以便网格中的自动发现服务可以访问或路由到这些手动指定的服务。ServiceEntry 描述了服务的属性(DNS名称,VIP,端口,协议,endpoints)。这些服务可以是网格外部的(如 Web APIs),也可以是不属于平台服务注册表的网格内部服务(如 一组在 Kubernetes 中与服务通信的 VM)。下面的示例中,声明了一些内部应用程序通过 HTTPS 访问的外部 API。sidecar 检查转载 2021-07-14 18:57:18 · 1525 阅读 · 1 评论 -
Gateway
GatewayGateway 描述了在网格边缘运行的负载均衡器,接收传入或传出的 HTTP/TCP 连接。其中描述了一组应该公开的端口、要使用的协议类型、负载均衡器的 SNI 配置等。下面的示例中,Gateway 设置了一个代理作为负载均衡器,以暴露端口 80 和 9080(http)、443(https)、9443(https)、2379(TCP)方便外部访问。该网关将被应用于在带有标签 app: my-gateway-controller 的 Pod 上运行的代理。apiVersion: netw转载 2021-07-06 19:08:48 · 412 阅读 · 0 评论 -
VirtualService
VirtualService影响流量路由的配置。以下是一些术语,可在流量路由的上下文中进行定义。Service 通常是绑定到服务注册表中唯一名称的应用程序行为的单元。服务包含多个网络 Endpoints,这些 EndPoints 由 Pod、容器、VM 等上运行的工作负载实例实现。Service Version 即服务的版本。每个服务都有一个包含其所有实例的默认版本。在连续部署中,对于给定的服务,可能存在运行应用程序二进制文件的不同变体的实例的不同子集。这些变体不一定是不同的 API 版本,它们可能是转载 2021-06-28 18:30:27 · 1324 阅读 · 0 评论 -
DestinationRule
DestinationRuleDestinationRule 定义在路由发生后应用于服务的流量的策略。这些规则指定负载均衡的配置、sidecar 的连接池大小以及离群值检测设置,以检测并从负载平衡池中清除不正常的主机。下面的示例中,对 ratings 服务进行了简单的负载均衡。apiVersion: networking.istio.io/v1alpha3kind: DestinationRulemetadata: name: bookinfo-ratingsspec: host: ra转载 2021-06-21 18:44:10 · 881 阅读 · 0 评论 -
流量的镜像
本文内容基于 流量的熔断。流量镜像流量镜像,也称为影子流量,是一个以尽可能低的风险为生产带来变化的强大的功能。镜像会将实时流量的副本发送到镜像服务。镜像流量发生在主服务的关键请求路径之外。恢复环境:kubectl delete -f samples/httpbin/httpbin.yamlkubectl delete -f samples/httpbin/networking/destination-rule-httpbin.yamlkubectl delete -f samples/原创 2021-06-10 19:00:13 · 4462 阅读 · 0 评论 -
流量的熔断
本文内容基于 设置请求超时。熔断熔断,是创建弹性微服务应用程序的重要模式。熔断能够使应用程序具备应对来自故障、潜在峰值和其他未知网络因素影响的能力。部署 httpbin 服务:应用程序 httpbin 作为后端服务。cat samples/httpbin/httpbin.yamlapiVersion: v1kind: ServiceAccountmetadata: name: httpbin---apiVersion: v1kind: Servicemetadata:原创 2021-06-03 18:24:53 · 413 阅读 · 0 评论 -
设置请求超时
本文内容基于 流量转移。经过 流量转移 的配置,下面是请求的流程:productpage → reviews:v3 → ratings请求超时http 请求的超时可以用路由规则的 timeout 字段来指定。默认情况下,超时是禁用的。这里把 reviews 服务的超时设置为 1 秒。为了观察效果,还需要在对 ratings 服务的调用上人为引入 2 秒的延迟。将所有流量路由到各个微服务的 v1 版本:kubectl apply -f samples/bookinfo/networkin原创 2021-05-25 18:56:21 · 1144 阅读 · 0 评论 -
流量转移
本文内容基于 故障注入。经过 故障注入 的配置,下面是请求的流程:productpage → reviews:v3 → ratings (Ratings service is currently unavailable) (针对 jason 用户)productpage → reviews:v1 (其他用户)应用基于权重的路由将所有流量路由到各个微服务的 v1 版本:kubectl apply -f samples/bookinfo/networking/virtual-servic原创 2021-05-18 18:58:13 · 323 阅读 · 0 评论 -
故障注入
本文内容基于 配置请求路由。经过 配置请求路由 的配置,下面是请求的流程:productpage → reviews:v2 → ratings (针对 jason 用户)productpage → reviews:v1 (其他用户)注入 HTTP 延迟故障为了测试微服务应用程序 Bookinfo 的弹性,为用户 jason 在 reviews:v2 和 ratings 服务之间注入一个 7 秒的延迟。reviews:v2 服务对 ratings 服务的调用具有 10 秒的硬编码连接超时。原创 2021-05-11 18:51:00 · 556 阅读 · 0 评论 -
配置请求路由
Bookinfo 应用部署了一个用于演示多种 Istio 特性的 Bookinfo 应用,该应用由四个单独的微服务构成。这个应用模仿在线书店的一个分类,显示一本书的信息。页面上会显示一本书的描述,书籍的细节(ISBN、页数等),以及关于这本书的一些评论。Bookinfo 应用分为四个单独的微服务:productpage. 这个微服务会调用 details 和 reviews 两个微服务,用来生成页面。details. 这个微服务中包含了书籍的信息。reviews. 这个微服务中包含了书籍相关的原创 2021-05-06 19:27:12 · 465 阅读 · 0 评论 -
安装 Istio CNI 插件
按照此流程利用 Istio 容器网络接口(CNI)来安装、配置和使用 Istio 网格。默认情况下,Istio 会在网格中部署的 Pods 上注入一个 initContainer:istio-init。istio-init 容器会将 Pod 的网络流量劫持到 Istio sidecar 代理上。这需要用户或部署 Pods 的 Service Account 具有足够的部署 NET_ADMIN 容器的 Kubernetes RBAC 权限。Istio 用户权限的提升,对于某些组织的安全政策来说,可能是难以接转载 2021-04-30 18:50:06 · 759 阅读 · 3 评论 -
设置 Sidecar
注入 Sidecar为了充分利用 Istio 的所有特性,网格中的 pod 必须运行一个 Istio sidecar 代理。向 Pod 中注入 Istio sidecar 的两种方法:使用 istioctl 手动注入或启用 Pod 所属命名空间的 Istio sidecar 注入器自动注入。手动注入直接修改配置,如 Deployment,并将代理配置注入其中。当 Pod 所属的命名空间启用自动注入后,自动注入器会使用准入控制器在创建 Pod 时自动注入代理配置。通过应用 istio-sidecar-转载 2021-04-26 18:31:57 · 1056 阅读 · 0 评论 -
Istio 快速入门
下载 istio:curl -L https://istio.io/downloadIstio | sh -cd istio-1.9.0export PATH=$PWD/bin:$PATH #将 istioctl 加入环境变量然后需要通过 helm 部署好 istio,此处省略。命名空间添加标签:方便 Istio 在部署应用的时候,自动的注入 Envoy sidecar 代理:kubectl label namespace default istio-i.原创 2021-04-22 18:40:12 · 697 阅读 · 0 评论 -
Istio 安装
使用 helm 安装 istio。最新版本:1.9.0安装 helm安装 helm:curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash命令补全:echo "source <(helm completion bash)" >> ~/.bash_profilesource !$如果提示 WARNING: Kubernetes configuration原创 2021-04-16 18:45:57 · 1058 阅读 · 0 评论