簡體   English   中英

從 Google Container Registry 自動將新容器部署到 Google Cloud Compute Engine

[英]Automatically deploy new container to Google Cloud Compute Engine from Google Container Registry

我有一個gcloud builds submit --tag gcr.io/<project-id>/<name>容器,我將它推送到 GCR,就像gcloud builds submit --tag gcr.io/<project-id>/<name> ,當我將它部署在 GCE 實例上時,每次部署它時都會創建一個新實例和我必須手動刪除舊實例。 問題是,有沒有辦法部署容器並強制 GCE 實例獲取新容器? 我完全需要 GCE,而不是 Google Cloud Run 或其他,因為它不是 HTTP 服務。

我使用Deploy to Cloud Run按鈕從 Google Console 部署容器部署

我正在發布此Community Wiki以獲得更好的可見性。 在評論部分已經有一些很好的解決方案,但是最后 OP 想要使用Cloud Run

首先我想澄清一些事情。

我有一個gcloud builds submit容器,可以像gcloud builds submit一樣推送到 GCR

gcloud builds submit是使用 Google Cloud Build 構建的命令。

Cloud Build 是一項在 Google Cloud Platform 基礎架構上執行構建的服務。 Cloud Build 可以從 Cloud Storage、Cloud Source Repositories、GitHub 或 Bitbucket 導入源代碼,根據您的規范執行構建,並生成工件,例如 Docker 容器或 Java 檔案。

在這個問題中,OP 指的是Container Registry ,但是 GCP 建議使用Artifact Registry ,它將很快取代Container Registry

Artifact Registry 推送和拉取鏡像推送和拉取鏡像文檔中有解釋。 它可以通過docker pushdocker pull命令來完成,之前你必須標記一個圖像並創建Artifact Registry

部署在不同的 GCP 產品上

關於部署在GCEGKECloud Run ,這些都是 GCP 產品,它們之間有很大的不同。

GCEIaaS ,您可以在其中指定資源量並維護所有軟件的所有安裝(您需要安裝 Docker、Kubernetes、編程庫等)。

GKE就像Hybrid因為您提到了您需要的資源量,但它是為在其上運行容器而定制的。 創建之后,您已經擁有了在其上運行容器所需的 docker、kubernetes 和其他軟件。

Cloud Run是無服務器 GCP 產品,您無需計算所需資源的數量、安裝軟件/庫,它是一個完全托管的無服務器平台。

當您想從Artifact Registry / Container Registry部署容器應用程序時,您正在創建另一個 VM(GCE 和 GKE)或新服務(Cloud Run)。

如果您想在同一 VM 上部署新應用程序:

  • 在 GCE 上,您需要使用 Docker 或 Kubernetes (Kubeadm) 拉取映像並將其部署在該 VM 上。
  • 在 GKE 上,您需要使用類似的命令部署新deployment
kubectl create deployment test --image=<location>-docker.pkg.dev/<projectname>/<artifactRegistryName>/<imageName>

並刪除舊的。

Cloud Run您可以部署應用而無需擔心資源或硬件,此處介紹這些步驟。 您可以為圖像中的特定更改創建revisions 然而, Cloud Run也允許使用GitHubBitBucketCloud Source Repositories CI/CD 。 這個過程在 GCP 文檔 - 持續部署中也有很好的描述

可能的解決方案:

  • 編寫一個 Cloudbuild.yaml 文件,在每次 CI/CD 管道運行時為您執行此操作
  • 在 GCE 上編寫一個小應用程序,訂閱 Cloud Build 創建的 Pub/Sub 通知。 然后,您可以拉取新容器或啟動新實例。
  • Cloud RunCI/CD

根據 OP 的評論之一,所選擇的解決方案是將Cloud RunCI/CD

暫無
暫無

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

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