UiPath Documentation
automation-suite
2.2510
true
Guía de instalación de Automation Suite en Linux
Importante :
Este contenido se ha localizado parcialmente a partir de un sistema de traducción automática. La localización de contenidos recién publicados puede tardar entre una y dos semanas en estar disponible.

Pods atascados en estado Init debido a un fallo de montaje del volumen XFS en nodos RHEL 8.x

Resuelva los pods atascados en estado Init debido a una incompatibilidad de formato TopoLVM XFS con RHEL 8.x en Automation Suite.

Descripción​

Cuando un pod que requiere un nuevo volumen persistente (por ejemplo, un proceso de entrenamiento de AI Center) se inicia en un nodo RHEL 8.x, el pod permanece en el estado Init con el siguiente error:

Warning  FailedMount  36s (x11 over 8m50s)  kubelet  MountVolume.SetUp failed for volume "pvc-82575d2d-2269-4cef-ace8-fa1602f3dd44" : rpc error: code = Internal desc = mount failed: volume=6d81061d-79c4-46b3-9471-478c6c739b25, error=mount failed: exit status 32

Mounting command: mount
Mounting arguments: -t xfs -o nouuid /dev/uipathstorevg/6d81061d-79c4-46b3-9471-478c6c739b25 /var/lib/kubelet/pods/547bdf64-173b-4df1-ad7a-449f6796ca09/volumes/kubernetes.io~csi/pvc-82575d2d-2269-4cef-ace8-fa1602f3dd44/mount

Output: mount: /var/lib/kubelet/pods/547bdf64-173b-4df1-ad7a-449f6796ca09/volumes/kubernetes.io~csi/pvc-82575d2d-2269-4cef-ace8-fa1602f3dd44/mount: wrong fs type, bad option, bad superblock on /dev/mapper/uipathstorevg-6d81061d--79c4--46b3--9471--478c6c739b25, missing codepage or helper program, or other error.
Warning  FailedMount  36s (x11 over 8m50s)  kubelet  MountVolume.SetUp failed for volume "pvc-82575d2d-2269-4cef-ace8-fa1602f3dd44" : rpc error: code = Internal desc = mount failed: volume=6d81061d-79c4-46b3-9471-478c6c739b25, error=mount failed: exit status 32

Mounting command: mount
Mounting arguments: -t xfs -o nouuid /dev/uipathstorevg/6d81061d-79c4-46b3-9471-478c6c739b25 /var/lib/kubelet/pods/547bdf64-173b-4df1-ad7a-449f6796ca09/volumes/kubernetes.io~csi/pvc-82575d2d-2269-4cef-ace8-fa1602f3dd44/mount

Output: mount: /var/lib/kubelet/pods/547bdf64-173b-4df1-ad7a-449f6796ca09/volumes/kubernetes.io~csi/pvc-82575d2d-2269-4cef-ace8-fa1602f3dd44/mount: wrong fs type, bad option, bad superblock on /dev/mapper/uipathstorevg-6d81061d--79c4--46b3--9471--478c6c739b25, missing codepage or helper program, or other error.

El PVC es Bound, el PV parece estar en buen estado y el dispositivo de bloques subyacente es visible con lsblk en el nodo.

Causa: TopoLVM formatea nuevos volúmenes con mkfs.xfs utilizando características en disco (bigtime, inobtcount, nrext64) introducidas en las versiones más recientes de xfsprogs/kernel. El kernel y xfsprogs enviados con RHEL 8.x no pueden montar un volumen XFS creado con estas características, por lo que el montaje falla con wrong fs type, bad option, bad superblock.

Este problema afecta a Automation Suite en Linux (RKE2) que se ejecuta solo en nodos RHEL 8.x; RHEL 9.x y 10.x no se ven afectados.

Solución​

