fitme

k8s 下 nfs-provisioner 迁移

  •  
  •   fitme · Sep 11, 2025 · 2899 views
    This topic created in 248 days ago, the information mentioned may be changed or developed.

    请教各位大佬, 我在本地环境有一个 k8s 集群,需要更换 nfs-server ,如何完成 pv/pvc 迁移?

    7 replies    2025-09-12 21:53:21 +08:00
    jusk9527
        1
    jusk9527  
       Sep 11, 2025   ❤️ 1
    可以创建新的 pv/pvc 进行绑定
    vus520
        2
    vus520  
       Sep 11, 2025
    我理解哥们不想手动创建新的 pv/pvc 进行绑定,是不是想数据拷贝以后,直接修改 NFS 存储类的 IP 地址?
    fitme
        3
    fitme  
    OP
       Sep 11, 2025
    @vus520 对,但是好像修改不了,pv 创建后不支持修改 nfs 地址,还没搞懂这块。怎么搞比较简单快速
    vus520
        4
    vus520  
       Sep 11, 2025   ❤️ 1
    看你的业务复杂度,如果业务简单,可以重启集群的话,可以强制修改存储类的地址,或者直接改 etcd 中的地址,然后重启集群。
    我们的业务太复杂,没办法这么干,就批量复制了 pv/pvc 然后重新绑定,当然,这个过程是程序化的。
    feedcode
        5
    feedcode  
       Sep 11, 2025   ❤️ 1
    删掉 PV 后重建,记得 spec.claimRef 保持和之前的一样,PVC 会重新 Bound

    while read share;do
    echo "check $share"
    kubectl get pv $share -o yaml > "$share-origin.yaml"
    ns=$(yq '.spec.claimRef.namespace' "$share-origin.yaml")
    pvc=$(yq '.spec.claimRef.name' "$share-origin.yaml")
    echo "$ns $pvc"
    if [ ! -f "all-pods-$ns.yaml" ] ;then
    kubectl get pods -n $ns -o yaml > "all-pods-$ns.yaml"
    fi
    podname=$(yq ".items[]|select(.spec.volumes[].persistentVolumeClaim.claimName==\"$pvc\")|.metadata.name" "all-pods-$ns.yaml")
    echo "pods $podname will be deleted"
    # patch pv
    kubectl patch pv $share -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}, "metadata":{"finalizers":null }}' --type=merge
    kubectl delete pv $share --wait=false
    sleep 5
    kubectl delete pod -n $ns $podname
    sleep 10
    kubectl get pv $share || echo deleted
    # recreate PV here
    sed -e "REPLACE-HERE" "$share-origin.yaml" >"$share-new.yaml"
    kubectl create -f "$share-new.yaml"
    done<pv-shares.txt
    iStarBoy
        6
    iStarBoy  
       Sep 11, 2025
    我觉得这句话丢给 gpt 给的方案可以很详细 ( x
    我之前是停止服务手动创建新的 pv (同名) 然后复制数据进去的 反正 nfs 的数据都能挂载操作
    dode
        7
    dode  
       Sep 12, 2025
    换服务器可以立即,但是一定要换 IP 地址吗?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2986 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 00:28 · PVG 08:28 · LAX 17:28 · JFK 20:28
    ♥ Do have faith in what you're doing.