Istio 9 http流量控制

Submitted by Lizhe on Tue, 06/23/2020 - 02:14

在Kubernetes中访问一个服务时,需要指定协议,服务名和端口

在Istio的服务网格中对服务进行了进一步抽象

  • 可以使用Pod标签对具体服务进行分组
  • 可以定义负载均衡策略
  • 可以指定TLS要求
  • 可以为服务设置连接池大小

 

 

TrafficPolicy 

Istio 8 Kiali

Submitted by Lizhe on Mon, 06/22/2020 - 08:55

Kiali 也是一个用于 Istio 可视化的工具,Kiali 目前是专用于 Istio 系统的,提供了监控,可视化及跟踪等通用功能

还专门提供了 Istio 的配置验证,健康评估等高级功能

20200622051143

 

每一级的描述都很清晰,个人认为比Jaeger 要实用一些

Istio 7 Jaeger

Submitted by Lizhe on Mon, 06/22/2020 - 08:18

Jaeger 是一个用于分布式跟踪的开源软件,由 Uber 开源

Jaeger 不是监控工具,而是分布式追踪工具,简单来说就是查看 调用链路

20200622041844

 

20200622042534

 

 

Istio 5 Grafana

Submitted by Lizhe on Mon, 06/22/2020 - 07:43

Grafana 总体来说是一款 可视化的监控工具,采用go语言编写,

数据源 和 插件 支持的也比较全面,istio 的主要数据源是 Prometheus 

20200622034605

 

我们先去 Istio中搞点流量

Istio 4 AutoInjection

Submitted by Lizhe on Sun, 06/21/2020 - 01:01

这里我要偷个懒,直接使用 rancher 来配置自动注入

目前rancher仅支持到 1.4.7 ,跟之前用的 1.6 安装上差别还是挺大的,不过并不影响我们尝试自动注入

20200621090439

 

创建一个新的 namespace 然后指定 autoinjection

 

Istio 3 helloworld

Submitted by Lizhe on Fri, 06/19/2020 - 10:33

下面这个helloworld 参考 《深入浅出istio》

但是书中的 yaml 格式已经过时了,新版本的 kubernetes 已经没法兼容,所以做了一些对应的修改

apiVersion: v1

kind: Service

metadata:

  name: flaskapp-service

  labels: 

    app: flaskapp-service-label

spec: 

  selector: 

    app: flaskapp-app

  ports: 

    - name: http

      port: 80

 

---

 

apiVersion: apps/v1

Istio 2 install

Submitted by Lizhe on Fri, 06/19/2020 - 08:42

 

先 clone

git clone https://github.com/istio/istio.git

然后你可以在 release 文件夹下边找到这么个玩意

downloadIstioCtl.sh

20200619052257

 

istioctl install

 

 

Istio 1

Submitted by Lizhe on Fri, 06/19/2020 - 08:06

Istio 分为 控制面 和 数据面

1. 数据面 为 Sidecar

2. 控制面 管理所有Istio功能

 

1. Pilot

Pilot 是主要控制节点, 流量控制就是由 Pilot 负责的,但是具体执行是 Sidecar

Pilot 的配置内容会发送给Sidecar,Sidecar根据指令,负责本地控制

 

2. Mixer

Mixer 负责 检测 和 汇报

3. Citadel

用于管理证书

4. Sidecar ( Envoy )

实际执行网格控制

 

Istio 在安装过程中会初始化 CRD,在kubernetes中注册。

Istio 中的资源分为三种

networking.istio.io

config.istio.io

authentication.istion.io

 

在1.6版本之前,如果你安装了 istio ,会看到下面这些组件