我正在开发一个用于在 Google Container Egine (GKE) 中部署的 Kubernetes 服务。直到最近,我还在 Google Cloud Shell 中构建了 Docker 映像,但我现在已经达到配额限制,因为运行 Cloud Shell 的免费 VM 实例上的总体负载显然来自多个docker build
s 和push
es。到目前为止,我的经验是,经过大约一周左右的持续工作后,我遇到了以下错误消息,并且必须等待大约两天才能再次使用 Cloud Shell。
Service usage limits temporarily exceeded. Try connecting later.
我试图将我docker build
的 s 和push
es 转移到计费机器(GCE VM 实例或 GKE 集群节点)上,但没有完全成功:
在 GCE VM 实例上,显然没有安装 Docker。(也有道理。)
在 GKE 集群节点上,安装了 Docker,我可以(
sudo
)docker build
我的图像,但docker push
(即使在之后)几秒钟后(在推送几层之后gcloud docker
)失败并显示以下错误消息:denied: Access denied
那么 GKE 内部 docker 镜像的可持续开发工作流程是什么?我应该在 VM 实例上安装 Docker(我希望不是)还是我希望在其他地方安装 Docker docker build
,docker push
最终kubectl create
我的服务不会遇到工作停滞配额限制等?(我使用 MacBook 作为本地开发机器,如果我能提供帮助,我也不希望在那里安装 Docker。也就是说,我更喜欢在云中构建 docker 映像。)
更新如果我按如下方式为 VM 实例配备了Container-VM 映像docker build
,则成功,但docker push
就像之前在 GKE 集群节点上一样失败(带有denied: Access denied
):
gcloud compute images list \
--project google-containers \
--no-standard-images
gcloud compute instances create tmp \
--machine-type g1-small
--image container-vm-v20160321 \
--image-project google-containers
--zone europe-west1-d