本地运行
本指南将引导您完成本地下载和运行Linkerd所需的步骤。
为了在本地运行Linkerd,您必须安装Java 8。您可以运行以下命令来检查您的Java版本:
$ java -version
java version "1.8.0_66"
Linkerd可与Oracle和OpenJDK兼容。如果您需要安装Java 8,则可以下载其中一个。
下载和安装
首先,下载最新的Linkerd二进制版本。
一旦你下载了发行版,解压缩它:
$ tar -xzf linkerd-1.3.6.tgz
$ cd linkerd-1.3.6
该版本将包含这些文件:
- config/linkerd.yaml – 定义路由器,服务器,协议和端口的配置文件
- disco/ – 基于文件的服务发现配置
- docs/ – 文件
- linkerd-1.3.6-exec – Linkerd可执行文件
- logs/ – 写入Linkerd日志的默认位置
运行
一旦你提取了发行版,你可以通过使用linkerd-1.3.6-exec
来启动和停止Linkerd。
要启动Linkerd,请运行:
$ ./linkerd-1.3.6-exec config/linkerd.yaml
确保它在工作
您可以通过发送一些HTTP流量来验证Linkerd的工作原理。开箱即用,Linkerd被配置为监听端口4140,并且将任何Host
头的设置为“web”的HTTP调用路由到监听端口9999的服务。
您可以通过在端口9999上运行一个简单的服务来测试:
$ echo 'It works!' > index.html
$ python -m SimpleHTTPServer 9999
这将是我们的目标服务器,并将以友好的响应来响应任何HTTP请求。我们可以通过连接到Linkerd并指定适当的主机头来将流量发送到此目标:
$ curl -H "Host: web" http://localhost:4140/
It works!
由于我们要求Linkerd代理“web”主机,因此我们的请求将通过端口9999路由到服务器,并将响应代理到客户端。这有用!
请注意,如果您没有提供与其中一个可路由服务的名称匹配的主机头,则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框架目标和一个由127.0.0.1 9997支持的thrift缓冲目标 。请注意,就像它与所有服务发现端点一样,Linkerd会监视此目录以进行更改,因此可以随时添加,删除和编辑文件 – 无需重新启动。
Linkerd附带的路由配置非常简单,并直接路由到此目录中指定的具体名称。换句话说,向Linkerd询问“web”服务,就像我们上面所做的那样,将导致它连接到disco/web文件中的一个端点。
此路由配置适用于演示基本功能,但Linkerd具有更多功能,包括多个服务发现端点,每个请求路由规则,调试代理注入,服务故障转移等。有关Linkerd路由功能的详细信息,请参阅路由页面。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/93962.html