如果这个问题听起来很明显,我很抱歉,但Kubernetes和Google云文档在某些地方非常令人困惑和矛盾。
无论如何,我已将Dockerized网络服务器推送到我的私人Google Container Registry。我希望这个容器在它死后重新启动,但我只需要在任何给定时刻运行一个单独的实例。此外,还需要为服务器定义一组环境变量才能正确配置。
我已经创建了一个新群集。但是我从哪里开始呢?一些教程说应该声明pod和服务文件,但是接下来的教程说不应该直接声明pod而是使用部署。结果是我非常困惑。
这个简单用例的最佳方法是什么?另外,在Google Cloud中使用Kubernetes的推荐文档是什么? (谷歌的官方文档似乎已经过时了。)
答案 0 :(得分:7)
根据您的说明,我建议您使用Deployment并将replicas
设置为1.部署将确保您的pod始终有一个实例正在运行。您可以在部署清单的environment variables规范中定义pod template。
在文档中,您可能还会看到将replication controllers用于同一目的的建议。这绝对是一个选项,但部署被视为复制控制器的successor,此时通常为recommended。
裸露的pod不是durable,并且在节点故障或其他类型的驱逐情况下不会重新启动。
文档在很多地方都已过时,但据我所知,权威位置(即使是GKE)也是http://kubernetes.io/docs/。
答案 1 :(得分:0)
@ryan的答案很清楚。
要拥有一个持久的Pod,必须使用Deployments来创建它。
通常最好使用部署 ,因为它定义了 ReplicaSet 以确保所需数量的Pod始终可用,并指定了替换Pod的策略(在您的情况下,它是一个。
如果直接在没有 Deployment 的情况下创建Pod,则必须手动创建和管理Pod。
不会重新安排Pod类型的对象(或发生故障时自动修复)。
您可以改用replica set
,但它不如部署灵活。