2021-07-06
故障注入是指将故障注入系统,便于检查系统在存在故障时的行为,以检查系统在可用性方面是否按我们期望的方式运行,测试应用系统的弹性。
本节将基于istio官方文档https://istio.io/latest/zh/docs/tasks/traffic-management/fault-injection/体验istio在流量管理方面的故障注入功能。
基于使用前面已经部署好的bookinfo应用,执行下面的命令初始化bookinfo应用的路由:
...2021-07-05
本节开始学习istio对微服务的流量管理功能,先来看如何配置请求路由,使用istio的流量路由规则可以很容易的控制服务之间的流量和调用。
本节先基于官方文档https://istio.io/latest/zh/docs/tasks/traffic-management/request-routing/完成配置请求路由
的实操演练,后续再理解一些概念性的东西。
bookinfo应用简介
#
前面我们部署的bookinfo应用由4个独立的微服务组成:
...2021-07-04
Istio由Google、IBM和Lyft开源,是第二代服务网格产品。在Istio中使用了Lyft公司的Envoy作为Sidecar。Istio的功能十分丰富,包含以下4个方面:
- 流量管理: 流量管理是istio的基本功能,使用istio的流量路由规则可以轻松控制服务之间的流量和API调用
- 策略控制: 应用策略以确保其得到执行,并且资源在消费者之间公平分配
- 可观测性: 通过自动链路追踪、监控和服务的日志可以全面了解服务如何与其它服务以及istio组件本身进行交互
- 安全认证: 通过托管的身份认证、授权和服务之间通信的加密自动保护服务的安全。Istio Security提供了全面的安全方案来解决这些问题
Istio从2017年5月发布0.1,到现在已经发展到1.10,早期的版本曾提供对非Kubernetes环境的支持,发展到现在基本只支持在Kubernetes上使用。
...2021-07-03
本文基于istio官方文档https://istio.io/latest/zh/docs/setup/getting-started/。
试验环境是一个3节点的k8s集群,k8s版本是1.21。
1.下载istio
#
到istio的发布页面https://github.com/istio/istio/releases/下载安装包,此时版本为1.10.2,下载并解压缩:
1wget https://github.com/istio/istio/releases/download/1.10.2/istio-1.10.2-linux-amd64.tar.gz
2tar -zxvf istio-1.10.2-linux-amd64.tar.gz
进入解压缩后的安装包目录:
1cd istio-1.10.2
2
3tree -L 1
4.
5├── bin 该目录下包含客户端二进制文件istioctl
6├── LICENSE
7├── manifests
8├── manifest.yaml
9├── README.md
10├── samples 该目录下包含示例的应用程序
11└── tools
将istioctl添加到系统PATH环境变量:
...2019-01-21
kiali作为Istio的可观测工具,可以认为是Istio的UI,可以展现服务的网络拓扑、服务的容错情况(超时、重试、短路等)、分布式跟踪(通过Jaeger Tracing)等。
本文将结合Istio自带的Bookinfo应用体验一下Kiali。
...2019-01-16
1.环境信息
#
本文将实践使用Heml在Kubernetes 1.13上安装Istio 1.0.5,具体的环境信息如下:
1helm version
2Client: &version.Version{SemVer:"v2.12.2", GitCommit:"7d2b0c73d734f6586ed222a567c5d103fed435be", GitTreeState:"clean"}
3Server: &version.Version{SemVer:"v2.12.2", GitCommit:"7d2b0c73d734f6586ed222a567c5d103fed435be", GitTreeState:"clean"}
4
5kubectl version
6Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.2", GitCommit:"ddf47ac13c1a9483ea035a79cd7c10005ff21a6d", GitTreeState:"clean", BuildDate:"2018-12-03T21:04:45Z", GoVersion:"go1.11.2", Compiler:"gc", Platform:"linux/amd64"}
7Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.2", GitCommit:"cff46ab41ff0bb44d8584413b598ad8360ec1def", GitTreeState:"clean", BuildDate:"2019-01-10T23:28:14Z", GoVersion:"go1.11.4", Compiler:"gc", Platform:"linux/amd64"}
下载并解压缩istio的发布包:
...2018-11-05
1.istio sidecar代理默认只处理集群内部的目标
#
先做一个测试,首先将default namespace开启sidecar代理的自动注入:
1kubectl label namespace default istio-injection=enabled
部署sleep示例应用:
1kubectl apply -f samples/sleep/sleep.yaml
sleep应用启动后,进入到容器内部,使用curl访问http://httpbin.org/uuid,出现404:
...2018-10-24
在Kubernetes中,可以使用Ingress资源将集群内部的Service暴露到集群外部,可参见之前整理的《Kubernetes Ingress实战》。
而Istio这个Service Mesh则推荐使用另一个更好的配置模型,即Istio Gateway。Istio Gateway可以允许我们将Istio的功能(如:监控和路由规则)应用到进入集群的流量。
...2018-09-18
前面我们在Kubernetes上部署了Istio 1.0并实际操作了一下官方示例应用及流量管理的基本功能。本篇将总结一下Istio的基本概念,加深理解。
1.0 Istio的定义
#
istio的官网https://istio.io/首页上用一句话描述了istio的定义:Istio Connect, secure, control, and observe services.
,即Istio用来连接、保护、控制、观测服务。
...2018-08-28
故障注入是指将故障注入系统,便于检查系统在存在故障时的行为,以检查系统的可用性方面是否按我们期望的方式运行。
本篇将参考Istio的Tasks文档Fault Injection体验Istio在流量管理方面的故障注入功能。
继续使用前面已经部署好的bookinfo应用,执行下面的命令初始化bookinfo应用的路由:
...