Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 单副本Gitlab服务的部署或状态集?_Google Cloud Platform_Google Kubernetes Engine - Fatal编程技术网

Google cloud platform 单副本Gitlab服务的部署或状态集?

Google cloud platform 单副本Gitlab服务的部署或状态集?,google-cloud-platform,google-kubernetes-engine,Google Cloud Platform,Google Kubernetes Engine,我对Kubernetes的解读似乎表明statefulset是“有状态”应用程序的最佳答案。(在我的例子中是Gitlab实例。)创建容器的单个副本很好,但是当我推送更新时会发生什么 如果我的应用程序声明使用一个永久卷,那么推送更新是否会连接回同一个磁盘?Google Kubernetes引擎文档声明每个pod将接收自己的卷,“滚动”更新是默认值。如果在滚动更新过程中创建的新容器需要第一个副本仍在使用的卷中的数据,那么这如何工作 我可能遗漏了一些让我在答案周围兜圈子的东西。你是对的,a用于运行有状

我对Kubernetes的解读似乎表明statefulset是“有状态”应用程序的最佳答案。(在我的例子中是Gitlab实例。)创建容器的单个副本很好,但是当我推送更新时会发生什么

如果我的应用程序声明使用一个永久卷,那么推送更新是否会连接回同一个磁盘?Google Kubernetes引擎文档声明每个pod将接收自己的卷,“滚动”更新是默认值。如果在滚动更新过程中创建的新容器需要第一个副本仍在使用的卷中的数据,那么这如何工作

我可能遗漏了一些让我在答案周围兜圈子的东西。

你是对的,a用于运行有状态的应用程序

升级节点池版本不会删除永久卷,它会在更新后将新pod连接回同一永久卷

按照更新后的操作,只有存储在主机
hostPath
emptyDir
中的数据将被擦除。永久卷中的数据将不会被擦除

将会发生的事情是Kubernetes停止调度,耗尽然后删除集群的所有节点和吊舱。逐一地。持久卷将从pod卸载,然后在更新完成后装载到新的pod。持久卷中的数据将被保留。更新后,新更新的容器将使用相同的持久磁盘进行装载


由于它是单个复制副本,因此将有一段时间容器脱机,在此期间pod将不可用,并且永久卷将卸载。

我还建议您参考另一个。statefulset使用
volumeClaimTemplates
数组。每次复制pod时,
volumeClaimTemplates
会自动创建一个新的
PersistentVolumeClaim
。这意味着每个Statefulset replica
PersistentVolumeClaim
对象。