1. 程式人生 > >《Linkerd官方文件》在DC / OS中執行Linkerd

《Linkerd官方文件》在DC / OS中執行Linkerd

在DC / OS中執行

本指南將引導您獲得在DC / OS中執行的Linkerd,將請求路由到示例Web服務以及監視叢集。

部署webapp

我們將部署一個以“Hello world”為響應的示例應用程式。我們將使用linkerd-examples repo中的 webapp.json 配置檔案:

dcos marathon app add https://raw.githubusercontent.com/linkerd/linkerd-examples/master/dcos/webapp.json

部署Linkerd

使用以下命令安裝Linkerd DC / OS Universe軟體包,注意 instances

應該與DC / OS叢集中公共和私有節點的總數相匹配:

$ dcos package install --options=<(echo '{"linkerd":{"instances":4}}') linkerd

需要注意的是Linkerd啟動兩臺伺服器,4140埠上的outgoing,和4141埠上的incoming。您的應用程式向埠4140上的本地Linkerd發出傳出請求,埠4140將請求路由到在埠4141上的遠端節點上執行的獨立Linkerd程序。遠端節點上的Linkerd接受傳入請求並將其路由到本地應用程式例項。

確保它的工作

Linkerd DC / OS Universe包預先配置為將流量作為HTTP代理進行路由。預設情況下,它接受來自應用程式4140埠上的所有流量。幾乎所有的http工具和客戶端庫都支援這一點。curl

檢查一個http_proxy環境變數:

$ http_proxy=$PUBLIC_NODE:4140 curl -s http://webapp/hello
Hello world

最後,要訪問管理服務,請在9990埠上發出請求:

$ curl $PUBLIC_NODE:9990/admin/ping
pong

應用程式組

對於作為組的一部分部署的應用程式,請將組/應用程式名稱反轉到域中。例如,my-group/webapp變成webapp.my-group

$ http_proxy=$PUBLIC_NODE:4140 curl webapp.my-group/hello
Hello world

部署一個自定義的Linkerd

您也可以安裝您自己的Linkerd自定義版本,例如:

dcos marathon app add https://raw.githubusercontent.com/linkerd/linkerd-examples/master/dcos/linker-to-linker/linkerd-dcos.json

此自定義版本具有嵌入在其命令串編碼JSON的一個Linkerd配置檔案,一個更人類可讀的版本是在 linkerd-examples repo中作為 linkerd-config.yml

要修改Linkerd配置,請執行以下操作:

  1. 編輯 linkerd-config.yml
  2. 刪除所有換行符和轉義引號:
    cat linkerd-config.json |tr -d '\n '|sed 's/"/\\\\\\\"/g'
  3. 取代內部內容linkerd-dcos.jsoncmd與輸出欄位。

部署linkerd-viz

linkerd-viz是通過Linkerd進行應用程式路由的監控應用程式。作為DC / OS Universe軟體包部署:

dcos package install linkerd-viz

檢視儀表板:

open $(dcos config show core.dcos_url)/service/linkerd-viz

或者,安裝一個自定義版本:

dcos marathon app add https://raw.githubusercontent.com/linkerd/linkerd-viz/master/dcos/linkerd-viz.json
open $PUBLIC_NODE:3000

您現在擁有一個動態路由和受監視的DC / OS群集。

linker-to-linker與簡單代理配置

上述指南描述了在linker-to-linker模式下設定叢集,其中每個Linkerd執行一個incoming伺服器和一個outgoing伺服器。這是Linkerd DC / OS Universe軟體包中的預設配置,它提供了必要的拓撲結構來支援linkerd-viz。如果您對更簡單的http代理配置感興趣,請檢視 linkerd-examples repo中的 簡單代理示例。

進一步閱讀

有關配置Linkerd的更多資訊,請參閱 Linkerd配置頁面。