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. nrf52840蓝牙BLE5.0空中速率测试(nordic对nordic)

    一.基础知识: [1]Data Length:物理层发送一包数据的最大值: [2]MTU: ATT层发送一次数据长度的最大值: [3]GAP Event Length:一个connection eve ...

  2. TCP Three-way Handshake

    TCP Connection Management Out-of-Order and Duplication(复制) Problem Old segment from previous connect ...

  3. react native基本调试技巧

    刚入坑RN,很多小坑都要摸索很久才明白.今天咱们就来填console.log()的坑. 废话不多说,开始讲步骤!! 1.在模拟器中打开 开发者菜单,选择 Debug JS Remotely,会自动在浏 ...

  4. Python 学习笔记(十二)Python文件和迭代(一)

    文件 文件和文件夹 文件:文本文件.二进制文件 文件夹:(windows) G:\pythonWorkspace\python\study (linux/mac) /home/workspace/py ...

  5. 一点一点看JDK源码(五)java.util.ArrayList 后篇之forEach

    一点一点看JDK源码(五)java.util.ArrayList 后篇之forEach liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点看JDK源码(〇) 代 ...

  6. 一点一点看JDK源码(五)java.util.ArrayList 后篇之sort与Comparator

    一点一点看JDK源码(五)java.util.ArrayList 后篇之sort与Comparator liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点看JD ...

  7. js常用共同方法

    var uh_rdsp = (function(){ //获取根目录 var getContextPath = function(){ var pathName = document.location ...

  8. 个人开发者即时到账收款方案 BufPay.com

    BufPay 个人即时到账支付平台 前言 作为独立开发者,一般只有一个人独立奋战,做出了产品需要收款是非常麻烦的,接入支付宝微信支付都需要公司公户,而注册公司.开公户等一系列操作非常麻烦,成本也很高一 ...

  9. 『C++』Temp_2018_12_06

    #include <iostream> #include <string> using namespace std; class Type{ public: string Na ...

  10. 上白泽慧音(tarjan,图的染色)

    题目描述 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄.因此慧音决定换一个能够聚集最多人数的村庄作为新的教学地点.人间 ...