建立和管理 Lightsail 中的容器服務部署 - Amazon Lightsail

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

建立和管理 Lightsail 中的容器服務部署

當您準備好在 Amazon Lightsail 容器服務上啟動容器時,請建立部署。部署是您希望在服務上啟動之容器的一組規格。容器服務一次可以有一個執行中的部署,而部署最多可有 10 個容器項目。您可以在建立容器服務的同時建立部署,也可在服務開始運作後建立部署。

注意

如果您建立新的部署,則容器服務的現有使用率指標將會消失,並且只顯示目前新部署的指標。

如需有關容器服務的詳細資訊,請參閱 Amazon Lightsail 中的容器服務

內容

先決條件

開始在容器服務中建立部署之前,請完成以下事前準備:

部署參數

本節說明您可以為部署的容器項目和公有端點指定的參數。

容器項目參數

您可以在部署中新增最多 10 個容器項目。您可以為每個容器項目指定下列參數:


          Lightsail 主控台中的容器服務部署組態
  • Container name (容器名稱) – 輸入容器的名稱。部署中所有容器的名稱不得重複,並且只能包含英數字元和連字號。連字號可以分隔單字,但不能位於名稱的頭尾。

  • Source image (來源映像) – 指定容器的來源容器映像。您可以指定下列來源的容器映像:

  • Launch command (啟動命令) – 指定啟動命令以執行在建立容器時設定容器的 Shell 指令碼或 Bash 指令碼。啟動命令可以執行多項動作,例如新增軟體、更新軟體,或以某種其他方式設定容器。

  • Environment variables (環境變數) – 指定環境變數。這些變數是索引鍵值參數,可提供由容器執行的應用程式或指令碼的動態組態。

  • Open ports (開啟連接埠) – 指定要在容器上開啟的連接埠和通訊協定。您可以指定透過 HTTP、HTTPS、TCP 和 UDP 開啟任何連接埠。您必須為您打算用作容器服務公有端點的容器開啟 HTTP 或 HTTPS 連接埠。如需詳細資訊,請參閱本指南以下章節。

公有端點參數

您可以在部署中指定容器項目,作為容器服務的公有端點。公有端點容器上的應用程式可透過隨機產生的容器服務預設網域,在網際網路上公開存取。預設域的格式為 https://<ServiceName>.<RandomGUID>.<AWSRegion>.cs.amazonlightsail.com,其中 <ServiceName> 是容器服務名稱,<RandomGUID> 是 AWS 區域中針對您的 Lightsail 帳戶隨機產生的容器服務全域唯一識別符,而 <AWSRegion> 是建立容器服務所在的 AWS 區域。Lightsail 容器服務的公有端點僅支援 HTTPS,不支援 TCP 或 UDP 流量。一項服務只能以一個容器為公有端點。因此,請務必選擇託管應用程式前端的容器作為公有端點,而其他容器則在內部存取。

注意

您可以對容器服務使用自己的自訂網域名稱。如需詳細資訊,請參閱啟用和管理 Amazon Lightsail 容器服務的自訂網域

