安裝 Edge SSO 以提供高可用性

Edge for Private Cloud 4.17.09 版

在以下兩種情況下,您需要安裝多個 Edge SSO 執行個體,以確保高可用性:

  • 在單一資料中心環境中,安裝兩個 Edge SSO 執行個體,建立高可用性環境,也就是說,如果其中一個 Edge SSO 模組故障,系統仍可繼續運作。
  • 在具有兩個資料中心的環境中,請在兩個資料中心都安裝 Edge SSO,這樣一來,即使其中一個 Edge SSO 模組故障,系統仍可繼續運作。

在同一個資料中心安裝兩個 Edge SSO 模組

您在單一資料中心的不同節點上部署兩個 Edge SSO 執行個體,以支援高可用性。此時:

  • Edge SSO 的兩個執行個體都必須連線至同一個 Postgres 伺服器。Apigee 建議您為 Edge SSO 使用專屬的 Postgres 伺服器,不要使用與 Edge 一起安裝的 Postgres 伺服器。
  • 您需要在兩個 Edge SSO 執行個體前方設置負載平衡器:
    • 負載平衡器必須支援應用程式產生的 Cookie 黏性,且工作階段 Cookie 必須命名為 JSESSIONID。
    • 設定負載平衡器,對 Edge SSO 執行 TCP 或 HTTP 健康狀態檢查。如果是 TCP,請使用 Edge SSO 的網址:

      http_or_https://edge_sso_IP_DNS:9099

      指定 Edge SSO 設定的通訊埠。預設為通訊埠 9099。

      如果是 HTTP,請加入 /healthz:

      http_or_https://edge_sso_IP_DNS:9099/healthz
    • 部分負載平衡器設定取決於您是否在 Edge SSO 上啟用 HTTPS。詳情請參閱以下各節。

使用 HTTP 存取 Edge SSO

如果您使用 HTTP 存取 Edge SSO,請將負載平衡器設定為:

  • 使用 HTTP 模式連線至 Edge SSO
  • 監聽與 Edge SSO 相同的通訊埠

    根據預設,Edge SSO 會監聽通訊埠 9099 上的 HTTP 要求。您也可以使用 SSO_TOMCAT_PORT 設定 Edge SSO 通訊埠。如果您使用 SSO_TOMCAT_PORT 變更 Edge SSO 通訊埠,請確認負載平衡器會監聽該通訊埠。

舉例來說,在每個 Edge SSO 執行個體上,您可以在設定檔中加入下列內容,將通訊埠設為 9033:

SSO_TOMCAT_PORT=9033

接著,您將負載平衡器設定為監聽通訊埠 9033,並將要求轉送至通訊埠 9033 上的 Edge SSO 執行個體。在這個情境中,Edge SSO 的公開網址為:

http://LB_DNS_NAME:9033

使用 HTTPS 存取 Edge SSO

您可以將 Edge SSO 執行個體設為使用 HTTPS。在這種情況下,請按照「設定 apigee-sso 進行 HTTPS 存取」中的步驟操作。在啟用 HTTPS 的過程中,您必須在 Edge SSO 設定檔中設定 SSO_TOMCAT_PROFILE,如下所示:

SSO_TOMCAT_PROFILE=SSL_TERMINATION 

您也可以視需要設定 Edge SSO 用於 HTTPS 存取的通訊埠:

SSO_TOMCAT_PORT=9443

如果您使用 HTTPS 存取 Edge SSO,請將負載平衡器設定為:

  • 使用 TCP 模式 (而非 HTTP 模式) 連線至 Edge SSO
  • 監聽與 Edge SSO 相同的通訊埠,如 SSO_TOMCAT_PORT 所定義

接著,您需要設定負載平衡器,將要求轉送至通訊埠 9433 上的 Edge SSO 執行個體。在這個情境中,Edge SSO 的公開網址為:

https://LB_DNS_NAME:9443

在多個資料中心安裝 Edge SSO

在多個資料中心環境中,您會在每個資料中心安裝 Edge SSO 執行個體。接著,一個 Edge SSO 執行個體會處理所有流量。如果該 Edge SSO 執行個體停止運作,您可以切換至第二個 Edge SSO 執行個體。

在兩個資料中心安裝 Edge SSO 之前,您需要:

  • 主要 Postgres 伺服器的 IP 位址或網域名稱。

    在多個資料中心環境中,您通常會在每個資料中心安裝一個 Postgres 伺服器,並將其設定為主要/待命複寫模式。在本例中,資料中心 1 包含主要 Postgres 伺服器,資料中心 2 則包含待命伺服器。詳情請參閱「設定 Postgres 的主執行個體與待命執行個體複製功能」。
  • 指向一個 Edge SSO 執行個體的單一 DNS 項目。舉例來說,您可以使用下列格式建立 DNS 項目,指向資料中心 1 中的 Edge SSO 執行個體:

    my-sso.domain.com => apigee-sso-dc1-ip-or-lb

在每個資料中心安裝 Edge SSO 時,請將兩者都設為使用資料中心 1 的 Postgres 主節點:

## Postgres configuration.
PG_HOST=IP_or_DNS_of_PG_Master_in_DC1
 PG_PORT=5432

您也將兩者設為使用 DNS 項目做為公開存取網址:

# Externally accessible URL of Edge SSO.
SSO_PUBLIC_URL_HOSTNAME=my-sso.domain.com
# Default port is 9099.
SSO_PUBLIC_URL_PORT=9099

如果資料中心 1 的 Edge SSO 停止運作,您可以切換至資料中心 2 的 Edge SSO 執行個體:

  • 按照「處理 PostgreSQL 資料庫容錯移轉」一文所述,將資料中心 2 的 Postgres 備用伺服器轉換為主伺服器。
  • 更新 DNS 記錄,將 my-sso.domain.com 指向資料中心 2 的 Edge SSO 執行個體:
    my-sso.domain.com => apigee-sso-dc2-ip-or-lb
  • 更新資料中心 2 的 Edge SSO 設定檔,指向資料中心 2 的新 Postgres 主伺服器:
    ## Postgres configuration.
    PG_HOST=IP_or_DNS_of_PG_Master_in_DC2
  • 在資料中心 2 重新啟動 Edge SSO,更新設定:
    /opt/apigee/apigee-service/bin/apigee-service apigee-sso restart