版权声明 本站原创文章 由 萌叔 发表 转载请注明 萌叔 | http://vearne.cc 1. 前言 警告:本文仅用于萌叔自己总结之用,对其它人而言可能毫无营养,没有阅读价值。 可以使用istio可以做灰度发布,下面简单记录一下步骤 2. 原理&配置 基于istio做灰度发布需要用到envoy的负载均衡功能。 回想一下我们再nginx中是如何配置负载均衡的 upstream backend { server 192.168.101.10:8080 weight=1; server 192.168.101.12:8080 weight=2; } 2.1 配置 可用通过配置权重来控制流向上游服务的流量 类似的,在istio中需要用到VirtualService apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: vs-backend namespace: test spec: gateways: – gateway-backend-gateway-io.istio-system.svc.cluster.local hosts: – backend.gateway.io http: – retries:… 继续阅读 istio学习笔记(4)-基于istio做灰度发布

版权声明 本站原创文章 由 萌叔 发表 转载请注明 萌叔 | http://vearne.cc 1. 前言 本文存在的目的,是为了通过图例的方式更好的整理envoy存在的意义 2. 图示 namespace配置了自动注入(istio-injection:enabled)之后,每个POD都会自动生成1个Sidecar容器 istio-proxy(运行sidecar代理,实现方式为Envoy或MOSN 图示展示服务网格中的请求的情况 2.1 请求网格内部的服务 downstream和upstream是网格内的2个服务的容器 downstream调用upstream 对这种场景,请求穿过需要穿过2个envoy,1个是调用方POD中的envoy, 1个是被调用方POD中的envoy 2.2 请求网格外部的服务 External Service是网格外部的1个服务 对于这种场景,只穿过一次envoy 3. 支持的服务治理功能 请求分发, 按不同版本,以特定权重分发 负载均衡 URL重写 故障注入,包含增加延迟,或者直接拒绝 服务熔断,比如针对5XX执行熔断操作 限频 重试 超时控制 状态统计 QPS/流量/URL/延迟等 这部分信息最后会由prometheus统一收集,最终展现在Grafana和Kiali中 envoy实际是将原来应用中的拦截器以及网关实现的部分功能做了抽取和抽象,使得应用开发人员能够转注于业务逻辑开发。 后记(重要) istio默认不记录日志。如果需要记录请求日志,需要在ConfigMap istio中,增加 accessLogFile: /dev/stdout accessLogEncoding: JSON… 继续阅读 istio学习笔记(2)-envoy

版权声明 本站原创文章 由 萌叔 发表 转载请注明 萌叔 | http://vearne.cc 1. 前言 萌叔试图通过Gateway把服务暴露在服务网格外部,下面是笔者的一些总结。 2. 体系结构 很重要 gateway-controller <-> ingress-controller (实际的pod) istio-ingressgateway <-> nginx-ingress-controller (一种实现) gateway <-> ingress (配置) gateway-controller的一个实现是 istio-ingressgateway ingress-controller的一个实现是 nginx-ingress-controller nginx-ingress-controller相当于openresty, 配置ingress以后会生成对应nginx的配置文件。同样配置gateway之后, 会生成envoy对应的配置文件。 3. 配置 3.1 istio-ingressgateway 当安装了istio以后,服务中会有一个istio-ingressgateway 默认情况下, istio-ingressgateway对应的容器并没有暴露在服务网格之外。需要修改配置。 修改istio-ingressgateway的 Deployment 也可以直接修改helm的 deployment.yaml “dnsPolicy”: “ClusterFirstWithHostNet” # 修改(确保能够正确访问pilot) “hostNetwork”:… 继续阅读 istio学习笔记(1)-配置Gateway