Para solucionar el problema, parchea el DaemonSet topolvm-node para formatear nuevos volúmenes con un contenedor mkfs.xfs que deshabilita las características incompatibles:

  1. Haz una copia de seguridad de la configuración actual de TopoLVM:
    kubectl -n topolvm-system get ds topolvm-node -o yaml > /opt/UiPathAutomationSuite/topolvm-node-ds.yaml
    kubectl -n topolvm-system get all -o yaml > /opt/UiPathAutomationSuite/topolvm-system-all.yaml
    kubectl get storageclass local-volume-provisioner -o yaml > /opt/UiPathAutomationSuite/local-volume-provisioner-sc.yaml
    kubectl -n topolvm-system get configmap -o yaml > /opt/UiPathAutomationSuite/topolvm-system-configmaps.yaml
    kubectl -n topolvm-system get ds topolvm-node -o yaml > /opt/UiPathAutomationSuite/topolvm-node-ds.yaml
    kubectl -n topolvm-system get all -o yaml > /opt/UiPathAutomationSuite/topolvm-system-all.yaml
    kubectl get storageclass local-volume-provisioner -o yaml > /opt/UiPathAutomationSuite/local-volume-provisioner-sc.yaml
    kubectl -n topolvm-system get configmap -o yaml > /opt/UiPathAutomationSuite/topolvm-system-configmaps.yaml
    
  2. Crea un ConfigMap de contenedor que llame a mkfs.xfs con opciones compatibles con RHEL 8.x:
    cat <<'EOF' | kubectl apply -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: mkfs-xfs-wrapper
      namespace: topolvm-system
    data:
      mkfs.xfs: |
        #!/bin/sh
        exec /usr/sbin/mkfs.xfs -m crc=1,rmapbt=0,bigtime=0,inobtcount=0 -i nrext64=0 "$@"
    EOF
    cat <<'EOF' | kubectl apply -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: mkfs-xfs-wrapper
      namespace: topolvm-system
    data:
      mkfs.xfs: |
        #!/bin/sh
        exec /usr/sbin/mkfs.xfs -m crc=1,rmapbt=0,bigtime=0,inobtcount=0 -i nrext64=0 "$@"
    EOF
    
  3. Verifica que se haya creado ConfigMap:
    kubectl -n topolvm-system get configmap mkfs-xfs-wrapper
    kubectl -n topolvm-system get configmap mkfs-xfs-wrapper
    
  4. Parche el DaemonSet topolvm-node para montar el contenedor sobre la ruta binaria mkfs.xfs predeterminada:
    kubectl -n topolvm-system patch ds topolvm-node --type=strategic -p '
    spec:
      template:
        spec:
          containers:
          - name: topolvm-node
            volumeMounts:
            - mountPath: /usr/local/sbin/mkfs.xfs
              name: mkfs-xfs-wrapper
              readOnly: true
              subPath: mkfs.xfs
          volumes:
          - name: mkfs-xfs-wrapper
            configMap:
              name: mkfs-xfs-wrapper
              defaultMode: 493
              items:
              - key: mkfs.xfs
                mode: 493
                path: mkfs.xfs
    '
    kubectl -n topolvm-system patch ds topolvm-node --type=strategic -p '
    spec:
      template:
        spec:
          containers:
          - name: topolvm-node
            volumeMounts:
            - mountPath: /usr/local/sbin/mkfs.xfs
              name: mkfs-xfs-wrapper
              readOnly: true
              subPath: mkfs.xfs
          volumes:
          - name: mkfs-xfs-wrapper
            configMap:
              name: mkfs-xfs-wrapper
              defaultMode: 493
              items:
              - key: mkfs.xfs
                mode: 493
                path: mkfs.xfs
    '
    
  5. Despliega el DaemonSet y confirma que el despliegue se completa:
    kubectl -n topolvm-system rollout status ds/topolvm-node
    kubectl -n topolvm-system rollout status ds/topolvm-node
    
  • Descripción​
  • Solución​

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado