Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
101 lines (65 sloc) 3.9 KB

本地运行

本地运行

本指南将引导您完成在本地下载和运行 linkerd 所需的步骤。

为了在本地运行 linkerd,必须安装有 Java 8。您可以运行以下步骤检查您的Java版本:

$ java -version
java version "1.8.0_66"

linkerd 与 Oracle 和 OpenJDK 兼容。 如果您需要安装 Java 8,您可以下载任何一个。

下载安装

首先,下载最新的 linkerd 二进制发行包。

下载发行包后,解压缩:

$ tar -xzf linkerd-1.1.3.tgz
$ cd linkerd-1.1.3

发行包将包含这些文件:

  • config/inkerd.yaml - 定义路由,服务器,协议和端口的配置文件
  • disco/- 基于文件的服务发现配置
  • docs/- 文档
  • linkerd-1.1.3-exec - linkerd可执行文件
  • logs/ - 写入 linkerd 日志的默认位置

运行

解压缩发行包后,可以使用 linkerd-1.1.3-exec 启动和停止 linkerd。

要启动 linkerd,请运行:

$ ./linkerd-1.1.3-exec config/linkerd.yaml

确认在工作

您可以通过发送一些 HTTP 流量来验证 linkerd 可以工作。开箱即用,linkerd 配置为侦听端口 4140,并将任何Host header 设置为 “web” 的 HTTP 调用路由到端口 9999 上监听的服务。

您可以通过在端口 9999 上运行简单的服务进行测试:

$ echo 'It works!' > index.html
$ python -m SimpleHTTPServer 9999

这将是我们的目标服务器,并将响应任何 HTTP 请求以友好的响应。我们可以通过连接到 linkerd 并指定相应的 host header 来将流量发送到此目的地:

$ curl -H "Host: web" http://localhost:4140/
It works!

因为我们已经要求 linkerd 代理“web” host,所以我们的请求被路由到端口 9999 上的服务器,响应被代理给客户机。跑起来啦!

请注意,如果您不提供与其中一个可路由服务的名称相匹配的Host header,则 linkerd 将请求失败:

$ curl -I -H "Host: foo" http://localhost:4140/
HTTP/1.1 502 Bad Gateway

当然,命名服务比这好多了! 在下一节中,我们将看到在哪里指定上面使用的服务信息。

基于文件的服务发现

在 linkerd 附带的配置下,需要解析服务端点的第一个查找的位置是 disco/ 目录。 (有关这个简单的 基于文件的服务发现 系统如何工作的更多信息,请参阅配置指南。)通过此配置,linkerd 将查找与目标的具体名称对应的名称的文件,并且预期这些文件包含以换行符分隔的地址列表,以 host port 的形式。

默认配置如下所示:

$ head disco/*
==> disco/thrift-buffered <==
127.0.0.1 9997

==> disco/thrift-framed <==
127.0.0.1 9998

==> disco/web <==
127.0.0.1 9999

正如你所看到的,有一个名为“web”的目的地由单一地址 127.0.0.1 9999 支持,以及由127.0.0.1 9998 支持的 thrift framed 目的地,以及由127.0.0.1 9997 支持的 thrift buffered 目的地。请注意,与所有服务发现端点一样,linkerd 会监视此目录的更改,因此随时可以随时添加,删除和编辑文件,无需重新启动。

linkerd 附带的路由配置非常简单,并直接路由到此目录中指定的具体名称。换句话说,如上所述,向 linkerd 要求“web”服务将导致它连接到 disco/web 文件中的一个端点。

此路由配置对于演示基本功能很有帮助,但是 linkerd 具有更多功能,包括多个服务发现端点,每请求路由规则,调试代理注入,服务故障切换等。有关 linkerd 路由功能 的详细信息,请参阅路由页面。

You can’t perform that action at this time.