UiPath Documentation
automation-suite
2.2510
true
Guia de instalação do Automation Suite no Linux
Importante :
A tradução automática foi aplicada parcialmente neste conteúdo. A localização de um conteúdo recém-publicado pode levar de 1 a 2 semanas para ficar disponível.

Pods travados no estado Init devido a uma falha de montagem do volume XFS em nós RHEL 8.x

Resolver pods travados no estado Init devido a uma incompatibilidade de formatação do TopoLVM XFS com o RHEL 8.x no Automation Suite.

Description​

Quando um pod que requer um novo volume persistente (por exemplo, um pipeline de treinamento do AI Center) é iniciado em um nó RHEL 8.x, o pod permanece no estado Init com o seguinte erro:

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.

O PVC é Bound, o PV parece íntegro e o dispositivo de bloco subjacente é visível com lsblk no nó.

Causa: o TopoLVM formata novos volumes com mkfs.xfs usando funcionalidades no disco (bigtime, inobtcount, nrext64) introduzidas em xfsprogsversões/kernel mais recentes. O kernel e o xfsprogs fornecidos com o RHEL 8.x não podem montar um volume XFS criado com esses recursos, portanto, a montagem falha com o wrong fs type, bad option, bad superblock.

Esse problema afeta o Automation Suite no Linux (RKE2) executando apenas em nós do RHEL 8.x; O RHEL 9.x e 10.x não são afetados.

Solução​

Para resolver o problema, corrija o DaemonSet topolvm-node para formatar novos volumes com um wrapper mkfs.xfs que desabilita as funcionalidades incompatíveis:

  1. Faça backup da configuração atual do 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. Crie um ConfigMap do wrapper que chame mkfs.xfs com opções compatíveis com 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. Verifique se o ConfigMap foi criado:
    kubectl -n topolvm-system get configmap mkfs-xfs-wrapper
    kubectl -n topolvm-system get configmap mkfs-xfs-wrapper
    
  4. Corrija o topolvm-node DaemonSet para montar o wrapper no mkfs.xfs caminho binário padrão:
    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. Implante o DaemonSet e confirme se a implantação foi concluída:
    kubectl -n topolvm-system rollout status ds/topolvm-node
    kubectl -n topolvm-system rollout status ds/topolvm-node
    
  • Description​
  • Solução​

Esta página foi útil?

Conectar

Precisa de ajuda? Suporte

Quer aprender? Academia UiPath

Tem perguntas? Fórum do UiPath

Fique por dentro das novidades