Shriram与来自Google、Lyft、IBM和其他公司的社区贡献者们一起并肩作战,积极地向Istio和Envoy项目作贡献。同时,Shriram是IBM的Amalgam8项目的创始成员之一。目前,Shriram是VMware的一名工程师,与VMware的企业客户密切合作,致力于开发服务网格解决方案。一个有趣的事实:Shriram编写了Istio Bookinfo示例应用程序的初始版本。你可以在Twitter上关注Shriram—@rshriram.

在这次访谈中,Shriram分享了许多自己对于Istio和服务网格主题的想法和见解。比如,Istio1.0发布的主要目标是什么以及他如何推荐企业采用Istio。

欢迎添加群助手monicka,申请加入华为云K8S容器技术交流群

现在来看看我们对Shriram的采访内容……

问:Istio1.0版本发布主要目标是什么?

Shriram:Istio 1.0整体是对现有功能的一种升级,并确保Istio可以在生产环境中以无干扰的方式逐步采用。

当我们逐个服务开始启用双向TLS身份认证时,Istio的增量部署出现了一些有趣的问题。我们需要确保在为服务启用双向TLS身份认证时,旧版客户端可以继续通过纯文本在同一端口上与同一服务进行通信,而较新的启用Istio的客户端需要通过mTLS进行通信。

我们关注的另一个领域是0.8版本的升级能力以及未来版本的升级。我们必须确保我们可以平滑地升级网格控制平面,而不会中断服务间通信,并且同时支持新老版本的代理。

问:您建议采用什么样的方式来快速增量部署Istio 1.0?

Shriram:增量安装Istio的最佳方法是使用Helm charts。您可以在values.yaml文件中禁用不需要的组件,并运行Helm命令以生成自定义的istio.yaml文件。

首先,我们部署一个仅使用Istio ingress gateway组件的网络,然后将所有流量从Kubernetes Ingress迁移到Istio gateway,并确保外部客户端仍可访问集群公开的服务。此步骤最大限度地减少了集群中已运行的应用程序的停机时间。在此阶段,您有两种选择:为进入网格的流量启用路由,遥测,策略实施等功能,或继续在所有服务中安装被动网格服务,然后尝试不同的功能。

假设您想要跨所有服务部署网格,在你手动或通过自动注入的方式向应用程序添加Istio sidecars之前,先评估所有外部依赖项(来自Kubernetes集群),例如第三方API,后端数据库等。Istio Pilot为服务注册中心的所有服务(例如,Kubernetes services)建立连接,默认情况下,没有注册的外部服务不能和网格内的服务进行通信。使用Istio service entry配置获取有关外部依赖项的所有详细信息,这些信息包括网格外服务的主机和端口以及它们使用的协议。service entries将确保sidecars能够调度流量,以及根据需要调用API来定位网格外部的系统。

接下来,下一个关注点是可观察性,尤其是监测指标。您无需重新检测应用程序,通过安装Istio遥测收集器(通过helm chart)并全局启用遥测收集,您可以看到流量如何流经系统。此时整个网格仍然是完全被动的,但它为您提供了宝贵的遥测数据。

一旦您熟悉上述设置,就可以开始尝试不同的Istio功能,可以根据您的环境进行不同的选择。如果您经常部署应用程序,您可能想要从流量管理功能开始,例如版本路由或弹性功能(如超时,重试,连接池等);如果您的目标是保护所有服务间的通信流量,您可以渐渐地将所有服务切换到mTLS,然后再利用Istio来配置安全策略。

无论您选择哪条路径,请确保自动执行任务。像Kubernetes一样,Istio要求你关注YAML文件,使用版本管理工具[Git仓库]可以轻松查明错误并快速回滚。

问:有哪些方法可以扩展Istio 1.0?

Shriram:Istio可以围绕内部定制和供应商价值差异化这两个方面进行多种扩展。

例如,遥测服务有许多适配器可以将遥测数据发送到各种云托管服务,例如Stackdriver,DataDog,AWS CloudWatch等。如果您有内部监测服务,您可以编写适配器将监测指标数据从网格发送到您的内部指标池。

同样,您可以通过自定义策略引擎定义Istio的安全性功能,例如,Apigee人员在Istio策略引擎中添加了一个适配器来提供API管理。还有一个适用于Open Policy Agent(OPA)的适配器,您可以构建在OPA之上,以与内部AD / LDAP或其他系统集成。或者,您可以直接向策略引擎添加自定义适配器,让内部授权系统决定是否允许请求通过,而不会影响基础数据平面的代理。这是一个非常灵活和可插拔的设计。

您还可以自定义数据平面。如果您有专有协议的内部编解码器,则可以将它们作为Envoy的扩展添加,并通过网络配置启用这些扩展,比如,Calico人员正在使用这种技术来启用自定义Envoy过滤器以进行授权。

问:Istio下一个重要里程碑是什么?

Shriram:在我们与企业客户交谈时,我们反复听到他们已经或将要把应用部署在不同的Kubernetes集群,Cloud Foundry和传统VM基础架构中,这些部署需要跨越不同的可用域、区域以及云,我们希望确保网格不管是在本地还是在多个公有云中都可以跨越这些异构环境运行。

Istio Gateway [在Istio0.8中介绍] 是实现这一目标的第一步,网关使得各个机构能够绕开昂贵的VPN技术实现pod间通信,它在单个逻辑控制平面管理的集群之间自由地调度流量。同时,我们可以拥有一个策略层,并开始跨群集传播授权上下文,执行RBAC,ABAC和企业所需的其他策略等。

原文:

https://blogs.vmware.com/cloudnative/2018/07/31/istio1-0-interview-with-istio-networking-tech-lead/

