kubernetes Istio是什么
一、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是什么相关推荐
- 在kubernetes+istio中通过FQDN请求Nacos服务
公众号:<尹安灿> 欢迎交流 背景是我们希望能在k8s中通过DNS方式,访问服务的FQDN来调用虚拟机注册到nacos的服务. 我们vm和k8s的网段配置了相关路由能相互访问 之前naco ...
- 浅谈 Kubernetes Scheduling-Framework 插件的实现
最近几个月一直在研究 kubernetes 的 scheduling-framework 调度框架,发现还是十分有意思的,我自己也实现了一个基于 scheduling-framework 调度框架的自 ...
- 云端设计平台Coohom在生产环境中使用istio的经验与实践
介绍 自从istio-1.0.0在今年发布了正式版以后,Coohom项目在生产环境中也开启了使用istio来作为服务网格. 本文将会介绍与分享在Coohom项目在使用istio中的一些实践与经验. C ...
- Istio服务网格路由入门
摘要: 在本教程中,我们将使用Istio演示服务网格最强大的特性之一:"以请求为基准的路由".这个特性允许把具有指定HTTP头标记的任意请求路由到特定的目标,这只有在(OSI)第7 ...
- Kubernetes安装EFK日志收集
Kubernetes 中比较流行的日志收集解决方案是 Elasticsearch.Fluentd 和 Kibana(EFK)技术栈,也是官方现在比较推荐的一种方案. 后续我会更新使用Log-Pilot ...
- 腾讯云容器团队内部Istio专题分享
转载:https://juejin.im/post/5c5408ee6fb9a049f154a160 ServiceMesher 2019年02月01日 阅读 70 腾讯云容器团队内部Istio专题分 ...
- Istio:服务发现和Pilot的架构机制
大纲 Istio架构&Pilot介绍 Istio服务发现 Istio服务配置 stio服务发现&规则管理与Kubernetes结合 ShowCase Istio架构&Pilot ...
- 酷家乐如何使用 Istio 解决新服务治理系统(Serverless)接入已有成熟自研 Java 服务治理体系...
本文来自酷家乐先进技术工程团队,作者罗宁,酷家乐资深开发工程师. 公司背景 酷家乐 [1] 公司以分布式并行计算和多媒体数据挖掘为技术核心,推出的家居云设计平台,致力于云渲染.云设计.BIM.VR.A ...
- 华为云讲解:1. Istio架构与原理
华为云讲解:Istio架构与原理 文章目录 华为云讲解:Istio架构与原理 Service Mesh Kubernetes Istio 架构基础 Istio 基本概念 Istio & Kub ...
- knative_使用knative在kubernetes上实现无服务器
knative If you're already using Kubernetes, you've probably heard about serverless. While both platf ...
最新文章
- easy-mock写的一个简单的模拟二页的反馈
- 如何在SAP Spartacus的scss里引入全局变量
- leetcode359. 日志速率限制器
- 基于AE的SimpleGIS框架的搭建
- 华为透露中国首个开源基金会将于近期正式运营!
- PowerShell 2.0远程管理之隐式远程管理
- yolo模型部署——tensorRT模型加速+triton服务器模型部署
- gin--简单路由代码
- 第1章 数据库系统概论---数据库原理及应用
- 台式机黑苹果独显驱动
- 网易云音乐 歌词制作软件 BesLyric
- English - 英语中的时间表达法,这里全啦!
- 【芯片使用】PCF8591
- C#数字转字母,ASCII码转换
- CS144-Lab4
- 高德地图截屏、标记鼠标跟随示例
- CobaltStrike(CS)与MetasploitFramework(MSF)联动
- Linux格式化硬盘
- 股票涨跌量化怎样进行策略分析?
- 关系数据库:专门关系运算
热门文章
- VDI成长之路:Windows桌面优化配置(持续更新-20120227)
- WPF Summary:XAML的介绍
- The binding handle is invalid 绑定句柄无效
- label标签 for属性
- [争什么! 掺在一起做撒尿牛丸啊! 笨蛋]ASP.NET Core 2.0 + EF6 + Linux +MySql混搭
- IOS 线程的总结(及cell的图片下载)
- 安卓android eclipse运行提示no compatible targets were found
- linux less命令详解
- Button,LinkButton,ImageButton,HyperLink使用
- 拓端tecdat|R语言可视化渐近正态性、收敛性:大数定律、中心极限定理、经验累积分布函数