Solución de problemas de implementación del clúster - AWS ParallelCluster

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Solución de problemas de implementación del clúster

Si el clúster no se crea y revierte la creación de la pila, puede revisar los archivos de registro para diagnosticar el problema. El mensaje de error debe ser similar al siguiente:

$ pcluster create-cluster --cluster-name mycluster --region eu-west-1 \ --cluster-configuration cluster-config.yaml { "cluster": { "clusterName": "mycluster", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:eu-west-1:xxx:stack/mycluster/1bf6e7c0-0f01-11ec-a3b9-024fcc6f3387", "region": "eu-west-1", "version": "3.7.0", "clusterStatus": "CREATE_IN_PROGRESS" } } $ pcluster describe-cluster --cluster-name mycluster --region eu-west-1 { "creationTime": "2021-09-06T11:03:47.696Z", ... "cloudFormationStackStatus": "ROLLBACK_IN_PROGRESS", "clusterName": "mycluster", "computeFleetStatus": "UNKNOWN", "cloudformationStackArn": "arn:aws:cloudformation:eu-west-1:xxx:stack/mycluster/1bf6e7c0-0f01-11ec-a3b9-024fcc6f3387", "lastUpdatedTime": "2021-09-06T11:03:47.696Z", "region": "eu-west-1", "clusterStatus": "CREATE_FAILED" }

Vea AWS CloudFormation los eventos en CREATE_FAILED

Puede utilizar la consola o la AWS ParallelCluster CLI para ver los CloudFormation eventos relacionados con los CREATE_FAILED errores y así encontrar la causa raíz.

Vea los eventos en la CloudFormation consola

Para obtener más información sobre la causa del "CREATE_FAILED" estado, puedes usar la CloudFormation consola.

Consulta los mensajes de CloudFormation error de la consola.
  1. Inicie sesión en https://console.aws.amazon.com/cloudformation AWS Management Console y navegue hasta él.

  2. Seleccione la pila denominada cluster_name.

  3. Seleccione la pestaña Eventos.

  4. Compruebe el estado del recurso que no se pudo crear desplazándose por la lista de eventos del recurso por identificador lógico. Si no se pudo crear una subtarea, retroceda para encontrar el evento de recurso fallido.

  5. Por ejemplo, si ves el siguiente mensaje de estado, debes usar tipos de instancias que no superen tu CPU límite v actual o solicitar más CPU capacidad de v.

    2022-02-04 16:09:44 UTC-0800 HeadNode CREATE_FAILED You have requested more vCPU capacity than your current vCPU limit of 0 allows for the instance bucket that the specified instance type belongs to. Please visit http://aws.amazon.com/contact-us/ec2-request to request an adjustment to this limit. (Service: AmazonEC2; Status Code: 400; Error Code: VcpuLimitExceeded; Request ID: a9876543-b321-c765-d432-dcba98766789; Proxy: null).

CLIUtilízalo para ver y filtrar CloudFormation los eventos CREATE_FAILED

Para diagnosticar el problema de creación del clúster, puede usar el pcluster get-cluster-stack-events comando filtrando por CREATE_FAILED estado. Para obtener más información, consulte Filtrar los AWS CLI resultados en la Guía del AWS Command Line Interface usuario.

$ pcluster get-cluster-stack-events --cluster-name mycluster --region eu-west-1 \ --query 'events[?resourceStatus==`CREATE_FAILED`]' [ { "eventId": "3ccdedd0-0f03-11ec-8c06-02c352fe2ef9", "physicalResourceId": "arn:aws:cloudformation:eu-west-1:xxx:stack/mycluster/1bf6e7c0-0f02-11ec-a3b9-024fcc6f3387", "resourceStatus": "CREATE_FAILED", "resourceStatusReason": "The following resource(s) failed to create: [HeadNode]. ", "stackId": "arn:aws:cloudformation:eu-west-1:xxx:stack/mycluster/1bf6e7c0-0f02-11ec-a3b9-024fcc6f3387", "stackName": "mycluster", "logicalResourceId": "mycluster", "resourceType": "AWS::CloudFormation::Stack", "timestamp": "2021-09-06T11:11:51.780Z" }, { "eventId": "HeadNode-CREATE_FAILED-2021-09-06T11:11:50.127Z", "physicalResourceId": "i-04e91cc1f4ea796fe", "resourceStatus": "CREATE_FAILED", "resourceStatusReason": "Received FAILURE signal with UniqueId i-04e91cc1f4ea796fe", "resourceProperties": "{\"LaunchTemplate\":{\"Version\":\"1\",\"LaunchTemplateId\":\"lt-057d2b1e687f05a62\"}}", "stackId": "arn:aws:cloudformation:eu-west-1:xxx:stack/mycluster/1bf6e7c0-0f02-11ec-a3b9-024fcc6f3387", "stackName": "mycluster", "logicalResourceId": "HeadNode", "resourceType": "AWS::EC2::Instance", "timestamp": "2021-09-06T11:11:50.127Z" } ]

En el ejemplo anterior, el error se produjo en la configuración del nodo principal.

Utilice el CLI para ver los flujos de registro

Para solucionar este tipo de problemas, puede enumerar los flujos de registro disponibles en el nodo principal pcluster list-cluster-log-streams filtrando node-type y analizando el contenido de los flujos de registro.

$ pcluster list-cluster-log-streams --cluster-name mycluster --region eu-west-1 \ --filters 'Name=node-type,Values=HeadNode' { "logStreams": [ { "logStreamArn": "arn:aws:logs:eu-west-1:xxx:log-group:/aws/parallelcluster/mycluster-202109061103:log-stream:ip-10-0-0-13.i-04e91cc1f4ea796fe.cfn-init", "logStreamName": "ip-10-0-0-13.i-04e91cc1f4ea796fe.cfn-init", ... }, { "logStreamArn": "arn:aws:logs:eu-west-1:xxx:log-group:/aws/parallelcluster/mycluster-202109061103:log-stream:ip-10-0-0-13.i-04e91cc1f4ea796fe.chef-client", "logStreamName": "ip-10-0-0-13.i-04e91cc1f4ea796fe.chef-client", ... }, { "logStreamArn": "arn:aws:logs:eu-west-1:xxx:log-group:/aws/parallelcluster/mycluster-202109061103:log-stream:ip-10-0-0-13.i-04e91cc1f4ea796fe.cloud-init", "logStreamName": "ip-10-0-0-13.i-04e91cc1f4ea796fe.cloud-init", ... }, ... ] }

Los dos flujos de registro principales que puede utilizar para buscar errores de inicialización son los siguientes:

  • cfn-init es el registro del script cfn-init. En primer lugar, compruebe este flujo de registro. Es probable que veas el Command chef failed error en este registro. Consulte las líneas inmediatamente anteriores a esta línea para obtener información más específica relacionada con el mensaje de error. Para obtener más información, consulte cfn-init.

  • cloud-init es el registro de cloud-init. Si no ve nada en cfn-init, intente revisar este registro a continuación.

Para recuperar el contenido del flujo de registro, utilice las siguientes opciones pcluster get-cluster-log-events (tenga en cuenta la --limit 5 opción para limitar el número de eventos recuperados):

$ pcluster get-cluster-log-events --cluster-name mycluster \ --region eu-west-1 --log-stream-name ip-10-0-0-13.i-04e91cc1f4ea796fe.cfn-init \ --limit 5 { "nextToken": "f/36370880979637159565202782352491087067973952362220945409/s", "prevToken": "b/36370880752972385367337528725601470541902663176996585497/s", "events": [ { "message": "2021-09-06 11:11:39,049 [ERROR] Unhandled exception during build: Command runpostinstall failed", "timestamp": "2021-09-06T11:11:39.049Z" }, { "message": "Traceback (most recent call last):\n File \"/opt/aws/bin/cfn-init\", line 176, in <module>\n worklog.build(metadata, configSets)\n File \"/usr/lib/python3.7/site-packages/cfnbootstrap/construction.py\", line 135, in build\n Contractor(metadata).build(configSets, self)\n File \"/usr/lib/python3.7/site-packages/cfnbootstrap/construction.py\", line 561, in build\n self.run_config(config, worklog)\n File \"/usr/lib/python3.7/site-packages/cfnbootstrap/construction.py\", line 573, in run_config\n CloudFormationCarpenter(config, self._auth_config).build(worklog)\n File \"/usr/lib/python3.7/site-packages/cfnbootstrap/construction.py\", line 273, in build\n self._config.commands)\n File \"/usr/lib/python3.7/site-packages/cfnbootstrap/command_tool.py\", line 127, in apply\n raise ToolError(u\"Command %s failed\" % name)", "timestamp": "2021-09-06T11:11:39.049Z" }, { "message": "cfnbootstrap.construction_errors.ToolError: Command runpostinstall failed", "timestamp": "2021-09-06T11:11:39.049Z" }, { "message": "2021-09-06 11:11:49,212 [DEBUG] CloudFormation client initialized with endpoint https://cloudformation.eu-west-1.amazonaws.com", "timestamp": "2021-09-06T11:11:49.212Z" }, { "message": "2021-09-06 11:11:49,213 [DEBUG] Signaling resource HeadNode in stack mycluster with unique ID i-04e91cc1f4ea796fe and status FAILURE", "timestamp": "2021-09-06T11:11:49.213Z" } ] }

En el ejemplo anterior, el error se debe a un runpostinstall error, por lo que está estrictamente relacionado con el contenido del script de arranque personalizado utilizado en el parámetro de OnNodeConfigured configuración delCustomActions.

Vuelva a crear el clúster fallido con rollback-on-failure

AWS ParallelCluster crea flujos de CloudWatch registro de clústeres en grupos de registros. Puede ver estos registros en los paneles personalizados de la CloudWatch consola o en los grupos de registros. Para obtener más información, consulte Integración con Amazon CloudWatch Logs y CloudWatch Panel de control de Amazon. Si no hay flujos de registro disponibles, el error puede deberse al script de arranque CustomActions personalizado o a un problema AMI relacionado. Para diagnosticar el problema de creación en este caso, vuelva a crear el clúster utilizandopcluster create-cluster, incluido el --rollback-on-failure parámetro establecido en. false A continuación, SSH utilícelo para ver el clúster, como se muestra a continuación:

$ pcluster create-cluster --cluster-name mycluster --region eu-west-1 \ --cluster-configuration cluster-config.yaml --rollback-on-failure false { "cluster": { "clusterName": "mycluster", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:eu-west-1:xxx:stack/mycluster/1bf6e7c0-0f01-11ec-a3b9-024fcc6f3387", "region": "eu-west-1", "version": "3.7.0", "clusterStatus": "CREATE_IN_PROGRESS" } } $ pcluster ssh --cluster-name mycluster

Una vez que haya iniciado sesión en el nodo principal, encontrará tres archivos de registro principales que podrá usar para encontrar el error.

  • /var/log/cfn-init.log es el registro del script cfn-init. Compruebe primero este registro. Es probable que veas un error como Command chef failed el de este registro. Consulte las líneas inmediatamente anteriores a esta línea para obtener información más específica relacionada con el mensaje de error. Para obtener más información, consulte cfn-init.

  • /var/log/cloud-init.log es el registro de cloud-init. Si no ve nada en cfn-init.log, intente revisar este registro a continuación.

  • /var/log/cloud-init-output.log es el resultado de los comandos ejecutados por cloud-init. Esto incluye el resultado de cfn-init. En la mayoría de los casos, no es necesario consultar este registro para solucionar problemas de este tipo.