首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PersistentVolumeClaim在DaemonSet中的处理

PersistentVolumeClaim在DaemonSet中的处理
EN

Stack Overflow用户
提问于 2019-03-14 14:48:52
回答 2查看 5.7K关注 0票数 6

我有一个DaemonSet,它创建flink任务管理器荚,每个节点一个。

节点

假设我有两个节点

  • 节点-A
  • 节点-B

豆荚

daemonSet将创建

  • P-A在节点-A
  • 节点-B上的pod-B

持久性数量索赔

说我创造

  • pvc-A用于pv-A连接到节点-A
  • pvc-B连接到节点-B上

问题

如何将pod on 节点-A用于使用pcv-A

更新:

在谷歌上搜索了很多之后,我偶然发现使用StatefulSet可能会更好/更干净。这确实意味着您将无法像每个节点一样通过DaemonSet获得可用的特性。

https://medium.com/@zhimin.wen/persistent-volume-claim-for-statefulset-8050e396cc51

EN

回答 2

Stack Overflow用户

发布于 2020-03-08 16:03:48

如果在守护进程定义中使用persistentVolumeClaim,并且persistentVolumeClaim满足PV的hostPath类型,则守护进程荚将读取和写入由hostPath定义的本地路径。这种行为将帮助您使用一个PVC隔离存储。

这可能不直接适用于您的情况,但我希望这对将来搜索"volumeClaimTemplate for DaemonSet“之类的人有帮助。

使用与cookiedough相同的示例(谢谢!)

代码语言:javascript
复制
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: x
  namespace: x
  labels:
    k8s-app: x
spec:
  selector:
    matchLabels:
      name: x
  template:
    metadata:
      labels:
        name: x
    spec:
      ...
      containers:
      - name: x
        ...
        volumeMounts:
        - name: volume
          mountPath: /var/log
      volumes:
      - name: volume
        persistentVolumeClaim:
          claimName: my-pvc

并且PVC是与PV绑定的(请注意,只有一个PVC和一个PV!)

代码语言:javascript
复制
apiVersion: v1
kind: PersistentVolume
metadata:
  creationTimestamp: null
  labels:
    type: local
  name: mem
spec:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 1Gi
  hostPath:
    path: /tmp/mem
    type: Directory
  storageClassName: standard
status: {}

您的守护程序荚实际上将在每个节点上使用/tmp/mem。(每个节点上最多有一个守护程序荚,所以这很好。)

票数 4
EN

Stack Overflow用户

发布于 2019-03-14 14:55:18

将PVC连接到您的DaemonSet吊舱上的方法与使用其他类型的吊舱的方法没有任何不同。创建您的PVC,并将其作为一个卷到吊舱。

代码语言:javascript
复制
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: my-pvc
  namespace: x
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi

这就是DaemonSet清单的样子:

代码语言:javascript
复制
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: x
  namespace: x
  labels:
    k8s-app: x
spec:
  selector:
    matchLabels:
      name: x
  template:
    metadata:
      labels:
        name: x
    spec:
      ...
      containers:
      - name: x
        ...
        volumeMounts:
        - name: volume
          mountPath: /var/log
      volumes:
      - name: volume
        persistentVolumeClaim:
          claimName: my-pvc
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55165517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档