如何在Kubernetes中创建一个在Pod死后不会被破坏的卷?

时间:2018-08-13 03:02:11

标签: kubernetes devops gcloud

我有一个泊坞窗映像,在创建时应检查该卷是否为空,以防应使用一些数据对其进行初始化。 保存的数据必须仍可用于具有相同或不同图像的其他窗格。

enter image description here

您推荐我做什么?

3 个答案:

答案 0 :(得分:1)

您有2个选择:

  1. 第一个选择是将容器安装到节点中并将数据保存在节点中,这样当新容器在同一节点中创建时,将可以访问相同的卷(永久存储位置)。

潜在问题:同一节点上的2个pod可能为同一资源创建死锁(因此您必须管理该资源)。

  1. 共享存储意味着创建一个存储,每个吊舱将在同一存储中声明存储。

我强烈建议您在接下来的55分钟内观看下面的网络研讨会: https://www.youtube.com/watch?v=n06kKYS6LZE

答案 1 :(得分:1)

我假设您使用Kubernetes中的Deployment对象创建Pod。您要查看的是一个StatefulSet,与部署相反,它保留了重新创建的Pod的某些身份方面,包括一定程度的网络和存储。

它是专门作为运行需要将其状态保持在kube集群中的服务(即,运行数据库队列等)的一种方式

答案 2 :(得分:0)

看看答案,创建NFS持久卷然后允许吊舱安装PV会不会更简单?

您可以使用writemany减轻死锁。

apiVersion: v1
kind: PersistentVolume
metadata:
  name: shared-volume
spec:
  capacity:
    storage: 1Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  storageClassName: ""
  mountOptions:
    - hard
    - nfsvers=4.1
  nfs:
    path: /tmp
    server: 172.17.0.2

Persistent Volumes