Skip to main content
Version: 2.8.1

列表

在上游服務列表頁面,可以清楚看到所有的服務名稱標籤建立時間以及建立者的資訊,並且可以新增上游服務以及對既有上游服務做編輯刪除的動作。如果對某項上游服務想知道更詳細的資訊,可以點擊上游服務名稱,即可得到更詳細的訊息以及健康狀態資訊。

新增上游服務#

  1. 從網站左邊 Menu 中點選 上游服務列表 頁面,進入上游服務列表的畫面。

  2. 點選右上角的 新增 後,填入相關資訊後送出。

上游服務列表

新增上游服務

note

新增上游服務時只會有名稱標籤欄位。其它詳細設定請按「編輯」進入更新頁面設定。

欄位配置說明#

變數類型預設值說明必填
namestring上游服務名稱。V
algorithmstringround-robin負載平衡使用的演算法。
此欄位接受輸入的值為以下其一: consistent-hashingleast-connectionsround-robin
hash_onstringnone用來當作雜湊輸入。選擇 none 的結果為無使用雜湊之 weighted-round-robin 結構。
此欄位接受輸入的值為以下其一:noneconsumeripheadercookie
hash_fallbackstringnone如主要 hash_on 沒有返回雜湊,則用來當作雜湊輸入的類型。如果 hash_on 設為 cookie 則無法使用此欄位。
此欄位接受輸入的值為以下其一:noneconsumeripheadercookie
hash_on_headerstring用來當作雜湊輸入的標頭。只有當 hash_on 設定為 header 時可使用此欄位。
hash_fallback_headerstring用來當作雜湊輸入的標頭。只有當 hash_fallback 設定為 header 時可使用此欄位。
hash_on_cookiestring用來當作雜湊輸入的 cookie。只有當 hash_on 或是 hash_fallback 設定為 cookie 時可使用此欄位。如果指定的 cookie 沒有出現在請求中,會自動產生一個值並且將其帶入回應的 cookie 中。
hash_on_cookie_pathstring/設定在回應標頭中的 cookie 路徑。只有當 hash_on 或是 hash_fallback 設定為 cookie 時可使用此欄位。
填入的路徑起始值必須為 /,例如 /api/v1
slotsnumber10000負載平衡運算時的槽數量。
此欄位接受輸入的值區間為 10 至 65536。
healthchecks.active.https_verify_certificatebooleantrue決定當使用 HTTPS 運行主動健康檢查時是否檢查遠端主機之 SSL 憑證。V
healthchecks.active.unhealthy.http_statusesarray of number[429, 404, 500, 501, 502, 503, 504, 505]會被作為檢查結果失敗或被判定狀態為不健康的回應狀態碼。
此欄位接受輸入的值區間為 100 至 999。
healthchecks.active.unhealthy.tcp_failuresnumber0TCP 失敗到達會被認定狀態不健康的次數。
此欄位接受輸入的值區間為 0 至 255。
healthchecks.active.unhealthy.timeoutsnumber0連線逾時到達會被認定狀態不健康的次數。
此欄位接受輸入的值區間為 0 至 255。
healthchecks.active.unhealthy.http_failuresnumber0HTTP失敗到達會被認定狀態不健康的次數。(根據 healthchecks.active.unhealthy.http_statuses 設定的狀態做判定)
此欄位接受輸入的值區間為 0 至 255。
healthchecks.active.unhealthy.intervalnumber0對不健康目標做自動健康檢查的時間區間(單位為秒)。如設定為 0 則代表不會對不健康目標執行健康檢查之動作。
此欄位接受輸入的值區間為 0 至 65535。
healthchecks.active.http_pathstring/做自動健康檢查時之請求的路徑。
填入的路徑起始值必須為 /,例如 /api/v1
healthchecks.active.timeoutnumber1自動健康檢查之 socket 連線逾時時間。
此欄位接受輸入的值區間為 0 至 65535。
healthchecks.active.healthy.http_statusesarray of number[200, 302]會被作為檢查結果成功或被判定狀態為健康的回應狀態碼。
此欄位接受輸入的值區間為 100 至 999。
healthchecks.active.healthy.intervalnumber0對健康目標做自動健康檢查的時間區間(單位為秒)。如設定為0則代表不會對健康目標執行健康檢查之動作。
此欄位接受輸入的值區間為 0 至 65535。
healthchecks.active.healthy.successesnumber0HTTP 成功到達會被認定狀態健康的次數。(根據 healthchecks.active.healthy.http_statuses 設定的狀態做判定)
此欄位接受輸入的值區間為 0 至 255。
healthchecks.active.https_snistring使用 HTTPS 執行自動健康檢查時用作 SNI(服務器名稱標識)的主機名。當使用 IP 配置目標時,此功能特別有用,以便可以使用正確的 SNI 驗證目標主機的證書。
healthchecks.active.concurrencynumber10同時做健康檢查之目標數量。
此欄位接受輸入的值區間為 1 至 2147483648。
healthchecks.active.typestringhttp做健康檢查時使用之協定。
此欄位接受輸入的值為以下其一: tcphttphttpsgrpc 以及 grpcs
healthchecks.passive.unhealthy.http_failuresnumber0HTTP失敗到達會被認定狀態不健康的次數。(根據 healthchecks.passive.unhealthy.http_statuses 設定的狀態做判定)
此欄位接受輸入的值區間為 0 至 255。
healthchecks.passive.unhealthy.http_statusesarray of number[429, 500, 503]會被作為檢查結果失敗或被判定狀態為不健康的回應狀態碼。
此欄位接受輸入的值區間為 100 至 999。
healthchecks.passive.unhealthy.tcp_failuresnumber0TCP失敗到達會被認定狀態不健康的次數。
此欄位接受輸入的值區間為 0 至 255。
healthchecks.passive.unhealthy.timeoutsnumber0連線逾時到達會被認定狀態不健康的次數。
此欄位接受輸入的值區間為 0 至 255。
healthchecks.passive.typestringhttp做健康檢查時使用之協定。在被動檢查中, httphttps 被認為是相等的。此欄位接受輸入的值為以下其一: tcphttphttpsgrpc 以及 grpcs
healthchecks.passive.healthy.successesnumber0HTTP成功到達會被認定狀態健康的次數。(根據 healthchecks.passive.healthy.http_statuses 設定的狀態做判定)
此欄位接受輸入的值區間為 0 至 255。
healthchecks.passive.healthy.http_statusesarray of number[200, 201, 202, 203, 204, 205, 206, 207, 208, 226, 300, 301, 302, 303, 304, 305, 306, 307, 308]會被作為檢查結果成功或被判定狀態為健康的回應狀態碼。
此欄位接受輸入的值區間為 100 至 999。
healthchecks.thresholdnumber0健康目標占整體上游服務被判定為健康狀態的最小百分比。
此欄位接受輸入的值區間為 0 至 100。
tagsarray of string可填入任意字串來做分類使用。
host_headerstring會在代理請求帶入標頭 Host 的值。
client_certificatestring當對上游服務做 TLS handshaking 時可做為用戶端憑證做認證使用。必須填入憑證的ID。

預覽頁面#

點擊上游服務名稱後即會跳出預覽視窗。可以看到上游服務詳細資訊和其擁有的目標資訊,較為特殊的是有此上游服務之健康狀態顯示在資訊頁面的左上方。

預覽頁面

info

上游服務的健康檢查設定是根據 healthchecks.thredshold 以及目標中 weight(capacity) 的百分比設定決定上游服務是否健康。

舉例來說:

  • 現在擁有一個上游服務設定 healthchecks.threshold=55 (%)。
  • 此上游服務擁有 5 個目標,每個目標設定 weight=100,所以此上游服務的總 weight 為 500。

當其中有一個目標發生問題時,代表 100/500 weight,也就是 20% 的 capacity 是不健康的,80% 是健康的,高於設定的 threshold 55%,因此其餘健康的目標會接收不健康的目標流量。所以對於這個上游服務本身來說,狀態為健康。

當有 2 個目標發生問題,代表 200/500 weight,也就是 40% 不健康,剩 60% 健康,但仍高於設定的 threshold 55%,所以對於這個 上游服務本身來說,狀態依然是健康。

但如果其中 3 個目標都發生問題時,代表只有 2 個目標健康,這時,健康的目標比例只佔 40%,已經低於設定的 threshold 55%,因此這個上游服務會被自動標記成不健康的狀態。

當上游服務被標記成不健康狀態時,任何要求的回覆都會是 503 Service Unavailable 的錯誤,而這時 目標/服務 會開始修復這一連串的失敗狀態。當目標復原其失敗狀態並且將錯誤率降低至 threshold 以下,上游服務的健康狀態也將會更新為健康。

編輯及刪除#

如想對某個特定上游服務做編輯或刪除可按右邊的動作按鈕。

編輯與刪除

按下刪除鍵後會出現確認對話視窗,選擇刪除即可刪除。

刪除

選擇列表左方的框,再選擇右上角的垃圾筒,可以一次多筆刪除。

多筆刪除

note

多筆刪除會直接動作,不會有確認對話框出現。