从 cli 将 MountOptions 添加到 Kubernetes 入口规则

Add MountOptions to Kubernetes ingress rule from cli

我的 kubernetes 集群中有一个 PV/PVC。

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv0003
spec:
  capacity:
    storage: 5Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  storageClassName: slow
  nfs:
    path: /tmp
    server: 172.17.0.2

我想在外部添加 mountOptions 到所有 PV,如下所示。

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv0003
spec:
  capacity:
    storage: 5Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  storageClassName: slow
  mountOptions:
    - hard
    - nfsvers=4.1
  nfs:
    path: /tmp
    server: 172.17.0.2

有什么方法可以使用 kubectl cli 来实现这一点,就像我们向入口规则添加注释和 pods 一样?

您可以使用 kubectl patch commandmountOptions 添加到集群中的现有 PV:

kubectl patch pv pv0003 --patch '{"spec": {"mountOptions": ["hard","nfsvers=4.1"]}}'

如果要将 mountOptions 添加到集群中的每个 PV,可以使用简单的 bash for 循环和 kubectl patch 命令:

for pv in $(kubectl get pv --no-headers -o custom-columns=":metadata.name"); do kubectl patch pv $pv --patch '{"spec": {"mountOptions": ["hard","nfsvers=4.1"]}}'; done