处理守护程序中的PersistentVolumeclaim



我有一个DaemonSet,可以创建Flink Task Manager Pods,每个节点一个。

节点

说我有两个节点

  • node-a
  • node-b

豆荚

守护程序将创建

  • pod-a on Node-a
  • pod-b on节点-B

持续的卷声明

  • 我在AK上,想使用azure-disk进行持续存储
  • 根据文档:[https://learn.microsoft.com/en-us/azure/azure/aks/azure-disks-dynamic-pv]
    • 可以将Azure磁盘与单节点相关联

说我创建

  • pvc-a用于Node-a附加的PV-A
  • pvc-b,用于连接到节点-B
  • 的PV-B

问题

我如何关联 pod-a on node-a 使用 pcv-a

更新:

谷歌搜索后,我偶然发现使用状态满者可能会更好/更清洁。这确实意味着您不会通过daemonset像每个节点一个吊舱那样获得可用的功能。

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

如果您在daemonset定义中使用persistentVolumEclaim,并且PersistentVolumeClaim对hostPath的类型对PV感到满意,则您的守护程序POD会读取并写入由hostPath定义的本地路径。此行为将帮助您使用一个PVC分离存储。

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

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

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!)

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。(每个节点上最多有1个守护程序吊舱,所以很好。)

将PVC连接到登蒙蒙特吊舱的方法与您使用其他类型的POD的方式没有什么不同。创建您的PVC并将其安装在吊舱上。

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: my-pvc
  namespace: x
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi

这就是守护程序的样子:

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

相关内容

  • 没有找到相关文章

最新更新