簡體   English   中英

AWS CodeDeploy 藍/綠部署卡住了?

[英]AWS CodeDeploy Blue/Green Deployment stuck?

我正在執行 AWS Blue/Green 部署以測試基本的 apache 服務器,並且由於 CodeDeploy 經歷了 B/G 部署的 4 個步驟,它停留在第 3 步,即將流量路由到替換實例大約半小時。 即使花費了很長時間並重試了幾次,我也無法弄清楚出了什么問題。 我不知道我的設置是否正確。 這是我的 B/G 部署設置。

  1. 使用兩個實例創建了一個名為orginalautoscalinggroup的自動縮放組。
  2. 創建了兩個目標組,一個用於原始環境,第二個用於替換環境,即originaltargetgroupreplacementtargetgroup
  3. 附加originaltargetgroup成為originalautoscalinggroup的一部分。
  4. 創建了一個應用程序負載均衡器,即apploadbalancer並將其附加到originaltargetgroup
  5. 現在apploadbalancer附加了originaltargetgroup ,它附加了originalautoscalinggroup

我的 Codedeploy B/G 配置如下所示。

  1. 部署類型:B/G
  2. 環境配置:自動復制 Amazon EC2 Auto Scaling 組
  3. Amazon EC2 Autoscaling 組: originalautoscalinggroup
  4. 流量重新路由:立即重新路由流量
  5. 終止策略:終止部署組中的原始實例
  6. 部署配置:CodeDeployDefault.AllAtOnce
  7. 應用程序負載均衡器。
  8. 目標群體: originaltargetgroup

我認為我無法附加正確的負載均衡器或目標組。 請幫忙。

圖片1

圖片2

根據評論添加答案。

由於 B/G 部署在流量重新路由期間失敗,特別是在“允許流量”時,實例處於“不健康”state 中。

如果所需的服務未在 EC2 上運行且無法訪問,它們將保持在不健康的 state 中,並且無法將流量重定向到它們,因此部署將失敗。

為了確保所需的服務/進程正在由 AutoScaling 組啟動的 EC2 服務器上運行,您

  1. 使用“用戶數據”更新啟動配置/模板以在 EC2 啟動時執行腳本,這將安裝、配置和啟動所需的服務,例如端口 80 上的 Nginx。
  2. 您可以創建一個自定義 AMI,其中已經安裝了所需的應用程序,並且在 EC2 啟動時,所需的服務/進程將啟動。

這樣,每當 ASG 啟動一個新的 EC2 時,它都會根據啟動進程所需的時間將 go 變為健康的 state。 一旦它是健康的,它將准備好為流量提供服務並發布,舊實例將被取消注冊。

取消注冊舊實例后,它們可能會根據 CodeDeploy 中的配置終止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM