漫步远方,心荡神往

Istio 中数据包的生命周期 - 下篇

在这篇文章中,我们将深入了解 Envoy 配置,探讨组成 Envoy 配置文件的不同组件,以及它们如何协同工作。我们还将演示如何为不同用例配置 Envoy 以实现服务发现、路由、Tracing、UDP 等功能。

在《Istio 中数据包的生命周期 - 上篇》文章中,我们学习了服务网格和 Istio 相关概念,Istio 提供流量管理、可观察性、安全性等功能。然后,我们深入研究了 Istio 数据平面中的流量拦截工作机制,该数据平面由一组代理服务组成,这些代理服务使用扩展的 Envoy 在每个 Kubernetes Pod 中作为 sidecar 容器。接着,我们讨论了 sidecar 注入以及 istio-proxy 和 istio-init 作用。最后,我们介绍了入站和出站的流量劫持工作流程。 前言 在服务网格的世界里,Envoy 已经成为最受欢迎的代理之一,用于处理服务之间的流量。Envoy 由 Lyft 开发,现在是云原生计算基金会(CNCF

Istio 中数据包的生命周期 - 上篇

在本篇博客中,我们尝试跟踪 Istio 服务网格中的 HTTP 请求,深入理解 Istio Proxy 如何通过拦截流量来处理入站和出站流量。

如果你从事系统后端研发相关工作,“服务网格”一词你或许一定听说过。Istio 过往一直被批评为过于复杂,但今天的 Istio 更加简单易用。 在本篇博客中,我们尝试跟踪 Istio 服务网格中的 HTTP 请求,深入理解它如何通过拦截流量来处理入站和出站流量。 什么是 Service Mesh? 现代应用程序通常被设计为分布式微服务架构,每个微服务执行一些特定的业务功能。服务网格是一个专用的基础设施层,我们可以在应用程序中引入它。服务网格允许透明地添加可观察性、流量管理和安全性等功能,而无需将上述功能实现代码在自己的代码中实现。“s

如何构建多架构多平台 Docker 镜像?

前言 在不同操作系统和处理器架构上运行应用是很普遍的需求,因此为不同平台单独构建发布版本是一种常见做法。 当我们用来开发应用的平台与部署的目标平台不同时,实现这一目标并不简单。 例如在 x86 架构上开发一个应用程序并将其部署到 ARM 平台的机器上,通常需要准备 ARM 平台的基础设施用于开发和编译。 在工作和生活中,我们可能经常需要将某个程序跑在不同的 CPU 架构上,比如让某些不可描述的软件运行在树莓派或嵌入式路由器设备上。 但是想要跨平台构建 Docker 镜像可不是一件轻松的活,要么到不同 CPU 架构的系统上全部构建一遍, 要么

Istio 服务网格如何处理安全问题

在这篇博客中,我将解释 Istio 如何解决诸如流量加密、提供灵活的服务访问控制、配置双向 TLS 和细粒度访问策略与审计等问题。 Istio 安全架构 Istio 服务网格发展历史如下所示: Istio 主要由以下组件提供安全功能: 用于管理密钥和证书的证书颁发机构 (CA) Sidecar 代理:实现客户端和服务器之间的安全通信(它们用作策略执行点 (PEP)) Envoy 代理扩展层:管理遥测和审计等 配置 API 服务器:分发身份验证、授权策略和安全命名信息等 策略执行点 (PEP) 是充当资源守护者的组件。让我们查阅下图中不同组件及其职责的架构图。 认证(Authentication)

调度框架 Scheduling Framework

架构设计 相关文档参见 Scheduling Framework。 前提 调度框架定义了一组扩展点,用户可以实现扩展点定义的接口来定义自己的调度逻辑,并将扩展注册到扩展点上,调度框架在执行调度工作流时,遇到对应的扩展点时,将调用用户注册的扩展。调度 Pod 时一般会有两个步骤:调度过程和绑定过程。 将调度过程和绑定过程合在一起,称之为调度上下文(scheduling context)。调度是同步的,绑定过程是异步运行的。调度过程和绑定过程遇到如下情况时会中途退出,调度程序认为当前没有该 Pod 的可选节点或者产生内部错误,