Istio 简介

简介: 参加了一次公司内部会议,关注到了新兴技术istio,和 service mesh 有着牵扯。所以开始编写相关内容。

官方对 istio 的介绍浓缩成了一句话:

An open platform to connect, secure, control and observe services.

即:连接、安全加固、控制和观察服务的开放平台。
开放平台就是指它本身是开源的,服务对应的是微服务,也可以粗略地理解为单个应用。
中间的四个动词就是 istio 的主要功能,官方也各有一句话的说明。这里再阐释一下:

  • 连接(Connect):智能控制服务之间的调用流量,能够实现灰度升级、AB 测试和红黑部署等功能
  • 安全加固(Secure):自动为服务之间的调用提供认证、授权和加密
  • 控制(Control):应用用户定义的 policy,保证资源在消费者中公平分配
  • 观察(Observe):查看服务运行期间的各种数据,比如日志、监控和 tracing,了解服务的运行情况

NOTE:其实 istio 的源头是微服务,但这又是一个很宽泛的话题,目前可以参考文章很多很多。
首先来看 istio 官方给出的架构图:
微信截图_20220329093225.png
可以看到,istio 就是我们上述提到的 service mesh 架构的一种实现,服务之间的通信(比如这里的 Service A 访问 Service B)会通过代理(默认是 envoy)来进行,而且中间的网络协议支持 HTTP/1.1,HTTP/2,gRPC 或者 TCP,可以说覆盖了主流的通信协议。控制中心做了进一步的细分,分成了 Pilot、Mixer、和 Citadel,它们的各自功能如下:

  • Pilot:为 envoy 提供了服务发现,流量管理和智能路由(AB测试、金丝雀发布等),以及错误处理(超时、重试、熔断)功能。用户通过 pilot 的 API 管理网络相关的资源对象,pilot 会根据用户的配置和服务的信息把网络流量管理变成 envoy 能识别的格式分发到各个 sidecar 代理中。
  • Mixer:为整个集群执行访问控制(哪些用户可以访问哪些服务)和 policy 管理(rate limit,quota 等),并且收集代理观察到的服务之间的流量统计数据
  • Citadel:为服务之间提供认证和证书管理,可以让服务自动升级成 TLS 协议

代理会和控制中心通信,一方面可以获取需要的服务之间的信息,另一方面也可以汇报服务调用的 metrics 数据。知道 istio 的核心架构,再来看看它的功能描述就非常容易理解了。

  • 连接:控制中心可以从集群中获取所有服务的信息,并分发给代理,这样代理就能根据用户的期望来完成服务之间的通信(自动地服务发现、负载均衡、流量控制等)
  • 安全加固:因为所有的流量都是通过代理的,那么代理接收到不加密的网络流量之后,可以自动做一次封装,把它升级成安全的加密流量
  • 控制:用户可以配置各种规则(比如 RBAC 授权、白名单、rate limit 或者 quota 等),当代理发现服务之间的访问不符合这些规则,就直接拒绝掉
  • 观察:所有的流量都经过代理,因此代理对整个集群的访问情况知道得一清二楚,它把这些数据上报到控制中心,那么管理员就能观察到整个集群的流量情况了
相关文章
|
消息中间件 存储 负载均衡
【Kafka】Kafka 分区
【4月更文挑战第5天】【Kafka】Kafka 分区
|
API 网络安全 网络虚拟化
Google Play 上架总结(二)Google账户关联详解
Google Play 上架总结(二)Google账户关联详解
2003 0
|
存储 Kubernetes 监控
Kubecost | Kubernetes 开支监控和管理 🤑🤑🤑
Kubecost | Kubernetes 开支监控和管理 🤑🤑🤑
|
机器学习/深度学习 人工智能 算法
【AI系统】AI系统的生态
在快速发展的AI领域,系统生态变得愈加复杂多元,涵盖核心软硬件、算法、框架及广泛的应用领域。本文深入剖析AI生态构成及其对技术进步的重要性,强调健康生态对促进技术创新、提升开发效率及加速商业化的作用。从核心硬件到算法框架,再到安全与隐私保护,全方位解读AI生态的构建与未来发展。
719 0
|
移动开发 JavaScript 前端开发
【专栏:HTML进阶篇】HTML模板与Web组件:可复用的网页元素
【4月更文挑战第30天】HTML模板和Web组件提升网页开发效率和可维护性。HTML模板,如<template>元素和服务器端模板引擎,用于创建可复用的HTML结构。Web组件是自定义的HTML元素,结合影子DOM和模板,实现封装的可重用组件。两者助力构建高效、现代的网页和网站。
600 0
|
Kubernetes 应用服务中间件 nginx
云原生|kubernetes|ingress-nginx插件部署以及简单的应用(修订版---适用于kubernetes-1.18-1.21)
云原生|kubernetes|ingress-nginx插件部署以及简单的应用(修订版---适用于kubernetes-1.18-1.21)
541 0
|
存储 数据安全/隐私保护 iOS开发
如何在阿里云ACK安装Kubecost
背景工作需要研究kebecost,正好也看到阿里云ACK集成了kubecost的推送,想着装个研究研究。本文中依据Kubecost的文档:https://docs.kubecost.com/install-and-configure/install/provider-installations/alibaba-install 安装,文档寥寥几句看似容易,但是实际装起来坑还是蛮多的,这里记录一下以便
987 1
如何在阿里云ACK安装Kubecost
|
监控 Kubernetes Cloud Native
阿里云与 Kubecost 合作,容器服务 ACK 支持使用 Kubecost 进行成本管理
阿里云与 Kubecost 合作,容器服务 ACK 支持使用 Kubecost 进行成本管理
阿里云与 Kubecost 合作,容器服务 ACK 支持使用 Kubecost 进行成本管理
|
Linux iOS开发 MacOS
Mac用户注意了,你的sed命令...
Mac用户注意了,你的sed命令...
|
存储 供应链 机器人
伙伴客户案例|阿里云RPA携手百胜软件助力大型物流企业降本增效
RPA全称机器人流程自动化(Robotic Process Automation),是一种新兴的“数字劳动力”,可以替代或辅助人完成规则明确的重复性劳动,大幅提升业务流程销量,实现企业业务流程的自动化和智能化,从而降本增效。目前,RPA解决方案的应用场景几乎涵盖了所有行业,包括银行、保险、制造、零售、医疗、物流、电子商务甚至政府和公共机构。
伙伴客户案例|阿里云RPA携手百胜软件助力大型物流企业降本增效