1. 程式人生 > >《Linkerd官方文件》在本地執行Linkerd

《Linkerd官方文件》在本地執行Linkerd

本地執行

本指南將引導您完成本地下載和執行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具有更多功能,包括多個服務發現端點,每個請求路由規則,除錯代理注入,服務故障轉移等。詳細資訊,請參閱路由頁面。