写点什么

Istio 的使用场景

  • 2022-12-01
    北京
  • 本文字数:1166 字

    阅读完需:约 4 分钟

Istio的使用场景

初步使用 Kubernetes 或 Kubernetes 在生产环境中已经稳定运行了一段时间,如果想要接入 Istio 服务网格,那么对 Kubernetes 集群版本也有要求,如果读者正在使用的 Kubernetes 集群不支持对应的 Istio 版本,就需要对 Kubernetes 进行升级。下面给出一个升级 Kubernetes 的方案。


对于 Kubernetes 的升级,如果版本跨度较大,在线升级是非常困难的,可以使用了如下方法

  • 提前构建几套新的 Kubernets 集群,新集群使用较新的 Kubernetes 和 Istio 版本,Node 规模较小。

  • 修改与 Kubernetes 交互的 PaaS 平台所有服务的代码,兼容所有集群。

  • 开发迁移工具,将业务应用对应在 Kubernetes 集群的资源对象迁移到新集群,尤其做好 Inbound 和 Outbound 的处理,并设置正确的 Pod.metadata.annotations 字段。如果不治理 Dubbo 等协议,要做好应用类型的盘点,关闭流量拦截功能。必要时可以编写工具,去注册中心抓取服务信息,保证服务信息的准确性和实时性。

  • PaaS 平台做好应用服务迁移前后的标记,相关的服务程序要兼容新旧集群同时在线。对用户无感知,用户使用体验和迁移前后无区别。

  • 梳理应用迁移的流程并制作文档,尽量将所有流程自动化。

  • 迁移过程不断回收老集群的 Node,添加新集群的 Node,充分利用资源。

  • 应用迁移做好快速回滚方案,尽量保持应用在新旧集群同时在线,稳定运行后再回收旧集群的实例。


不管是容器化和还是服务网格,支撑它们不断推广的通常是降低成本、提高效率、提升 SLA 三方面。运维部和基础架构部作为后台技术部门,对业务研发团队提供支撑、赋能、引领。充分了解这些理念,可以让我们对技术的思考更加全面,也更加有利于新技术的落地。


利用 Istio 提供的三大能力,挖掘 Istio 的使用场景并解决生产环境的痛点,有利于服务网格的落地。这里有一些 Istio 的使用场景供参考

  • 将限流、熔断、超时、重试等 HTTP 流量治理功能平台化,让业务研发人员可以自主申请这些功能,充分保护业务应用的弹性。

  • 利用 Istio 的资源对象 PeerAuthentication 对应用做双向 TLS 加密,提高应用安全性,大大提升项目上线前的安全审核效率。

  • 使用 Istio 的资源对象 AuthorizationPolicy 对应用做访问控制,可以完美替代传统 IP 白名单,不再受固定 IP 的限制。

  • Istio 的流量镜像功能,可以轻松地将生产环境的宝贵流量复制到其他环境,赋能质量部门。

  • 利用 Istio 的 HTTP 路由功能修改头信息,可以做到流量的染色和应用环境的隔离,极大提高研发人员开发新特性的效率和测试人员的测试效率。

  • 利用 Istio 的 HTTP 路由功能,根据 HTTP 头信息区分流量,转发到不同的服务版本,可以按地区或用户属性等,对新的算法进行 AB 测试。

  • 使用 Istio 的流量调度策略和服务子集功能,可以实现金丝雀发布,保障生产环境快速迭代下的 SLA。

  • 利用 Istio 的 Envoy 代理日志和应用链路信息,绘制应用拓扑,收集调用链信息,快速定位生产故障。

  • 利用 Istio 的故障注入功能,配合 ChaosBlade 构建混沌工程。提前收集应用在故障下的表现并改进。


发布于: 刚刚阅读数: 5
用户头像

InfoQ签约作者 2018-11-30 加入

热爱生活,收藏美好,专注技术,持续成长

评论

发布
暂无评论
Istio的使用场景_istio_穿过生命散发芬芳_InfoQ写作社区