配置高可用性應用程式
您可以將您的 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-syd、eu-de 及 br-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 應用程式。
-
從 Code Engine 專案 頁面中,按一下您建立的其中一個專案的名稱。
-
按一下 應用程式,然後按一下 建立 以建立新的應用程式。
-
使用下列設定來配置應用程式。
- 請將您的應用程式命名為「
global-app」。 - 選取「使用現有容器映像檔」,以引用您應用程式的容器映像檔。
- 輸入
icr.io/codeengine/helloworld作為映像檔參照。 - 在 資源及調整大小 區段中,將實例數下限設為 1。 透過將實例數下限設為 1,您可以從 CIS 實例啟用性能檢查,以監視儲存區的可用性,以便將資料流量遞送至性能良好的儲存區。
- 將其餘選項保留為預設值,然後按一下 建立。
- 請將您的應用程式命名為「
-
重複這些步驟,以在每一個專案中建立應用程式。
如需部署應用程式的相關資訊,請參閱 部署應用程式。
產生自訂網域的憑證
在企業環境中,請與您的公司網域管理者合作,以取得必要的憑證。 不過,如果自訂網域在您的控制範圍內,且您想要快速建立未自我認證的憑證,則可以選擇性地使用 Let 's Encrypt 服務及 Certbot 來取得憑證。
-
安裝 Certbot。 Certbot 是 自動憑證管理環境(ACME) 通訊協定的用戶端,用於自動化 CA 與伺服器之間的互動。 Let 's Encrypt 服務會使用此用戶端來驗證網域所有權並發出憑證。 從 Certbot 指示頁面中,選取
Other作為軟體,並選取工作站的作業系統,以取得安裝 Certbot 指令行的適用資訊。 -
執行以下指令以建立您的憑證。 此範例指令會建立
example.com及www.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 -
若要驗證您是否擁有網域,請使用 Certbot 工具輸出隨附的值 (例如
_acme_challenge.example.com及_acme_challenge.ww.example.com),為您在前一個步驟中所要求的網域設定網域登記員的TXT記錄。 設定TXT記錄之後,請繼續使用 Certbot 指令。 -
Certbot 會擷取 Let 's Encrypt 所簽署的憑證。 儲存憑證的位置由 Certbot 輸出提供。 尋找
fullchain.pem和privkey.pem檔案。
建立一個 TLS 密鑰
請在 Code Engine 建立一個「TLS」機密,用以儲存您的憑證。
- 從 Code Engine 專案 頁面中,按一下您建立的其中一個專案的名稱。
- 選取 密鑰及配置對映。
- 按一下建立。
- 點擊 TLS secret。
- 請輸入「
global-tls」作為名稱。 - 將
fullchain.pem檔案的內容複製到 憑證鏈 欄位。 - 將
privkey.pem檔案的內容複製到 私密金鑰 欄位。 - 按一下建立。
- 請重複這些步驟,在您先前建立的每個專案中建立一個「TLS」祕密。
如需相關資訊,請參閱 使用密鑰。
配置自訂網域對映
部署應用程式之後,請為它們配置自訂網域對映。
- 從 Code Engine 專案 頁面中,按一下您建立的其中一個專案的名稱。
- 選取「應用程式」。
- 請選擇您的「
global-app」應用程式。 - 選取 網域對映。
- 選取 公用 以取得可見性。
- 按一下 建立 以建立自訂網域對映。
- 點擊 「選取」 以選擇現有的「TLS」密鑰,並選取「
global-tls」。 - 輸入完整網域名稱; 例如
www.example.com。 - 記下
CNAME目標值。 您需要此值,才能在 CIS中設定網域的遞送。 - 驗證應用程式名稱是
global-app。 - 按一下建立。
- 重複這些步驟,為您建立的每一個應用程式建立自訂網域對映。
配置性能檢查
當您建立應用程式時,請將 實例數下限 設為 1。 因為在每一個地區中一律有執行中的應用程式實例,您可以從 CIS 實例設定性能檢查,以監視儲存區的可用性。 透過設定性能檢查,資料流量一律會遞送至執行中實例,讓您的應用程式具有高可用性。
- 從 CIS 實例中,導覽至 可靠性> 廣域負載平衡器> 性能檢查。
- 按一下建立。
- 將性能檢查命名為與應用程式名稱相同:
global-app。 - 將 監視器類型 設為
HTTPS,並將 埠 設為443。 - 其餘選項請接受預設值。 請注意,如果您使用
codeengine/helloworld應用程式以外的應用程式,請調整應用程式所需的任何選項。 - 按一下建立。
如需相關資訊,請參閱 設定性能檢查。
配置 Cloud Internet Services (CIS) 負載平衡器
在自訂網域對映處於 Ready 狀態之後,請為應用程式廣域端點配置 Cloud Internet Services (CIS) 負載平衡器。 如需相關資訊,請參閱 配置廣域負載平衡器。
-
請前往 Cloud Internet Services (CIS) 控制台中的「可靠性」頁面。
-
選取 原始儲存區,然後按一下 建立。
- 將儲存區命名為
global-app-au-syd。 - 將 原始位址 設為網域名稱對映的 CNAME 目標。
- 將 Host 標頭設為您的網域名稱。
- 從 性能檢查中,選取 現有性能檢查,然後選取
global-app。 - 按一下儲存。
- 針對包含已部署應用程式的每一個地區,重複這些步驟。 變更名稱以反映您設為目標的地區。 例如,
global-app-de-eu和global-app-br-sao。
- 將儲存區命名為
-
選取 負載平衡器,然後按一下 建立。
- 為負載平衡器命名。 請注意,此名稱會出現在您的自訂網域 URL 中。 例如,如果您的自訂網域是
global-app.example.com,而您將負載平衡器命名為global-app,您的 URL 就是global-app.example.com。 - 將 資料流量引導 設為
Geo。 - 新增 地理 路徑。 您可以選擇為所有 CIS 地區或僅部分地區建立路徑。
- 如果您為所有 CIS 地區建立路徑,則在您建立的每一個路徑中,新增您先前建立的所有原始儲存區。 對它們進行排序,以便包含執行中應用程式且最接近您正在配置之地區路徑的地區。 例如,如果您在
au-syd、eu-de及br-sao中建立應用程式,則對於Oceana,請先放置au-syd。 若為東歐和西歐,請先放置de-eu。 而對於北美洲和南美洲,請將br-sao放在第一位。 - 如果僅為部分 CIS 地區建立路徑,請為 預設 地區新增路徑。 當指定的區域無法使用時,此路徑是要使用的撤回。
- 如果您為所有 CIS 地區建立路徑,則在您建立的每一個路徑中,新增您先前建立的所有原始儲存區。 對它們進行排序,以便包含執行中應用程式且最接近您正在配置之地區路徑的地區。 例如,如果您在
- 按一下 建立 以建立負載平衡器。
- 為負載平衡器命名。 請注意,此名稱會出現在您的自訂網域 URL 中。 例如,如果您的自訂網域是
驗證您的應用程式是否可用
開啟瀏覽器,並輸入負載平衡器名稱加上自訂網域名稱; 例如 www.global-app.example.com
現在您的應用程式具有高可用性。
清除指導教學
- 從 CIS中刪除廣域負載平衡器和原始儲存區。
- 從 CIS中刪除 DNS 記錄。 如需相關資訊,請參閱 刪除 DNS 記錄。
- 刪除您所建立的每一個專案。 當您刪除專案時,也會刪除該專案中包含的所有元件。 如需相關資訊,請參閱 刪除專案。
請注意,您的自訂網域不會刪除,但不再與您所建立的應用程式相關聯。