一、Istio

Istio 是一个服务网格,它允许集群中的 pods 和服务之间进行更详细、复杂和可观察的通信。

它通过使用 CRD 扩展 Kubernetes API 来进行管理,它将代理容器注入到所有 pods 中,然后由这些 pods 来控制集群中的流量。

二、kube-proxy

Kubernetes 中的服务是由运行在每个节点上的 kube-proxy 组件实现的,该组件创建 iptables 规则,并将请求重定向到 Pod。

因此,服务就是 iptables 规则。

下图中,服务 service-nginx 指向 nginx pods,服务 service-python 指向 python pods。

红线显示了从 pod1-nginx 中的 nginx 容器向 service-python 服务发出的请求,该服务将请求重定向到 pod2-python

三、Kubernetes Istio

集群中安装了 Istio,每个 pod 都有第二个称为 istio-proxy 的 sidecar 容器,该容器在创建期间会自动将其注入到 pods 中。

拥有 istio-proxy 的 pods 将不再使用 kube-proxy 组件了。

每当配置或服务发生变化时,Istio 控制平面就会对所有 istio-proxy sidecars 进行处理。

Istio 控制平面使用现有的 Kubernetes 服务来接收每个服务点所指向的所有 pods ,通过使用 pod IP 地址,Istio 实现了自己的路由。

四、Istio 工作原理

所有的 istio-proxy 容器已经被 Istio 控制平面所管控,并包含所有必要的路由信息。

来自 pod1-nginx 的 nginx 容器向 service-python 发出请求。

请求被 pod1-nginx 的 istio-proxy 容器拦截,并被重定向到一个 python pod 的 istio-proxy 容器,该容器随后将请求重定向到 python 容器。

五、Istio优势

1. 可以掌握所有请求流量的详细信息

现在所有流量都通过每个 Pod 中的 istio-proxy 容器进行路由,每当 istio-proxy 接收并重定向一个请求时,它还会将有关该请求的信息提交给 Istio 控制平面。

因此 Istio 控制平面可以准确地知道该请求来自哪个 pod、存在哪些 HTTP 头、从一个istio-proxy 到另一个 istio-proxy 的请求需要多长时间等等。

在具有彼此通信的服务的集群中,这可以提高可观察性并更好地控制所有流量。

2. 先进的路由

Kubernetes 内部 Services 只能对 pods 执行轮询或随机分发请求,使用 Istio 可以实现更复杂的方式。比如,如果发生错误,根据请求头进行重定向,或者重定向到最少使用的服务。

3. 部署

允许将一定比例的流量路由到特定的服务版本。

4. 加密

可以对 pods 之间从 istio-proxy 到 istio-proxy 的集群内部通信进行加密。

5. 监控/图形

Istio 可以连接到 Prometheus 等监控工具,也可以与 Kiali 一起展示所有的服务和他们的流量。

6. 追踪

因为 Istio 控制平面拥有大量关于请求的数据,所以可以使用 Jaeger 等工具跟踪和检查这些数据。

7. 多集群 mesh

六、Istio 会取代 Kubernetes 的服务吗?

不会,因为 Istio 会使用现有的 Kubernetes 服务获取它们的所有 endpoints/pod IP 地址。

七、Istio 取代了 Kubernetes 的 Ingress 吗?

是的,Istio 提供了新的 CRD 资源,比如 Gateway 和 VirtualService,甚至还附带了 ingress 转换器 istioctl convert-ingress。

下图显示了 Istio 网关如何处理进入流量,网关本身也是一个 istio-proxy 组件。

神作https://mp.weixin.qq.com/s/CALHF1UBpiKtNNS-NFHVnA

