配置高可用性應用程式

您可以將您的 IBM Cloud® Code Engine 應用程式部署至多個區域,使其能夠抵禦區域性故障。 請注意,此範例使用了一個名為 IBM Cloud Internet Services,但您亦可選用其他服務供應商。 此範例也使用自訂網域。

必要條件

  • 您必須具有應用程式的自訂網域名稱,例如 example.com。 此網域名稱由 Code Engine 應用程式使用。
  • 設定 Cloud Internet Services (CIS)的實例。
  • 將網域名稱新增至 Cloud Internet Services (CIS)。 當您向 Cloud Internet Services (CIS)登錄網域名稱時,會將網域名稱的控制權委派給 Cloud Internet Services (CIS)。 請注意,此步驟可能需要一些時間才能完成。

在不同區域中建立專案

在三個不同地區中建立 Code Engine 專案。 您可以使用一般命名型樣及共用標籤。

例如,使用 CLI 或從主控台,在 au-sydeu-debr-sao 區域中建立稱為 global-app-project 的專案。

多個地區項目
名稱 狀態 標籤 位置 資源群組 已建立
global-app-project 備妥 global-app 悉尼 (au-syd) 預設
global-app-project 備妥 global-app 法蘭克福 (eu-de) 預設 2 分鐘
global-app-project 備妥 global-app 聖保羅(br-sao 預設 3 分鐘

如需相關資訊,請參閱 管理專案

在多個地區中部署應用程式

既然您的專案已建立在多個區域中,請在每一個專案中部署您的應用程式。

例如,部署 codeengine/helloworld 應用程式。

  1. Code Engine 專案 頁面中,按一下您建立的其中一個專案的名稱。

  2. 按一下 應用程式,然後按一下 建立 以建立新的應用程式。

  3. 使用下列設定來配置應用程式。

    1. 請將您的應用程式命名為「global-app」。
    2. 選取「使用現有容器映像檔」,以引用您應用程式的容器映像檔。
    3. 輸入 icr.io/codeengine/helloworld 作為映像檔參照。
    4. 資源及調整大小 區段中,將實例數下限設為 1。 透過將實例數下限設為 1,您可以從 CIS 實例啟用性能檢查,以監視儲存區的可用性,以便將資料流量遞送至性能良好的儲存區。
    5. 將其餘選項保留為預設值,然後按一下 建立
  4. 重複這些步驟,以在每一個專案中建立應用程式。

如需部署應用程式的相關資訊,請參閱 部署應用程式

產生自訂網域的憑證

在企業環境中,請與您的公司網域管理者合作,以取得必要的憑證。 不過,如果自訂網域在您的控制範圍內,且您想要快速建立未自我認證的憑證,則可以選擇性地使用 Let 's Encrypt 服務及 Certbot 來取得憑證。

  1. 安裝 Certbot。 Certbot 是 自動憑證管理環境(ACME) 通訊協定的用戶端,用於自動化 CA 與伺服器之間的互動。 Let 's Encrypt 服務會使用此用戶端來驗證網域所有權並發出憑證。 從 Certbot 指示頁面中,選取 Other 作為軟體,並選取工作站的作業系統,以取得安裝 Certbot 指令行的適用資訊。

  2. 執行以下指令以建立您的憑證。 此範例指令會建立 example.comwww.example.com 自訂網域的憑證。 請務必更新您自己的自訂網域的指令。

    certbot certonly --manual --preferred-challenges dns --email webmaster@example.com --server https://acme-v02.api.letsencrypt.org/directory --agree-tos --domain example.com --domain www.example.com
    
  3. 若要驗證您是否擁有網域,請使用 Certbot 工具輸出隨附的值 (例如 _acme_challenge.example.com_acme_challenge.ww.example.com),為您在前一個步驟中所要求的網域設定網域登記員的 TXT 記錄。 設定 TXT 記錄之後,請繼續使用 Certbot 指令。

  4. Certbot 會擷取 Let 's Encrypt 所簽署的憑證。 儲存憑證的位置由 Certbot 輸出提供。 尋找 fullchain.pemprivkey.pem 檔案。

建立一個 TLS 密鑰

請在 Code Engine 建立一個「TLS」機密,用以儲存您的憑證。

  1. Code Engine 專案 頁面中,按一下您建立的其中一個專案的名稱。
  2. 選取 密鑰及配置對映
  3. 按一下建立
  4. 點擊 TLS secret
  5. 請輸入「global-tls」作為名稱。
  6. fullchain.pem 檔案的內容複製到 憑證鏈 欄位。
  7. privkey.pem 檔案的內容複製到 私密金鑰 欄位。
  8. 按一下建立
  9. 請重複這些步驟,在您先前建立的每個專案中建立一個「TLS」祕密。

如需相關資訊,請參閱 使用密鑰

配置自訂網域對映

部署應用程式之後,請為它們配置自訂網域對映。

  1. Code Engine 專案 頁面中,按一下您建立的其中一個專案的名稱。
  2. 選取「應用程式」。
  3. 請選擇您的「global-app」應用程式。
  4. 選取 網域對映
  5. 選取 公用 以取得可見性。
  6. 按一下 建立 以建立自訂網域對映。
  7. 點擊 「選取」 以選擇現有的「TLS」密鑰,並選取「global-tls」。
  8. 輸入完整網域名稱; 例如 www.example.com
  9. 記下 CNAME 目標值。 您需要此值,才能在 CIS中設定網域的遞送。
  10. 驗證應用程式名稱是 global-app
  11. 按一下建立
  12. 重複這些步驟,為您建立的每一個應用程式建立自訂網域對映。

配置性能檢查

當您建立應用程式時,請將 實例數下限 設為 1。 因為在每一個地區中一律有執行中的應用程式實例,您可以從 CIS 實例設定性能檢查,以監視儲存區的可用性。 透過設定性能檢查,資料流量一律會遞送至執行中實例,讓您的應用程式具有高可用性。

  1. 從 CIS 實例中,導覽至 可靠性> 廣域負載平衡器> 性能檢查
  2. 按一下建立
  3. 將性能檢查命名為與應用程式名稱相同: global-app
  4. 監視器類型 設為 HTTPS,並將 設為 443
  5. 其餘選項請接受預設值。 請注意,如果您使用 codeengine/helloworld 應用程式以外的應用程式,請調整應用程式所需的任何選項。
  6. 按一下建立

如需相關資訊,請參閱 設定性能檢查

配置 Cloud Internet Services (CIS) 負載平衡器

在自訂網域對映處於 Ready 狀態之後,請為應用程式廣域端點配置 Cloud Internet Services (CIS) 負載平衡器。 如需相關資訊,請參閱 配置廣域負載平衡器

  1. 請前往 Cloud Internet Services (CIS) 控制台中的「可靠性」頁面。

  2. 選取 原始儲存區,然後按一下 建立

    1. 將儲存區命名為 global-app-au-syd
    2. 原始位址 設為網域名稱對映的 CNAME 目標。
    3. 將 Host 標頭設為您的網域名稱。
    4. 性能檢查中,選取 現有性能檢查,然後選取 global-app
    5. 按一下儲存
    6. 針對包含已部署應用程式的每一個地區,重複這些步驟。 變更名稱以反映您設為目標的地區。 例如,global-app-de-euglobal-app-br-sao
  3. 選取 負載平衡器,然後按一下 建立

    1. 為負載平衡器命名。 請注意,此名稱會出現在您的自訂網域 URL 中。 例如,如果您的自訂網域是 global-app.example.com,而您將負載平衡器命名為 global-app,您的 URL 就是 global-app.example.com
    2. 資料流量引導 設為 Geo
    3. 新增 地理 路徑。 您可以選擇為所有 CIS 地區或僅部分地區建立路徑。
      • 如果您為所有 CIS 地區建立路徑,則在您建立的每一個路徑中,新增您先前建立的所有原始儲存區。 對它們進行排序,以便包含執行中應用程式且最接近您正在配置之地區路徑的地區。 例如,如果您在 au-sydeu-debr-sao 中建立應用程式,則對於 Oceana,請先放置 au-syd。 若為東歐和西歐,請先放置 de-eu。 而對於北美洲和南美洲,請將 br-sao 放在第一位。
      • 如果僅為部分 CIS 地區建立路徑,請為 預設 地區新增路徑。 當指定的區域無法使用時,此路徑是要使用的撤回。
    4. 按一下 建立 以建立負載平衡器。

驗證您的應用程式是否可用

開啟瀏覽器,並輸入負載平衡器名稱加上自訂網域名稱; 例如 www.global-app.example.com

現在您的應用程式具有高可用性。

清除指導教學

  1. 從 CIS中刪除廣域負載平衡器和原始儲存區。
  2. 從 CIS中刪除 DNS 記錄。 如需相關資訊,請參閱 刪除 DNS 記錄
  3. 刪除您所建立的每一個專案。 當您刪除專案時,也會刪除該專案中包含的所有元件。 如需相關資訊,請參閱 刪除專案

請注意,您的自訂網域不會刪除,但不再與您所建立的應用程式相關聯。