Webhooks初體驗

Rancher 1.4已於上週全面發佈!新版本帶來了Dashboard和Helm的集成,更細緻的網絡策略控制,直接構建進平臺中的保密管理,固然還有今天要重點介紹的主角,Webhooksweb

Rancher 1.4版本爲webhooks添加了一個新特性,賦予其一個可以處理彈性伸縮的初始驅動程序。實現webhooks的一個關鍵概念就是「Receiver(接收器)」,它可讓你註冊一個webhook,而且提供給你一個觸發Rancher內部action的url。 docker

咱們爲webhooks實現了微服務,叫作webhook-service。我將利用咱們目前的驅動程序—scaleService來解釋該功能。scaleService driver容許用戶建立一個receiver hook,用於對服務進行縱向擴容或縮容。一個典型的用例就是與監控系統集成,觀測負載均衡器流量,當響應時間或每秒的請求數達到某個閾值時,調用這個receiver hook。下面我將詳細介紹在Rancher中建立receiver hook的步驟。網絡

新增一個Receiver Hook

在UI中導航到API -> webhooks。你爲所選環境建立的全部receiver hook,都會在「Receiver Hooks」這一界面中被列出。負載均衡

圖片描述

點擊」Add Receiver」,您將看到要輸入的字段:微服務

圖片描述

在此頁上,要輸入的字段以下:url

  • Name:每個receiver hook都應該有一個獨特的名稱,以便它能夠很容易地被識別;spa

  • Kind:「Kind(種類)」的下拉列表中列出了全部在webhook-service中可以使用的驅動程序。從列表中選擇一個驅動程序(v1.4中只有「Scale a Service」這一個選項——更多基於社區貢獻和要求的驅動程序很快就會與你們見面的!);圖片

  • Action:此字段容許您指定指向此驅動程序的action(動做)。對於scaleService driver,惟一能夠指向的兩個行爲是「up」(增長容器的數量)和"down"(減小容器的數量)。部署

這以後的字段是scaleService driver特有的:get

  • Target Service:從這個下拉列表中選擇要擴/縮容的服務(以下所示);

圖片描述

  • By:此字段要求用戶輸入所選服務的擴/縮容比例;

  • Minimum Scale 和Maximum Scale:您的服務能夠容許的容器的最小和最大數量。使用webhooks在超出範圍內對服務進行伸縮是不容許的。
    全部字段都輸入後,點擊「建立」:

圖片描述

建立的receiver hook會顯示在webhooks頁面上。「Trigger URL」用於實際的縱向擴容或縮容操做。在這個字段旁邊,還有刪除和複製receiver hook的選項:

圖片描述

使用Receiver Hook

「Trigger URL」會爲驅動程序執行操做。要使用trigger URL,你須要對特定的URL發送POST請求。沒有身份認證或實物須要經過POST請求發送到URL。這個URL由一個API終點和一個標記組成。該標記包含所建立的receiver hook的全部信息,如選定的驅動程序、服務、行爲(縱向擴/縮容),以及該服務的伸縮比例。API終點使用這個標記生成Cattle API調用,並完成所建立的receiver hook指定的行爲。

使用webhook service自動伸縮

來自webhook service的scaleService driver,能夠基於容器的度量對服務進行自動伸縮。要想這樣作,webhook服務必須與一個外部監控服務一同使用。一旦你建立了一個服務,就要按照上面的步驟爲它添加一個webhook。而後複製trigger URL並在監控服務中使用:當特定的度量(如響應時間)越過指定的閾值時,向該trigger URL發送一個"POST"請求。監控服務如Prometheus有一個"webhook_configs"字段,用於指定須要發送的請求格式爲"POST"的URL。一旦你進行了上述的配置,webhook service將會對服務進行伸縮操做。

將來的驅動程序及其特性

咱們計劃在webhook服務中增長更多的驅動程序。在將來的版本中,咱們致力於增長可以縱向擴/縮容主機的驅動程序,而且在dockerhub webhooks的基礎上從新部署服務。咱們也樂於爲新的驅動程序作出貢獻。你能夠參考這些步驟添加新的驅動程序,也能夠發送建議到咱們的webhook服務庫。

相關文章
相關標籤/搜索