kubernetes Istio是什么相关推荐

  1. 在kubernetes+istio中通过FQDN请求Nacos服务

    公众号:<尹安灿> 欢迎交流 背景是我们希望能在k8s中通过DNS方式,访问服务的FQDN来调用虚拟机注册到nacos的服务. 我们vm和k8s的网段配置了相关路由能相互访问 之前naco ...

  2. 浅谈 Kubernetes Scheduling-Framework 插件的实现

    最近几个月一直在研究 kubernetes 的 scheduling-framework 调度框架,发现还是十分有意思的,我自己也实现了一个基于 scheduling-framework 调度框架的自 ...

  3. 云端设计平台Coohom在生产环境中使用istio的经验与实践

    介绍 自从istio-1.0.0在今年发布了正式版以后,Coohom项目在生产环境中也开启了使用istio来作为服务网格. 本文将会介绍与分享在Coohom项目在使用istio中的一些实践与经验. C ...

  4. Istio服务网格路由入门

    摘要: 在本教程中,我们将使用Istio演示服务网格最强大的特性之一:"以请求为基准的路由".这个特性允许把具有指定HTTP头标记的任意请求路由到特定的目标,这只有在(OSI)第7 ...

  5. Kubernetes安装EFK日志收集

    Kubernetes 中比较流行的日志收集解决方案是 Elasticsearch.Fluentd 和 Kibana(EFK)技术栈,也是官方现在比较推荐的一种方案. 后续我会更新使用Log-Pilot ...

  6. 腾讯云容器团队内部Istio专题分享

    转载:https://juejin.im/post/5c5408ee6fb9a049f154a160 ServiceMesher 2019年02月01日 阅读 70 腾讯云容器团队内部Istio专题分 ...

  7. Istio:服务发现和Pilot的架构机制

    大纲 Istio架构&Pilot介绍 Istio服务发现 Istio服务配置 stio服务发现&规则管理与Kubernetes结合 ShowCase Istio架构&Pilot ...

  8. 酷家乐如何使用 Istio 解决新服务治理系统(Serverless)接入已有成熟自研 Java 服务治理体系...

    本文来自酷家乐先进技术工程团队,作者罗宁,酷家乐资深开发工程师. 公司背景 酷家乐 [1] 公司以分布式并行计算和多媒体数据挖掘为技术核心,推出的家居云设计平台,致力于云渲染.云设计.BIM.VR.A ...

  9. 华为云讲解:1. Istio架构与原理

    华为云讲解:Istio架构与原理 文章目录 华为云讲解:Istio架构与原理 Service Mesh Kubernetes Istio 架构基础 Istio 基本概念 Istio & Kub ...

  10. knative_使用knative在kubernetes上实现无服务器

    knative If you're already using Kubernetes, you've probably heard about serverless. While both platf ...

最新文章

  1. easy-mock写的一个简单的模拟二页的反馈
  2. 如何在SAP Spartacus的scss里引入全局变量
  3. leetcode359. 日志速率限制器
  4. 基于AE的SimpleGIS框架的搭建
  5. 华为透露中国首个开源基金会将于近期正式运营!
  6. PowerShell 2.0远程管理之隐式远程管理
  7. yolo模型部署——tensorRT模型加速+triton服务器模型部署
  8. gin--简单路由代码
  9. 第1章 数据库系统概论---数据库原理及应用
  10. 台式机黑苹果独显驱动
  11. 网易云音乐 歌词制作软件 BesLyric
  12. English - 英语中的时间表达法,这里全啦!
  13. 【芯片使用】PCF8591
  14. C#数字转字母,ASCII码转换
  15. CS144-Lab4
  16. 高德地图截屏、标记鼠标跟随示例
  17. CobaltStrike(CS)与MetasploitFramework(MSF)联动
  18. Linux格式化硬盘
  19. 股票涨跌量化怎样进行策略分析?
  20. 关系数据库:专门关系运算

热门文章

  1. VDI成长之路:Windows桌面优化配置(持续更新-20120227)
  2. WPF Summary:XAML的介绍
  3. The binding handle is invalid 绑定句柄无效
  4. label标签 for属性
  5. [争什么! 掺在一起做撒尿牛丸啊! 笨蛋]ASP.NET Core 2.0 + EF6 + Linux +MySql混搭
  6. IOS 线程的总结(及cell的图片下载)
  7. 安卓android eclipse运行提示no compatible targets were found
  8. linux less命令详解
  9. Button,LinkButton,ImageButton,HyperLink使用
  10. 拓端tecdat|R语言可视化渐近正态性、收敛性:大数定律、中心极限定理、经验累积分布函数