您可以為部署和容器服務的公有端點指定下列參數:


          Lightsail 主控台中的容器服務公有端點
  • Endpoint container (端點容器) – 選取部署中將作為容器服務公有端點之容器的名稱。下拉式選單只會列出在部署中開啟 HTTP 或 HTTPS 連接埠的容器。

  • Port (連接埠) – 選取要用於公有端點的 HTTP 或 HTTPS 連接埠。下拉式選單只會列出在所選容器上開啟的 HTTP 和 HTTPS 連接埠。如果所選容器未設定為在初次啟動時支援 HTTPS 連線,請選取 HTTP 連接埠。

    注意

    即使您將 HTTP 連接埠選為公有端點連接埠,容器服務的預設網域也會預設使用 HTTPS。原因在於容器服務的負載平衡器雖預設為 HTTPS,但又是使用 HTTP 與容器建立連線。

    容器服務的負載平衡器是以 HTTP 連接至容器,但會使用 HTTPS 來提供內容給使用者。

  • Health check path (運作狀態檢查路徑) – 在所選的公有端點容器上指定路徑,容器服務的負載平衡器會定期檢查路徑是否正常運作。

  • Advanced health check settings (進階運作狀態檢查設定) - 您可以為選取的公用端點容器設定下列運作狀態檢查設定:

    • Health check timeout seconds (運作狀態檢查逾時的秒數) - 等待運作狀態檢查回應的時間,以秒為單位。如果在這段時間內沒有收到任何回應,運作狀態檢查就會失敗。可以指定 2–60 秒。

    • Health check interval seconds (運作狀態檢查間隔秒) - 容器運作狀態檢查之間的約略間隔,以秒為單位。可以指定 5–300 秒。

    • Health check success codes (運作狀態檢查成功代碼) - 檢查來自容器的成功回應時所使用的 HTTP 碼。您可以指定介於 200 到 499 之間的值。可以指定多個值 (例如,200、202) 或值範圍 (例如,200–299)。

    • Health check healthy threshold (運作狀態檢查狀況良好閾值) - 將容器移至正常狀態所需要的連續運作狀態檢查成功次數。

    • Health check unhealthy threshold (運作狀態檢查狀況不良閾值) - 將容器移至狀況不良狀態所需要的連續運作狀態檢查失敗次數。

私有網域

所有容器服務也有格式如 <ServiceName>.service.local 的私有網域,其中 <ServiceName> 是容器服務名稱。使用私有域,從與您的服務相同 AWS 區域的另一個 Lightsail 資源中存取容器服務。如果您未在服務的部署中指定公有端點,則私有網域是存取容器服務的唯一方法。即使您未指定公有端點,系統仍會為容器服務產生預設網域,但在您嘗試瀏覽時會顯示 404 No Such Service 錯誤訊息。

若要使用容器服務的私有網域來存取特定容器,則必須指定容器的開放連接埠,以接受您的連線請求。若要執行此操作,可以將請求的網域變為此格式:<ServiceName>.service.local:<PortNumber>,其中 <ServiceName> 是容器服務名稱,<PortNumber> 是您想連接的容器的開放連接埠。例如,如果在名為 container-service-1 的容器服務上建立部署,並指定連接埠 6379 開啟的 Redis 容器,則請求的網域格式應該為 container-service-1.service.local:6379

容器之間的通訊

使用環境變數,您可以開啟同一容器服務中的容器、不同容器服務中的容器之間或者容器與其他資源之間 (例如,容器和受管資料庫之間) 的通訊。

要在同一容器服務中開啟容器之間的通訊,請向引用 localhost 的容器部署新增一個環境變數,如下列範例所示。


         Lightsail 主控台中帶有 localhost 環境變數的容器部署

要在不同容器服務中的容器之間開啟通訊,請將引用私有域的環境變量新增到容器部署中(例如container-service-1.service.local),如下列範例所示。


         Lightsail 主控台中帶有私有網域環境變數的容器部署

要開啟容器和其他資源之間的通訊,請向容器部署中新增引用資源的公有端點 URL 的環境變數。例如,Lightsail 受管資料庫的公有端點通常是 ls-123abc.czoexamplezqi.us-west-2.rds.amazonaws.com。因此,您應按如下範例所示在環境變數中引用它。


        Lightsail 主控台中帶有資源公有端點 URL 環境變數的容器部署

容器日誌

部署中每個容器都會產生日誌。容器日誌會提供在容器中執行的 stdoutstderr 程序串流。請定期存取容器日誌以診斷其操作。如需詳細資訊,請參閱檢視 Amazon Lightsail 容器服務的容器日誌

部署版本

您在容器服務中建立的每個部署都會儲存為部署版本。如果修改現有部署的參數,容器會重新部署至服務,而經修改的部署會產生新部署版本。每個容器服務的最新 50 個部署版本會儲存下來。您可使用 50 個部署版本之中任一個,在相同的容器服務中建立新部署。如需詳細資訊,請參閱檢視和管理 Amazon Lightsail 容器服務的部署版本

