Google-Compute-Engine

將應用部署到 Google Cloud Engine 虛擬機實例

  • November 14, 2020

我對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 
  1. 生成服務帳戶密鑰文件:
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 密鑰添加到使用者帳戶

  1. 切換到服務帳號
gcloud config set account [ACCOUNT]
  1. 添加 SSH 密鑰
gcloud compute os-login ssh-keys add --key-file ~/.ssh/id_rsa.pub
  1. 從服務帳號切換回來
gcloud config set account your@gmail.com
  1. 收集服務帳號 uniqueId
gcloud iam service-accounts describe [ACCOUNT] --format='value(uniqueId)'

您現在可以使用服務帳戶 ssh 進入項目的任何實例:

ssh -i .ssh/id_rsa [sa_<uniqueId>]@[INSTANCE_IP]

請注意,我們為 uniqueId 添加了前綴sa_

更多資訊:作業系統登錄

引用自:https://serverfault.com/questions/1042554