Service Mesh chapter deprecated, redirect to https://jimmysong.io/istio-handbook

pull/321/head
Jimmy Song 2018-12-11 20:40:34 +08:00
parent e8b224a158
commit 94b362bd0c
26 changed files with 51 additions and 11 deletions

View File

@ -2,7 +2,7 @@
[Kubernetes](http://kubernetes.io)是Google基于[Borg](https://research.google.com/pubs/pub43438.html)开源的容器编排调度引擎,作为[CNCF](http://cncf.io)Cloud Native Computing Foundation最重要的组件之一它的目标不仅仅是一个编排系统而是提供一个规范可以让你来描述集群的架构定义服务的最终状态Kubernetes可以帮你将系统自动地达到和维持在这个状态。Kubernetes作为云原生应用的基石相当于一个云操作系统其重要性不言而喻。
本书记录了本人从零开始学习和使用Kubernetes的心路历程着重于经验分享和总结同时也会有相关的概念解析希望能够帮助大家少踩坑少走弯路还会指引大家关于关注Kubernetes生态周边如微服务构建、DevOps、大数据应用、Service Mesh、Cloud Native等领域。
本书记录了本人从零开始学习和使用Kubernetes的心路历程着重于经验分享和总结同时也会有相关的概念解析希望能够帮助大家少踩坑少走弯路还会指引大家关于关注Kubernetes生态周边如微服务构建、DevOps、大数据应用、[Service Mesh](https://jimmysong.io/posts/what-is-a-service-mesh/)、Cloud Native等领域。
本书的主题不仅限于Kubernetes还包括以下几大主题

View File

@ -1,5 +1,7 @@
# Service Mesh技术对比
**注意:本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
这一章主要讲解Service Mesh技术之间的区别Service Mesh与其他相关技术之间的区别读者可以直接浏览该网站来查看对比http://layer5.io/service-meshes/
为什么有了如Kubernetes这样的容器编排我们还需要Service Mesh呢下表是对容器编排调度器的核心功能和缺少的服务级别能力对比。

View File

@ -1,5 +1,7 @@
# 配置请求的路由规则
**注意:本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
在上一节[安装istio](istio-installation.md)中我们创建[BookInfo](https://istio.io/docs/samples/bookinfo.html)的示例熟悉了Istio的基本功能现在我们再来看一下istio的高级特性——配置请求的路由规则。
使用istio我们可以根据**权重**和**HTTP headers**来动态配置请求路由。

View File

@ -1,5 +1,7 @@
# SOFAMesh中运行Dubbo on x-protocol
**注意:本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
原文作者彭泽文阿里巴巴UC事业部高级开发工程师有改动。
X-protocol 的定位是云原生、高性能、低侵入性的通用 Service Mesh 落地方案,依托 Kubernetes 基座,利用其原生的服务注册和服务发现机制,支持各种私有 RPC 协议低成本、易扩展的接入,快速享受 Service Mesh 所带来的红利。

View File

@ -1,5 +1,7 @@
# Envoy 作为前端代理
**注意:本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
本文是使用 Envoy 作为前端代理的介绍,仅使用 docker 容器和 docker-compose 做编排在单机中运行,帮助我们从更底层了解 Envoy当我们将 Envoy 作为 Istio Service Mesh 的 data panel 的时候将更加游刃有余。
## 快速开始

View File

@ -1,5 +1,7 @@
# Envoy mesh 教程
**注意:本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
本文是在 Kubernetes 集群中,使用 Envoy 来做 mesh来为一个简单的使用 Python 编写的 Flask 应用程序做反向代理和负载均衡。
**注**:本教程中的示例来自 [envoy-steps](https://github.com/datawire/envoy-steps),本文中使用的所有的代码和 YAML 配置见 [envoy-tutorial](https://github.com/rootsongjc/envoy-tutorial)。

View File

@ -1,12 +1,14 @@
# Envoy 的架构与基本术语
**注意:本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
在了解一门技术之前一开始就要了解其中的基本概念和术语,只有融入了该语境才能理解这门技术。本文将为大家介绍 Envoy 中的基本术语和重点概念。
## 架构
下图是 Envoy proxy 的架构图,显示了 host B 经过 Envoy 访问 host A 的过程。每个 host 上都可能运行多个 serviceEnvoy 中也可能有多个 Listener每个 Listener 中可能会有多个 filter 组成了 chain。
![Envoy proxy 架构图](../images/envoy-arch-v0.1.png)
![Envoy proxy 架构图](../images/envoy-arch.png)
其中的基本术语将在下面解释。

View File

@ -1,6 +1,8 @@
# Envoy
[Envoy](https://github.com/envoyproxy/envoy) 是一款由 Lyft 开源的,使用 C++ 编写的 L7 代理和通信总线,目前是 [CNCF](https://cncf.io) 旗下的开源项目,代码托管在 GitHub 上,它也是 [Istio](https://istio.io) service mesh 中默认的 data plane。
**注意:本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
[Envoy](https://github.com/envoyproxy/envoy) 是一款由 Lyft 开源的,使用 C++ 编写的 L7 代理和通信总线,目前是 [CNCF](https://cncf.io) 旗下的开源项目且已经毕业,代码托管在 GitHub 上,它也是 [Istio](https://istio.io) service mesh 中默认的 data plane。
ServiceMesher 共同联合翻译了 [Envoy 最新版本的官方文档](https://www.envoyproxy.io/docs/envoy/latest/),翻译的代码托管在 <https://github.com/servicemesher/envoy>Envoy 官方文档中文版地址:<http://www.servicemesher.com/envoy/>

View File

@ -1,6 +1,6 @@
# 安装和拓展 Istio mesh
**注意:本文档已失效,请浏览 [Istio 官方文档](https://istio.io/zh)**
**注意:本文档已失效,请浏览 [Istio 官方文档](https://istio.io/zh)。本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
## 前置条件

View File

@ -1,5 +1,7 @@
# 集成虚拟机
**注意:本文档已失效,请浏览 [Istio 官方文档](https://istio.io/zh)。本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
该示例跨越 Kubernetes 集群和一组虚拟机上部署 Bookinfo 服务,描述如何使用 Istio service mesh 将此基础架构以单一 mesh 的方式操控。
> 注意:本文档还在建设中,并且只在 Google Cloud Platform 上进行过测试。

View File

@ -1,5 +1,7 @@
# 如何参与 Istio 社区及注意事项
**注意:本文档已失效,请浏览 [Istio 官方文档](https://istio.io/zh)。本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
本文讲述了如何参与 Istio 社区和进行 Istio 开发时需要注意的事项。
### 工作组

View File

@ -1,6 +1,6 @@
# 安装并试用Istio service mesh
**注意:本文档已失效,请浏览 [Istio 官方文档](https://istio.io/zh)**
**注意:本文档已失效,请浏览 [Istio 官方文档](https://istio.io/zh)。本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
官方文档地址 [快速开始](https://istio.io/docs/setup/kubernetes/)

View File

@ -1,5 +1,7 @@
# Istio 教程
**注意:本文档已失效,请浏览 [Istio 官方文档](https://istio.io/zh)。本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
本文是 Istio 管理 Java 微服务的案例教程,使用的所有工具和软件全部基于开源方案,替换了 [redhat-developer-demos/istio-tutorial](https://github.com/redhat-developer-demos/istio-tutorial) 中的 minishift 环境,使用 [kubernetes-vagrant-centos-cluster](https://github.com/rootsongjc/kubernetes-vagrant-centos-cluster) 替代,沿用了原有的微服务示例,使用 Zipkin 做分布式追踪而不是 Jaeger。
本文中的代码和 YAML 文件见 <https://github.com/rootsongjc/istio-tutorial>

View File

@ -1,5 +1,7 @@
# Istio 免费学习资源汇总
**注意:本文档已失效,请浏览 [Istio 官方文档](https://istio.io/zh)。本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
8月1日0点[Istio 1.0发布,已生产就绪!](http://www.servicemesher.com/blog/announcing-istio-1.0/)大家都已经跃跃欲试了,几天前我发布了[一键在本地搭建运行Istio 1.0的分布式Kubernetes集群](https://github.com/rootsongjc/kubernetes-vagrant-centos-cluster)教程在本地搭建起来还是有些门槛稍显复杂现在我推荐几个可以在线上学习的地方。这是目前搜集的比较完整的Isito学习环境和包含代码的示例教程有如下几个
目前搜集的比较完整的Isito学习环境和包含代码的示例教程有如下几个

View File

@ -1,6 +1,6 @@
# Istio简介
**注意Istio 1.10于2018年8月1日发布1.0关于Istio的更多信息请见Istio官方文档:<https://istio.io>,中文版:<https://istio.io/zh>**
**注意Istio 1.10于2018年8月1日发布1.0关于Istio的更多信息请见Istio官方文档:<https://istio.io>,中文版:<https://istio.io/zh>,本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
[Istio](https://istio.io)是由Google、IBM和Lyft开源的微服务管理、保护和监控框架。Istio为希腊语意思是”起航“。
@ -41,11 +41,7 @@ Amalgam8是一款基于内容和版本的路由布局用于集成多语言异
下面是Istio的架构图。
![Istio架构图](../images/istio-arch-v0.1.jpg)
下图是Istio中控制平面与数据平面的交互流程图。
![Istio的控制平面和数据平面](../images/istio-arch.jpg)
![Istio架构图](../images/istio-arch.jpg)
Istio架构分为控制平面和数据平面。

View File

@ -1,5 +1,7 @@
## 采纳和演进
**注意:本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
没有人会一下子采纳Service Mesh架构的所有组件或者一次性将所有的应用都改造成Service Mesh的都是渐渐式采纳从非核心系统开始改造。采纳Service Mesh就两种路径
- 全盘采纳通常对于新应用来说才会这样做也叫做Greenfiled项目

View File

@ -1,5 +1,7 @@
# 总结
**注意:本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
最后是对全书的总结2018年必然是一场服务网格或者说Proxy的战争。
### 用还是不用

View File

@ -1,5 +1,7 @@
# 定制和集成
**注意:本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
例如Istio这样的Service Mesh中有很多地方可以给大家定制例如作为数据平面的sidecar虽然默认使用的是Envoy但是你可以开发自己的sidecar代理还有Mixer中的各种adpater你也可以开发自己的adapter来扩展遥测和鉴权功能[Consul Connect](http://www.servicemesher.com/blog/consul-1-2-service-mesh/)就是个例子。
当前可选择的开源的代理可以在[landscape](http://layer5.io/landscape/)里找到例如使用nginMesh替代Envoy作为数据平面。下图是使用nginMesh作为sidecar的架构图。

View File

@ -1,5 +1,7 @@
# Service Mesh基础
**注意:本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
> 本文是对[The Enterprise Path to Service Mesh Architecutures](https://www.nginx.com/resources/library/the-enterprise-path-to-service-mesh-architectures/)一书的解读。
微服务将原先的单体架构中的应用内通信转变为基于RPC的远程通信虽然这样提高了研发效率提高了开发语言选择的多样性但是随着单体应用的解体原先的巨石散落为石块变得四处都是如何管理这些微服务就成了难题。当微服务的个数少的时候还可以通过人工配置的方式去管理但随着业务规模的增大微服务的数量也可能呈指数级增长如何协调管理成百上千的服务这就需要有一套设计良好的框架。

View File

@ -1,5 +1,7 @@
# Service Mesh 服务网格
**注意:本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
Service mesh 又译作 ”服务网格“作为服务间通信的基础设施层。Buoyant 公司的 CEO Willian Morgan 在他的这篇文章 [WHATS A SERVICE MESH? AND WHY DO I NEED ONE?](https://buoyant.io/2017/04/25/whats-a-service-mesh-and-why-do-i-need-one/) 中解释了什么是 Service Mesh为什么云原生应用需要 Service Mesh。
> A service mesh is a dedicated infrastructure layer for handling service-to-service communication. Its responsible for the reliable delivery of requests through the complex topology of services that comprise a modern, cloud native application. In practice, the service mesh is typically implemented as an array of lightweight network proxies that are deployed alongside application code, without the application needing to be aware.

View File

@ -1,5 +1,7 @@
# Istio 中 sidecar 的注入及示例
**注意:本文档已失效,请浏览 [Istio 官方文档](https://istio.io/zh)。本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
我们知道 Istio 通过向 Pod 中注入一个 sidecar 容器来将 Pod 纳入到 Istio service mesh 中的,那么这些 sidecar 容器的注入遵循什么样的规范,需要给每个 Pod 增加哪些配置信息才能纳入 Istio service mesh 中呢?这篇文章将给您答案。
## Pod Spec 中需满足的条件

View File

@ -1,5 +1,7 @@
## SOFAMesh
**注意:本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
SOFAMesh由蚂蚁金服开源在兼容Istio整体架构和协议的基础上做出部分调整
![SOFAMesh architecture](https://ws4.sinaimg.cn/large/0069RVTdgy1fu08m7p22kj31kw1biq98.jpg)

View File

@ -1,5 +1,7 @@
# 使用 SOFAMosn 构建 SOFAMesh
**注意:本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
本文介绍的内容将包括 :
- [SOFAMosn](https://github.com/alipay/sofa-mosn) 与 [SOFAMesh](https://github.com/alipay/sofa-mesh) 的关系

View File

@ -1,5 +1,7 @@
# SOFAMosn
**注意:本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
GitHub地址https://github.com/alipay/sofa-mosn
MOSN 是一款采用 Golang 开发的 Service Mesh 数据平面代理,功能和定位类似 Envoy旨在提供分布式模块化可观察智能化的代理能力。MOSN 支持 Envoy 和 Istio 的 API可以和 Istio 集成。Sofa Mesh 中,我们使用 MOSN 替代 Envoy。

View File

@ -1,5 +1,7 @@
# 企业级服务网格架构之路
**注意:本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
本节是根据由Nginx赞助OReilly出版社出品的关于服务网格的书籍总结而来本书标题是 _The Enterprise Path to Service Mesh_ ,还有个副标题 _Decoupling at Layer 5_ 第一版发行于2018年8月8日。这本书一共61页本文是我对该书的一些解读读者可以在[Nginx的网站](https://www.nginx.com/resources/library/the-enterprise-path-to-service-mesh-architectures/)上免费下载阅读完整内容。
追本溯源Service Mesh实际上是一种SDN等同于OSI模型中的会话层。 每一次技术变革必然要导致生产力和生产关系的变革我们看到这种趋势正在加速。本书中给出了企业上Service Mesh的路径可供广大技术和管理人员参考。

View File

@ -1,5 +1,7 @@
## 深入理解 Istio中的Sidecar注入与流量劫持
**注意:本文档已失效,请浏览 [Istio 官方文档](https://istio.io/zh)。本书中的 Service Mesh 章节已不再维护,请转到 [istio-handbook](https://jimmysong.io/istio-handbook) 中浏览。**
在讲解 Istio 如何将 Envoy 代理注入到应用程序 Pod 中之前,我们需要先了解以下几个概念:
- Sidecar 模式容器应用模式之一Service Mesh 架构的一种实现方式。