將應用部署到 Google Cloud Engine 虛擬機實例
我對Google云的世界真的很陌生,我感到非常困惑。我利用始終免費的套餐獲得了一個 Google Cloud Engine VM 實例,並希望用它來對我正在開發的一些東西進行一些測試。
我以前使用 VPS 實例管理過 Linux 伺服器,但在這種特定情況下,我非常困惑如何將我的任何應用程序實際自動部署到這個 GCE VM。
我的應用程序託管在 Github 上,所以我正在嘗試使用 Github Actions,不幸的是,大多數可用選項都需要我創建 Docker 映像,將它們推送到 Google 的 Container Registry,然後部署它們(就像這個官方的一樣)。
不幸的是,文件告訴我每個 VM 實例只能執行一個圖像,這是公平的,因為我認為這是 docker 限制。
這就是問題所在,我沒有足夠的知識來設置 docker compose 或協調將圖像推送到 Google Cloud 的容器系統資料庫。我只是不知道如何開始學習。
僅使用 SSH 登錄 VM 實例並從 Github 中提取更改,我就絕對沒有辦法執行更傳統的 Web 伺服器(Nginx 託管 API + 前端)嗎?
我嘗試使用該
ssh
命令登錄伺服器上的其中一個帳戶,但我認為該埠甚至沒有打開以允許我這樣做。該
gcloud
命令似乎不允許我為服務帳戶提供一個 JSON 密鑰來登錄,所以我完全不知道如何實現這一點。關於如何解決這些問題的任何建議?
關於您的 CI/CD 問題,我無法為您提供幫助。但是,您可以配置 OS Login 以使用您的服務帳戶訪問您的 VM:
- 在項目範圍的元數據中啟用作業系統登錄,以便它適用於項目中的所有實例:
gcloud compute project-info add-metadata --metadata enable-oslogin=TRUE
- 生成服務帳戶密鑰文件:
gcloud iam service-accounts keys create --iam-account [ACCOUNT] [FILE].json
這
$$ FILE $$.json 文件將下載到您執行命令的路徑目錄中。 3. 啟動服務帳號:
gcloud auth activate-service-account –key-file=
$$ FILE $$.json 4. 將 SSH 密鑰添加到使用者帳戶
- 切換到服務帳號
gcloud config set account [ACCOUNT]
- 添加 SSH 密鑰
gcloud compute os-login ssh-keys add --key-file ~/.ssh/id_rsa.pub
- 從服務帳號切換回來
gcloud config set account your@gmail.com
- 收集服務帳號 uniqueId
gcloud iam service-accounts describe [ACCOUNT] --format='value(uniqueId)'
您現在可以使用服務帳戶 ssh 進入項目的任何實例:
ssh -i .ssh/id_rsa [sa_<uniqueId>]@[INSTANCE_IP]
請注意,我們為 uniqueId 添加了前綴
sa_
更多資訊:作業系統登錄