惊喜Skr人,Istio的创始人Shriram Rajagopalan手把手教你如何使用Istio
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的更多相关文章
- 网络编程懒人入门(八):手把手教你写基于TCP的Socket长连接
本文原作者:“水晶虾饺”,原文由“玉刚说”写作平台提供写作赞助,原文版权归“玉刚说”微信公众号所有,即时通讯网收录时有改动. 1.引言 好多小白初次接触即时通讯(比如:IM或者消息推送应用)时,总是不 ...
- Istio技术与实践02:源码解析之Istio on Kubernetes 统一服务发现
前言 文章Istio技术与实践01: 源码解析之Pilot多云平台服务发现机制结合Pilot的代码实现介绍了Istio的抽象服务模型和基于该模型的数据结构定义,了解到Istio上只是定义的服务发现的接 ...
- 【从小白到专家】Istio技术实践专题(四):应用接入Istio的正确姿势
上一篇文章中,我们介绍了Istio针对单集群的三种主流部署安装方式:使用Istioctl安装.使用Helm自定义安装.独立Operator安装.本文将向大家介绍kubernetes中的应用接入Isti ...
- 【轮子狂魔】手把手教你用JS给博客动态增加目录 - 超级懒人版
动态显示目录的作用 不用每次写博客的时候繁琐的人工整理目录,又可以动态浮动在右下角,方便快速跳到感兴趣的位置同时也可以快速的对文章内容有一个大概的了解. 实现原理 首先根据个人喜好,我习惯了用 h1 ...
- idou老师教你学Istio12 : Istio 实现流量镜像
微服务为我们带来了快速开发部署的优秀特性,而如何降低开发和变更的风险成为了一个问题.Istio的流量镜像,也称为影子流量,是将生产流量镜像拷贝到测试集群或者新的版本中,在引导实时流量之前进行测试,可以 ...
- Service Mesh服务网格新生代--Istio(转)
万字解读:Service Mesh服务网格新生代--Istio 官网地址:https://preliminary.istio.io/zh/docs/concepts/security/ Servic ...
- Istio是啥?一文带你彻底了解!
原标题:Istio是啥?一文带你彻底了解! " 如果你比较关注新兴技术的话,那么很可能在不同的地方听说过 Istio,并且知道它和 Service Mesh 有着牵扯. 这篇文章可以作为了解 ...
- idou老师教你学Istio 24:如何在Istio使用Prometheus进行监控
使用Prometheus进行监控是Istio提供的监控能力之一.Istio提供丰富的监控能力,为网格中的服务收集遥测数据.Mixer是负责提供策略控制和遥测收集的Istio组件. Istio通过Mix ...
- 【转帖】Istio是啥?一文带你彻底了解!
Istio是啥?一文带你彻底了解! http://www.sohu.com/a/270131876_463994 原始位置来源: https://cizixs.com 如果你比较关注新兴技术的话,那么 ...
随机推荐
- tp3.2中的 I () 方法
I('get.id'); // 相当于 $_GET['id']
- Codeforces Round #540 (Div. 3) D1. Coffee and Coursework (Easy version) 【贪心】
任意门:http://codeforces.com/contest/1118/problem/D1 D1. Coffee and Coursework (Easy version) time limi ...
- C#读取信息备份
class Program { static void Main(string[] args) { var wc = new WebClient(); var html = wc.DownloadSt ...
- QGis 利用Python Console编写脚本进行批量处理
前言 这篇文章里,我们要完成一些数据的合并,计算等操作. 准备工作 首先要了解Qgis的编程模型,具体参考文章<QGIS里的编程模型>及<Qgis里的查询过滤>.了解了Qgis ...
- ssh调用matplotlib绘图报错RuntimeError: Invalid DISPLAY variable
1.问题:在本地用matplotlib绘图可以,但是在ssh远程绘图的时候会报错 RuntimeError: Invalid DISPLAY variable 2.原因:matplotlib的默认ba ...
- c++构造函数详解(转)
c++构造函数的知识在各种c++教材上已有介绍,不过初学者往往不太注意观察和总结其中各种构造函数的特点和用法,故在此我根据自己的c++编程经验总结了一下c++中各种构造函数的特点,并附上例子,希望对初 ...
- 大数据框架-Zookeeper
Hadoop的分布式协同服务,让分布式系统碰到失败时候,能够正确处理此类问题.基础功能:master选举,数据同步.Zooleeper集群有Client和Server(leader和follower) ...
- 【微信开发】微信开发模式 api 接口文档简介
微信公众平台分为订阅号和服务号,服务号提供9大接口,需要通过微信认证后才能使用这些接口.认证费用300元.下面是接口的大致介绍: 1. 语音识别:通过语音识别接口,用户发送的语音,将会同时给出语音识别 ...
- NodeJ Koa2 安装使用 reeber
介绍 Koa 是由 Express 原班人马打造的,致力于成为一个更小.更富有表现力.更健壮的 Web 框架. 使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的 ...
- MAC系统 输入管理员账户密码 登录不上
mac新系统改密码~管理员 升级10.13.2后,很多不会操作了, 那天把系统管理员设置成了普通管理,就不能打开个别软件了, 贼尴尬~~~ 后来找blog才解决,现在分享下~~ http://www. ...