我使用 GitLab Runner 在 AWS EC2 現貨實體上運行 CI 作業,并使用其與 Docker Machine 的自動縮放功能。
突然之間,今天 GitLab CI 無法運行作業,并向我顯示了我想要開始的所有作業的以下作業輸出:
Running with gitlab-runner 14.9.1 (f188edd7)
on AWS EC2 runner ...
Preparing the "docker machine" executor
10:05
ERROR: Preparation failed: exit status 1
Will be retried in 3s ...
ERROR: Preparation failed: exit status 1
Will be retried in 3s ...
ERROR: Preparation failed: exit status 1
Will be retried in 3s ...
ERROR: Job failed (system failure): exit status 1
我在 AWS 控制臺中看到確實創建了 EC2 實體,但實體總是被 GitLab Runner 立即停止。
GitLab Runner 系統日志顯示以下錯誤:
ERROR: Machine creation failed error=exit status 1 name=runner-eauzytys-gitlab-ci-1651050768-f84b471e time=1m2.409578844s
ERROR: Error creating machine: Error running provisioning: error installing docker: driver=amazonec2 name=runner-xxxxxxxx-gitlab-ci-1651050768-f84b471e operation=create
所以這個錯誤似乎與 Docker 機器有關。將 GitLab Runner 以及 GitLab 的 Docker Machine fork 升級到最新版本并不能修復該錯誤。我正在使用 GitLab 14.8 并嘗試了 GitLab Runner 14.9 和 14.10。
這可能是什么原因?
uj5u.com熱心網友回復:
解決方法/修復:
在您的運行器配置中明確指定 AMI,并且不再依賴默認配置,即添加類似以下內容"amazonec2-ami=ami-02584c1c9d05efa69"的內容MachineOptions:
MachineOptions = [
"amazonec2-access-key=xxx",
"amazonec2-secret-key=xxx",
"amazonec2-region=eu-central-1",
"amazonec2-vpc-id=vpc-xxx",
"amazonec2-subnet-id=subnet-xxx",
"amazonec2-use-private-address=true",
"amazonec2-tags=runner-manager-name,gitlab-aws-autoscaler,gitlab,true,gitlab-runner-autoscale,true",
"amazonec2-security-group=ci-runners",
"amazonec2-instance-type=m5.large",
"amazonec2-ami=ami-02584c1c9d05efa69", # Ubuntu 20.04 for amd64 in eu-central-1
"amazonec2-request-spot-instance=true",
"amazonec2-spot-price=0.045"
]
您可以在此處獲取 Ubuntu AMI ID 串列。請務必選擇適合您的 AWS 區域和實體架構并受 Docker 支持的一種。
解釋:
GitLab Runner / Docker Machine EC2 驅動程式使用的默認 AMI 是 Ubuntu 16.04。Docker 的安裝腳本(可在https://get.docker.com/上找到,Docker Machine 所依賴的)最近似乎已停止支持 Ubuntu 16.04。因此,Docker Machine 生成的 EC2 實體上的 Docker 安裝失敗,作業無法運行。
另請參閱此GitLab 問題。
Azure和GCP也有類似的問題。
uj5u.com熱心網友回復:
確保為 Ubuntu 而不是 Debian 選擇 ami,并且您的 aws 帳戶已訂閱它
我做了什么
- 在 aws 市場訂閱 Ubuntu Amazon Image (Ubuntu 20.04 LTS - Focal)
- 選擇啟動實體,選擇區域,然后復制顯示的 ami
uj5u.com熱心網友回復:
從昨天開始,我遇到了同樣的問題。
這可能與 GitLab 發布 15.0 并進行重大更改有關(進行中live on GitLab.com sometime between April 23 – May 22)
- https://about.gitlab.com/blog/2022/04/18/gitlab-releases-15-break-changes/
- 但沒有提到
AMI要添加到欄位中的缺失欄位MachineOptions
添加欄位AMI解決了我這邊的問題。
uj5u.com熱心網友回復:
正如莫伊茨指出的:
添加:
MachineOptions = [
"amazonec2-ami=ami-02584c1c9d05efa69",
]
解決問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/466486.html
標籤:亚马逊网络服务 码头工人 gitlab-ci gitlab-ci-runner 码头机器