部署狀態

部署在建立後可處於下列任一種狀態:

  • Activating (啟動中) – 部署處於啟動中狀態,並且正在建立容器。

  • Active (作用中) – 部署已建立成功,目前正在容器服務上執行。

  • Inactive (非作用中) – 先前成功建立的部署不再在容器上執行。

  • Failed (失敗) – 部署中指定的一或多個容器無法啟動,以致部署失敗。

部署失敗

如果部署中一或多個容器無法啟動,則部署就會失敗。如果部署失敗,而且容器服務上有先前的部署正在執行,則容器服務會將先前的部署保留為作用中的部署。如果不存在先前的部署,則容器服務會停在就緒狀態,無任何目前作用中的部署。

請檢視失敗部署的容器日誌,以診斷和排除問題。如需詳細資訊,請參閱檢視 Amazon Lightsail 容器服務的容器日誌

檢視目前的容器服務部署

完成下列程序來檢視 Lightsail 容器服務上目前的部署。

  1. 登入 Lightsail 主控台

  2. 在 Lightsail 首頁上,選擇 Containers (容器) 索引標籤。

  3. 選擇您要檢視目前部署之容器服務的名稱。

  4. 在容器服務管理頁面上,選擇 Deployments (部署) 索引標籤。

    Deployments (部署) 頁面會列出目前的部署和部署版本。如果您尚未在容器服務中建立部署,則該頁面的兩個區段皆為空白。

建立或修改容器服務部署

請完成下列程序,在 Lightsail 容器服務上建立或修改部署。無論是建立新部署或修改現有部署,容器服務都會將每個部署儲存為新的部署版本。如需詳細資訊,請參閱檢視和管理 Amazon Lightsail 容器服務的部署版本

  1. 登入 Lightsail 主控台

  2. 在 Lightsail 首頁上,選擇 Containers (容器) 索引標籤。

  3. 選擇您要建立或修改容器服務部署之容器服務的名稱。

  4. 在容器服務管理頁面上,選擇 Deployments (部署) 索引標籤。

    Deployments (部署) 頁面會列出目前的部署和部署版本 (如果有)。

  5. 請選擇下列其中一個選項:

    • 若容器服務具有現有的部署,則選擇 Modify your deployment (修改部署)。

    • 若容器服務尚未具有部署,則選擇 Create a deployment (建立部署)。

      部署表單隨即開啟,您可以在上面編輯現有的部署參數,或輸入新的部署參數。

      
                Lightsail 主控台中的容器服務部署表單
  6. 輸入部署的參數。如需有關可指定之部署參數的詳細資訊,請參閱本指南前面的部署參數一節。

  7. 選擇 Add container entry (新增容器項目),以將多個容器項目新增至部署。部署可有最多 10 個容器項目。

  8. 選擇部署中的容器項目,作為容器服務的公有端點。這包括指定 HTTP 或 HTTPS 連接埠、所選容器項目上的運作狀態檢查路徑,以及進階運作狀態檢查設定。如需詳細資訊,請參閱本指南前述的公有端點參數

  9. 部署參數輸入完畢時,請選擇 Save and deploy (儲存和部署),以在容器服務上建立部署。

    部署正在建立時,容器服務狀態會變更為 Deploying (部署中)。幾分鐘之後,容器服務狀態會根據部署狀態變更為下列其中一種狀態:

    • 如果部署成功,容器服務狀態會變更為 Running (執行中),而部署狀態會變更為 Active (作用中)。如果您已在部署中設定公有端點,則可透過容器服務預設網域使用選為公有端點的容器。

    • 如果部署失敗,而且容器服務上有先前的部署正在執行,則容器服務狀態會變更為 Running (執行中),容器服務會將先前的部署保留為作用中的部署。如果不存在先前的部署,則容器服務狀態會變更為 Ready (就緒),且無任何目前作用中的部署。請檢視失敗部署的容器日誌,以診斷和排除問題。如需詳細資訊,請參閱《檢視 Amazon Lightsail 容器服務的容器日誌》。