kubenetes从入门到上天系列第二十六篇:Kubernetes的Istio服务网格实战

一:快速入门Istio

1:什么是Istio

Istio 是运行于分布式应用程序之上的非侵入式(无代码入侵)服务网格系统,它的主要目的是为了更好更轻松的解决服务治理问题(Istio 是一套非侵入式一站式服务治理解决方案)。

Istio 的实现原理是,为每个微服务部署一个 Sidecar(边车),代理微服务之间的所有网络通信。Istio 是一个与 Kubernetes 紧密结合的适用于云原生场景的 Service Mesh 形态的用于服务治理的开放平台。

这里的关键字 "治理" 不限于 "微服务治理" 的范畴,任何服务只要服务间有访问,如果需要对服务间的访问做管理,就可以使用 Istio。根据 Istio 官方的介绍服务治理涉及到 "连接"、"安全"、"控制"、"观察",中间的四个动词就是 Istio 的主要功能。

Service Mesh(服务网格) 是一个专门处理服务间通信的基础设施层 ,负责服务之间的网络调用、熔断、限流、监控、安全等治理能力,且对业务代码无侵入

  • 连接(Connect):智能控制服务之间的调用流量,能够实现灰度升级、AB 测试和蓝绿部署等功能。
  • 安全加固(Secure):自动为服务之间的调用提供认证、授权和加密。
  • 控制(Control):应用用户定义的 policy,保证资源在消费者中公平分配。
  • 观察(Observe):查看服务运行期间的各种数据,比如日志、监控和 tracing(跟踪),了解服务的运行情况。

2:Istio能做什么?

通过负载均衡、服务间的身份验证、监控等方法,Istio 可以轻松地创建一个已经部署了服务的网络,而服务的代码只需很少更改甚至无需更改。通过在整个环境中部署一个特殊的 sidecar 代理为服务添加 Istio 的支持,而代理会拦截微服务之间的所有网络通信,然后使用其控制平面的功能来配置和管理 Istio。

Istio 的主要功能如下:

  1. 服务发现(discovery)。
  2. 负载均衡(load balancing)。
  3. 故障恢复(failure recovery)。
  4. 服务度量(metrics)。
  5. 服务监控(monitoring)。
  6. A/B 测试(A/B testing)。
  7. 灰度发布(canary rollouts)。
  8. 限流限速(rate limiting)。
  9. 访问控制(access control)。
  10. 身份认证(end-to-end authentication)。

从场景来看,Kubernetes 已经提供了非常强大的应用负载的部署、升级、扩容等运行管理能力。Kubernetes 中的 Service 机制也已经可以做服务注册、服务发现和负载均衡,支持通过服务名访问到服务实例。

从微服务的工具集观点来看,Kubernetes 本身是支持微服务的架构,在 Pod 中部署微服务很合适,也已经解决了微服务的互访互通问题,但对服务间访问的管理如服务的熔断、限流、动态路由、调用链追踪等都不在 Kubernetes 的能力范围内。那么,如何提供一套从底层的负载部署运行到上层的服务访问治理端到端的解决方案?目前,最完美的答案就是在 Kubernetes 上叠加 Istio。

相关推荐
ShiXZ2138 小时前
Java 8 Stream API 实用技巧详解:从入门到精通
java·开发语言
雨辰AI8 小时前
K8s人大金仓主从高可用搭建|容器化集群自动同步+故障切换(生产完整版)
云原生·容器·kubernetes
C++、Java和Python的菜鸟8 小时前
第9章 后端Web进阶(AOP)
java·开发语言·前端
东北赵四8 小时前
关于Java泛型的知识点及其相关面试题
java·windows·python
姓蔡小朋友8 小时前
Java线程并发
java·开发语言·python
执笔画流年呀9 小时前
⾃动化测试常⽤函数
java·dubbo
疯狂打码的少年9 小时前
【面向对象】UML概述(基本构造块:事物/关系/图)
java
潘正翔9 小时前
k8s基础_kubeadm搭建k8s集群
linux·运维·docker·云原生·容器·kubernetes
一水9 小时前
TTFT优化:一个方案的5次推倒重来
java·ai·状态模式
AC赳赳老秦10 小时前
CSDN 技术社区数据采集:OpenClaw 抓取公开技术热帖,生成领域技术热点周报
java·大数据·前端·数据库·python·php·openclaw