【问题标题】:Kubernetes Pods vs Deployments in Google CloudKubernetes Pod 与 Google Cloud 中的部署
【发布时间】:2016-11-01 11:22:28
【问题描述】:

如果这个问题听起来很明显,我深表歉意,但 Kubernetes 和 Google 云文档在某些地方极其混乱和矛盾。

无论如何,我已经将一个 Dockerized 网络服务器推送到我的私人 Google 容器注册表中。如果这个容器死了,我希望它重新启动,但我只需要一个实例在任何给定时刻运行。此外,为了正确配置服务器,还需要定义大量环境变量。

我已经创建了一个新集群。但我从这里去哪里?一些教程说应该声明 pod 和服务文件,但是下一个教程说不应该直接声明 pod,而是使用部署。结果是我非常困惑。

这个简单用例的最佳方法是什么?另外,在 Google Cloud 中使用 Kubernetes 的推荐文档是什么? (Google 的官方文档似乎已经过时了。)

【问题讨论】:

  • 该文件在这个话题上也让我很困扰。 AFAIK 现在首选部署。但是到处都有过时的文档在谈论 Pod。

标签: kubernetes google-kubernetes-engine


【解决方案1】:

根据您的描述,我建议您使用 Deployment 并将 replicas 设置为 1。部署将确保您的 pod 始终有一个实例在运行。您可以在部署清单的 pod template 规范中定义您的 environment variables

在文档中,您可能还会看到将replication controllers 用于相同目的的建议。这绝对是一个选项,但部署被视为复制控制器的successor,此时通常为recommended

裸 pod 不打算成为 durable,并且不会在节点故障或其他类型的驱逐的情况下重新启动。

文档在许多地方都已过时,但据我所知,权威位置(即使对于 GKE)是 http://kubernetes.io/docs/

【讨论】:

    【解决方案2】:

    @ryan 的答案非常明确。

    要拥有一个持久的 pod,必须使用 Deployments 创建它。

    Deployment 通常更可取,因为它定义了一个 ReplicaSet 以确保所需数量的 Pod 始终可用,并指定替换 Pod 的策略,在您的情况下,它是一个

    如果您在没有 Deployment 的情况下直接创建 pod,则必须手动创建和管理 pod。
    Pod 类型的对象不会被重新调度(或自愈)在节点故障或 pod 终止的情况下。

    您可以改用replica set,但它不如部署灵活。

    【讨论】:

      猜你喜欢
      • 2023-04-10
      • 2020-07-14
      • 1970-01-01
      • 2020-07-20
      • 2020-08-01
      • 2017-07-05
      • 2020-07-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多