【问题标题】:Deploying a pre-built container image in Google Kubernetes Engine在 Google Kubernetes Engine 中部署预构建的容器映像
【发布时间】:2020-07-28 09:40:37
【问题描述】:
我的本地机器中有一个 docker 映像,已推送到 Google Cloud Containers。
现在我想在 Google Kubernetes Engine 中部署这个镜像。
我正在按照以下链接中的步骤进行操作-
https://cloud.google.com/cloud-build/docs/deploying-builds/deploy-gke#deploying_a_pre-built_container_image
我将创建一个 YAML 部署配置文件。
我的问题是我需要将此文件保存在谷歌云中的哪个位置,以便它可以用于部署。
此外,在 YAML 文件中,nginx 是什么——我使用了默认的。我需要将这个 YAML 配置文件保存在哪里。
ms_aggregator 是我的图片的名称
apiVersion: "apps/v1"
kind: "Deployment"
metadata:
name: "deployment-aggregator"
spec:
replicas: 1
selector:
matchLabels:
app: "nginx-1"
template:
metadata:
labels:
app: "nginx-1"
spec:
containers:
- name: "nginx-1"
image: "ms_aggregator"
【问题讨论】:
标签:
kubernetes
deployment
yaml
google-kubernetes-engine
docker-image
【解决方案1】:
您需要使用完整的映像名称,通常包括映像注册表和存储库。
从例子:
"gcr.io/cloud-builders/gke-deploy"
通常,GCP 格式是
<docker registry host>/<gcp-project-name>/<image-name>
对你来说,这很可能:
gcr.io/<your-gcp-project-name>/ms_aggregator
但是,如果您选择在其他位置使用注册表,则注册表名称可以是例如eu.gcr.io
【解决方案2】:
你混合了两件事。您所指的文档是 GKE deploy builder,它是 kubectl 的包装器。这将使用 Google Cloud 推荐的部署机制部署构建的映像,您不需要 Kubernetes 部署 yaml 文件。这更像是 CI/CD 的一种风格。
现在,如果您想使用已有的 Kubernetes 部署 yaml 部署预构建的镜像,则不需要 GKE 部署,您可以直接为此配置和使用 kubectl。
按照本指南 here 配置 kubectl 以访问 GKE 集群。
之后,您可以通过kubectl apply -f deployment.yaml 将映像部署为 GKE 中的容器。 deployment.yaml 文件可以在您配置kubectl 的系统中的任何位置