我有一个StatefulSet
,看起来像这样
apiVersion: v1
kind: StatefulSet
metadata:
name: web
spec:
...
volumeClaimTemplates:
— metadata:
name: www
spec:
resources:
requests:
storage: 1Gi
它将为它控制的PersistentVolumeClaim
中的每个PersistentVolume
创建一个Pod
(PVC)和一个Service
(PV)。
我想在Pod
创建之前在这些PV上执行一些命令。
我当时正在考虑创建一个Job
来安装这些PV并运行命令,但是我怎么知道创建了多少PV?
是否有Kubernetes原生解决方案在PV创建时触发某些pod执行?
答案 0 :(得分:1)
解决方案是InitContianer。
您可以将其添加到您的StatufulSet
的规范中:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
...
spec:
initContainers:
- name: init-myapp
image: ubuntu:latest
command:
- bash
- "-c"
- "your command"
volumeMounts:
- name: yourvolume
mountPath: /mnt/myvolume