在阅读了在 Google Cloud 中运行容器的几种选项后,我仍然无法在众多选项中找到合适的解决方案 - Cloud Run、Kubernetes、Container-OS......
我们需要能够:
- 运行 docker 镜像(托管在 dockerhub 中)
- 将持久磁盘挂载为卷。大数据文件将存储在那里。
- 将端口暴露给互联网
- 自动可扩展性(不使用时,例如在晚上,设置为 0)
答案1
聚焦仅有的关于GCP
环境,正如问题中所说。
有一些解决方案可用于运行您所描述的工作负载。其中一些是:
- Kubernetes 引擎
- 云运行
GKE
您可以在这里阅读有关和之间差异的更多信息Cloud Run
:
你可以使用吉科对于您的工作量,正如您提到的要点:
- 运行 docker 镜像(托管在 dockerhub 中)
Kubernetes 使用 Docker 镜像。你可以选择指定下载镜像的位置从。
- 将持久磁盘挂载为卷。大数据文件将存储在那里。
默认情况下GKE
用作和的gce-pd
主干。您将能够在那里存储 pod 所需的数据:PVC
PV
- 将端口暴露给互联网
Kubernetes 有多种选项允许流量进入你的集群。其中一些是:
ClusterIP
- 仅限内部NodePort
LoadBalancer
Ingress
您可以在这里阅读更多相关信息:
- 自动可扩展性(不使用时,例如在晚上,设置为 0)
通过使用 Kubernetes,你不仅可以自动扩展节点,还可以自动扩展运行应用程序的 pod:
- Cloud.google.com:Kubernetes Engine:文档:概念:集群自动扩缩器- 集群自动缩放器将不是自动缩减至 0 个节点
- 水平 Pod 自动扩缩器(副本数量):
- Cloud.google.com:Kubernetes Engine:文档:概念:水平 Pod 自动扩缩器- HPA 将不是缩放至 0 个 Pod
- 垂直 Pod 自动扩缩器(资源和限制):
其他资源:
- Kubernetes.io
- Cloud.google.com:Kubernetes Engine:文档:教程
- Github.com: Kubernetes:Kompose- 将 Docker Compose 转换为 Kubernetes