惊喜Skr人,Istio的创始人Shriram Rajagopalan手把手教你如何使用Istio的更多相关文章

  1. 网络编程懒人入门(八):手把手教你写基于TCP的Socket长连接

    本文原作者:“水晶虾饺”,原文由“玉刚说”写作平台提供写作赞助,原文版权归“玉刚说”微信公众号所有,即时通讯网收录时有改动. 1.引言 好多小白初次接触即时通讯(比如:IM或者消息推送应用)时,总是不 ...

  2. Istio技术与实践02:源码解析之Istio on Kubernetes 统一服务发现

    前言 文章Istio技术与实践01: 源码解析之Pilot多云平台服务发现机制结合Pilot的代码实现介绍了Istio的抽象服务模型和基于该模型的数据结构定义,了解到Istio上只是定义的服务发现的接 ...

  3. 【从小白到专家】Istio技术实践专题(四):应用接入Istio的正确姿势

    上一篇文章中,我们介绍了Istio针对单集群的三种主流部署安装方式:使用Istioctl安装.使用Helm自定义安装.独立Operator安装.本文将向大家介绍kubernetes中的应用接入Isti ...

  4. 【轮子狂魔】手把手教你用JS给博客动态增加目录 - 超级懒人版

    动态显示目录的作用 不用每次写博客的时候繁琐的人工整理目录,又可以动态浮动在右下角,方便快速跳到感兴趣的位置同时也可以快速的对文章内容有一个大概的了解. 实现原理 首先根据个人喜好,我习惯了用 h1 ...

  5. idou老师教你学Istio12 : Istio 实现流量镜像

    微服务为我们带来了快速开发部署的优秀特性,而如何降低开发和变更的风险成为了一个问题.Istio的流量镜像,也称为影子流量,是将生产流量镜像拷贝到测试集群或者新的版本中,在引导实时流量之前进行测试,可以 ...

  6. Service Mesh服务网格新生代--Istio(转)

    万字解读:Service Mesh服务网格新生代--Istio  官网地址:https://preliminary.istio.io/zh/docs/concepts/security/ Servic ...

  7. Istio是啥?一文带你彻底了解!

    原标题:Istio是啥?一文带你彻底了解! " 如果你比较关注新兴技术的话,那么很可能在不同的地方听说过 Istio,并且知道它和 Service Mesh 有着牵扯. 这篇文章可以作为了解 ...

  8. idou老师教你学Istio 24:如何在Istio使用Prometheus进行监控

    使用Prometheus进行监控是Istio提供的监控能力之一.Istio提供丰富的监控能力,为网格中的服务收集遥测数据.Mixer是负责提供策略控制和遥测收集的Istio组件. Istio通过Mix ...

  9. 【转帖】Istio是啥?一文带你彻底了解!

    Istio是啥?一文带你彻底了解! http://www.sohu.com/a/270131876_463994 原始位置来源: https://cizixs.com 如果你比较关注新兴技术的话,那么 ...

随机推荐

  1. 【[USACO08FEB]酒店Hotel】

    比较基础的线段树了 我们要维护最大连续子串,这个可以说是一个比较套路的操作了 我们在[SHOI2009]会场预约这道题中已经比较深刻的认识到了这个套路了 对于这道题,我们显然要知道一个区间内最大的全为 ...

  2. 关于PHP上传文件失败但是找不到原因的问题?

    确定上传文件的前后台代码都准确无误后,可以考虑是不是PHP配置文件中限制了上传文件的大小 1.找到根目录中的PHP文件夹 2.点击当前正在使用的的PHP版本 3.搜索php.ini 4.打开 phpF ...

  3. alibaba--java规范

    18. [推荐]final 可以声明类.成员变量.方法.以及本地变量,下列情况使用 final 关键字: 1) 不允许被继承的类,如:String 类. 2) 不允许修改引用的域对象,如:POJO 类 ...

  4. Visual C++中MFC消息的分类

    Visual C++中MFC消息的分为三类:标准(窗口)消息.命令消息.控件消息. 1.标准(窗口)消息:窗口消息一般与窗口内部运作有关,如创建窗口,绘制窗口,销毁窗口,通常,消息是从系统发到窗口,或 ...

  5. ON_COMMAND ON_MESSAGE ON_NOTIFY区别与联系

    ON_COMMAND是菜单和工具栏项处理消息的宏 ON_MESSAGE是处理自定义消息的宏 ON_NOTIFY 是控件向其父窗口发送消息处理的宏 对这几个消息的理解要先了解一下Window消息的背景. ...

  6. Oracle树形结构数据-相关知识总结

    Oracle树形结构数据--基本知识 1.数据组成 2.基本查询 2.1.查询某节点及该节点下的所有子孙节点 SELECT   *      FROM QIANCODE.TREE_TABLE_BASI ...

  7. C++ Primer学习笔记_1_快速入门

    C++快速入门 一 编写简单程序 // main是操作系统唯一显示调用的函数int main() {/**return返回的值是一个状态指示器 0:成功 非0:返回错误给OS*以echo $?命令可以 ...

  8. Linux学习笔记——1.超级用户

    以超级用户工作:su su命令允许临时变换到任何一用户标识(如果拥有口令的话),并挂起当前shell,为新用户开启一个新的shell. su <user> 将当前用户标识harley变换为 ...

  9. 用JQ实现的一个简单轮播

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>lb ...

  10. JSP/Servlet开发——第八章 JSTL和EL

    1. EL表达式: ●需要EL表达式的原因: ◆在JSP中使用Java脚本的局限: 1).在JSP页面中嵌入大量的Java代码: 2).访问结构比较复杂的数据时代码烦琐,且经常需要强制类型转换: eg ...