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. [19/04/02-星期二] IO技术_字符流分类总结(含字符转换流InputStreamReader/ OutputStreamWriter,实现字节转字符)

    一.概念 ------->1.BufferedReader/BufferedWriter [参考19.03.31文章] *Reader/Writer-------->2.InputStre ...

  2. Linux tmux 使用指南

    注意:本文内容适用于 Tmux 2.3 及以上的版本,但是绝大部分的特性低版本也都适用,鼠标支持.VI 模式.插件管理在低版本可能会与本文不兼容. Tmux 快捷键 & 速查表 启动新会话: ...

  3. JVM 内部原理

    1.JVM的组成: JVM 由类加载器子系统.运行时数据区.执行引擎以及本地方法接口组成. 2.JVM的运行原理: JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器.它是一种基 ...

  4. 【AngularJS学习笔记】封装一些简单的控件(封装成Html标签)

    bootstrap有强大的指令系统,可以自定义一些属性,基本知识请移步:http://angularjs.cn/A00r  http://www.cnblogs.com/lvdabao/p/33916 ...

  5. center os 7 修改 mysql 密码

    笔记 本redis 密码 654321忘记密码:修改密码update user set authentication_string=password('123456') where user='roo ...

  6. AtomicStampedReference解决ABA问题

      在运用CAS做Lock-Free操作中有一个经典的ABA问题: 线程1准备用CAS将变量的值由A替换为B,在此之前,线程2将变量的值由A替换为C,又由C替换为A,然后线程1执行CAS时发现变量的值 ...

  7. 纯 js 让浏览器不缓存 ajax 请求

    开发「bufpay.com 个人即时到账收款平台」支付页面需要用到 ajax 轮询订单的支付状态. 现在浏览器对 ajax 的缓存策略遵循 http response header 里面的缓存设置,为 ...

  8. 哈希查找解决地址冲突的两种最常见方法(线性探测再散列,链地址法)C++实现

    #include<iostream>#include<iomanip>using namespace std; typedef struct Node{ int data; s ...

  9. python中的super怎么用?

    面向对象有这个强大特点和作用, 著名的三大特点:封装, 继承, 多态 这篇博客写的是super()的简单理解和使用 今天在读restframework的源码的时候, 发现源码中使用了super, 依以 ...

  10. CentOS6的/etc/rc.local不执行的问题解决

    小编在一个场景下,希望java -jar abc.jar命令在系统开机自启动是自动执行,于是乎在文件/etc/rc.local中写入nohup java -jar abc.jar &,重启后发 ...