文档说明

作者:痴者工良

作者博客地址:

https://www.whuanle.cn

https://www.cnblogs.com/whuanle


教程地址:https://docs.whuanle.cn/zh/istio

导读

Istio 是构建在 Kubernetes 之上的服务网格(Service Mesh)基础设施,主要用于解决微服务系统中的流量治理可观测性安全通信等问题。

在很多团队里,应用虽然已经运行在 Kubernetes 上,但服务之间的调用治理、链路追踪、灰度发布、访问控制、熔断限流、入口出口流量管理等能力,往往还是散落在代码、SDK、网关配置或各种中间件中。这样做不仅增加了系统复杂度,也会让业务代码背上很多与业务无关的负担。

Istio 的价值就在于:将一部分微服务治理能力下沉到基础设施层。在尽量不改动业务代码的前提下,通过 Sidecar、网关和控制平面的配合,为服务提供统一的治理能力。

本教程围绕 Istio 的常见使用场景展开,尽量用循序渐进的方式带你理解:

  • 为什么在微服务系统中需要 Istio;
  • Istio 的核心组件和工作原理;
  • 如何在 Kubernetes 中部署 Istio;
  • 如何通过 Bookinfo 示例快速上手;
  • 如何使用 VirtualService、DestinationRule、Gateway 等对象管理流量;
  • 如何实现可观测性、金丝雀发布以及服务间认证鉴权。

本教程偏向基础入门 + 实验实践,适合把 Istio 当作服务治理学习入口的读者,也适合已经接触 Kubernetes、想进一步理解服务网格设计思想的读者。


本教程适合哪些读者

  • 已经具备 Kubernetes 基础,想继续学习微服务治理;
  • 想了解 Service Mesh 是什么、能解决什么问题;
  • 希望掌握 Istio 常见资源对象及其使用方法;
  • 想通过实验理解灰度发布、流量治理、认证授权等场景;
  • 希望从架构角度理解“把治理能力下沉到基础设施层”这件事。

学习前建议

为了更顺畅地阅读本教程,建议你至少具备以下基础:

  • 知道 Kubernetes 中 Pod、Deployment、Service、Namespace 的作用;
  • 能够使用 kubectl 查看和部署资源;
  • 对微服务、HTTP 调用、网关有基本概念;
  • 最好已经有一个可用的 Kubernetes 练习环境。

如果你还没有接触过 Kubernetes,建议先补充基础知识后再学习本教程,这样会更容易理解 Istio 为什么这样设计。


你将学到什么

学习完本教程后,你可以对以下内容建立起整体认识:

  • Istio 在微服务体系中的定位,以及它与 Kubernetes 的关系;
  • Sidecar、Envoy、数据平面、控制平面的基本概念;
  • 使用 Helm 安装和管理 Istio 组件;
  • 给命名空间启用 Sidecar 自动注入;
  • 使用 Gateway、VirtualService、DestinationRule 控制入口与服务路由;
  • 使用 Kiali、Jaeger、Prometheus 等组件观察网格流量;
  • 实现基于版本、Header、比例的流量分发;
  • 实现超时、故障注入、熔断等流量治理能力;
  • 实现 mTLS、请求认证、授权控制等安全能力。

学习路线建议

如果你是第一次接触 Istio,建议按照下面的顺序阅读:

  1. 先阅读“为什么学习 Istio”,理解 Istio 出现的背景和解决的问题;
  2. 再完成 Istio 的基础部署,先把环境搭起来;
  3. 通过 Bookinfo 示例快速上手,建立对 Gateway、VirtualService、Sidecar 的直观认识;
  4. 接着学习可观测性,观察服务调用关系和链路追踪数据;
  5. 在此基础上深入学习流量管理、网关和金丝雀发布;
  6. 最后学习认证与授权,补齐服务网格中的安全能力。

这样阅读,会更容易从“能跑起来”逐步走向“理解原理”和“掌握场景”。


阅读与实践建议

  • 建议边看边做实验,不要只停留在概念层面;
  • 学习流量治理时,尽量配合 Kiali 一起观察调用拓扑;
  • 修改配置后,多使用 kubectl getkubectl describekubectl logs 检查运行状态;
  • 对比“未使用 Istio”和“使用 Istio”两种方式,更容易体会服务网格带来的变化;
  • Istio 能力很多,但不必一开始追求全部掌握,先把最常用的入口、路由、观测、安全学扎实即可。

目录

希望本系列教程能够帮助你不仅学会 Istio 的基础使用方式,也能借此理解微服务治理与服务网格背后的设计思想。