{"meta":{"title":"Solución de errores de Actions Runner Controller","intro":"Obtén información sobre cómo solucionar errores de Actions Runner Controller.","product":"GitHub Actions","breadcrumbs":[{"href":"/es/enterprise-cloud@latest/actions","title":"GitHub Actions"},{"href":"/es/enterprise-cloud@latest/actions/tutorials","title":"Tutoriales"},{"href":"/es/enterprise-cloud@latest/actions/tutorials/use-actions-runner-controller","title":"Actions Runner Controller"},{"href":"/es/enterprise-cloud@latest/actions/tutorials/use-actions-runner-controller/troubleshoot","title":"Solución de problemas"}],"documentType":"article"},"body":"# Solución de errores de Actions Runner Controller\n\nObtén información sobre cómo solucionar errores de Actions Runner Controller.\n\n## Registro\n\nLos recursos de Actions Runner Controller (ARC), entre los que se incluyen el controlador, el cliente de escucha y los ejecutores, escriben registros en la salida estándar (`stdout`). Te recomendamos que implementes una solución de registro para recopilar y almacenar estos registros. Tener registros disponibles puede ayudarle a usted o al soporte técnico de GitHub con la solución de problemas y la depuración. Para obtener más información, consulta [Arquitectura de registro](https://kubernetes.io/docs/concepts/cluster-administration/logging/) en la documentación de Kubernetes.\n\n## Etiquetas de recursos\n\nSe agregan etiquetas a los recursos que crea Actions Runner Controller, entre los que se incluyen el controlador, el cliente de escucha y los pods del ejecutor. Puedes usar estas etiquetas para filtrar los recursos y como ayuda para solucionar problemas.\n\n### Pod del controlador\n\nLas etiquetas siguientes se aplican al pod del controlador.\n\n```yaml\napp.kubernetes.io/component=controller-manager\napp.kubernetes.io/instance=<controller installation name>\napp.kubernetes.io/name=gha-runner-scale-set-controller\napp.kubernetes.io/part-of=gha-runner-scale-set-controller\napp.kubernetes.io/version=<chart version>\n```\n\n### Pod del cliente de escucha\n\nLas siguientes etiquetas se aplican a los pods de escucha.\n\n```yaml\nactions.github.com/enterprise= # Will be populated if githubConfigUrl is an enterprise URL\nactions.github.com/organization= # Will be populated if githubConfigUrl is an organization URL\nactions.github.com/repository= # Will be populated if githubConfigUrl is a repository URL\nactions.github.com/scale-set-name= # Runners scale set name\nactions.github.com/scale-set-namespace= # Runners namespace\napp.kubernetes.io/component=runner-scale-set-listener\napp.kubernetes.io/part-of=gha-runner-scale-set\napp.kubernetes.io/version= # Chart version\n```\n\n### Runner Pod\n\nLas etiquetas siguientes se aplican a los pods del ejecutor.\n\n```yaml\nactions-ephemeral-runner= # True | False\nactions.github.com/organization= # Will be populated if githubConfigUrl is an organization URL\nactions.github.com/scale-set-name= # Runners scale set name\nactions.github.com/scale-set-namespace= # Runners namespace\napp.kubernetes.io/component=runner\napp.kubernetes.io/part-of=gha-runner-scale-set\napp.kubernetes.io/version= # Chart version\n```\n\n## Comprobación de los registros del controlador y del cliente de escucha del conjunto de ejecutores\n\nPara comprobar los registros del pod del controlador, puedes usar el comando siguiente.\n\n```bash copy\nkubectl logs -n <CONTROLLER_NAMESPACE> -l app.kubernetes.io/name=gha-runner-scale-set-controller\n```\n\nPara comprobar los registros del cliente de escucha del conjunto de ejecutores, puedes usar el comando siguiente.\n\n```bash copy\nkubectl logs -n <CONTROLLER_NAMESPACE> -l auto-scaling-runner-set-namespace=arc-systems -l auto-scaling-runner-set-name=arc-runner-set\n```\n\n## Uso de los gráficos de la rama `master`\n\nTe recomendamos que uses los gráficos de la versión más reciente en lugar de la rama `master`. La rama `master` es muy inestable y no podemos garantizar que los gráficos de la rama `master` funcionen en un momento dado.\n\n## Resolviendo problemas del pod de escucha\n\nSi el pod del controlador se está ejecutando, pero no el pod del cliente de escucha, inspecciona primero los registros del controlador y comprueba si hay errores. Si no hay errores y el pod del cliente de escucha del conjunto de ejecutores todavía no se está ejecutando, asegúrate de que el pod del controlador tenga acceso al servidor de la API de Kubernetes en el clúster.\n\nSi tienes un proxy configurado o si usas un proxy sidecar que se inserta automáticamente, como [Istio](https://istio.io/), asegúrate de que está configurado para permitir el tráfico desde el contenedor del controlador (administrador) al servidor de la API de Kubernetes.\n\nSi has instalado el conjunto de ejecutores de escalado automático, pero no se ha creado el pod del cliente de escucha, comprueba que el valor de `githubConfigSecret` que has proporcionado es correcto, así como el valor de `githubConfigUrl`. Para obtener más información, consulta [Autenticación de ARC en la API de GitHub](/es/enterprise-cloud@latest/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/authenticating-to-the-github-api) y [Implementación de conjuntos de escalado de ejecutor con Actions Runner Controller](/es/enterprise-cloud@latest/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/deploying-runner-scale-sets-with-actions-runner-controller).\n\n## Los pods del ejecutor se vuelven a crear tras una ejecución de flujo de trabajo cancelada\n\nCuando se cancela la ejecución de un flujo de trabajo, se producen los eventos siguientes.\n\n* La señal de cancelación se envía directamente a los ejecutores.\n* La aplicación del ejecutor finaliza, con lo que también finalizan los pods del ejecutor.\n* En el siguiente sondeo, el receptor recibe la señal de cancelación.\n\nPuede haber un ligero retraso entre el momento en que los corredores reciben la señal y el momento en que el oyente la recibe. Cuando los pods del ejecutor empiezan a terminar, el cliente de escucha intenta abrir nuevos ejecutores para que coincidan con el número deseado de ejecutores según el estado en el que se encuentra. Pero cuando el cliente de escucha reciba la señal de cancelación, actuará para reducir el número de ejecutores. Finalmente, el cliente de escucha reducirá el número de ejecutores a la cantidad deseada. Mientras tanto, es posible que veas ejecutores adicionales.\n\n## Error: `Name must have up to n characters`\n\nARC usa los nombres generados de determinados recursos como etiquetas para otros recursos. Debido a este requisito, ARC limita los nombres de los recursos a 63 caracteres.\n\nDado que te corresponde definir una parte del nombre del recurso, ARC impone un límite en el número de caracteres que se pueden usar para el nombre de la instalación y el espacio de nombres.\n\n```bash\nError: INSTALLATION FAILED: execution error at (gha-runner-scale-set/templates/autoscalingrunnerset.yaml:5:5): Name must have up to 45 characters\n\nError: INSTALLATION FAILED: execution error at (gha-runner-scale-set/templates/autoscalingrunnerset.yaml:8:5): Namespace must have up to 63 characters\n```\n\n## Error: `Access to the path /home/runner/_work/_tool is denied`\n\nEs posible que veas este error si usas el modo de Kubernetes con volúmenes persistentes. Este error se produce si el contenedor del runner se ejecuta con un usuario no raíz y provoca un desajuste de permisos con el volumen montado.\n\nPara corregir esto, puedes realizar una de las acciones siguientes.\n\n* Usa un tipo de volumen que admita `securityContext.fsGroup`. Los volúmenes `hostPath` no admiten esta propiedad, mientras que los volúmenes `local` y otros tipos de volúmenes sí la admiten. Actualiza el valor `fsGroup` del pod del ejecutor para que coincida con el GID del ejecutor. Para ello, actualiza los valores del gráfico de Helm `gha-runner-scale-set` para incluir lo siguiente. Reemplaza `VERSION` por la versión de la imagen de contenedor `actions-runner` que quieres usar.\n\n  ```yaml copy\n  template:\n    spec:\n      securityContext:\n        fsGroup: 123\n      containers:\n        - name: runner\n          image: ghcr.io/actions/actions-runner:latest\n          command: [\"/home/runner/run.sh\"]\n  ```\n\n* Si la actualización de `securityContext` del pod del ejecutor no es una solución viable, puedes solucionar el problema mediante el uso de `initContainers` para cambiar la propiedad del volumen montado, como se indica a continuación.\n\n  ```yaml copy\n  template:\n    spec:\n      initContainers:\n        - name: kube-init\n          image: ghcr.io/actions/actions-runner:latest\n          command: [\"sudo\", \"chown\", \"-R\", \"1001:123\", \"/home/runner/_work\"]\n      volumeMounts:\n        - name: work\n          mountPath: /home/runner/_work\n      containers:\n        - name: runner\n          image: ghcr.io/actions/actions-runner:latest\n          command: [\"/home/runner/run.sh\"]\n  ```\n\n## Error: `failed to get access token for GitHub App auth: 401 Unauthorized`\n\nUn error de `401 Unauthorized` al intentar obtener un token de acceso para GitHub App podría ser el resultado de un desfase del Protocolo de tiempo de red (NTP). Asegúrate de que el sistema de Kubernetes se sincronice con precisión con un servidor NTP y que no haya un desfase de tiempo significativo. Hay más margen si la hora del sistema está detrás de la de GitHub, pero si el entorno tiene más de unos segundos de antelación, se producirán errores 401 al usar GitHub App.\n\n## Límites del grupo de ejecutores\n\nPuedes tener hasta 10 000 ejecutores autohospedados en un grupo de ejecutores. Si se alcanza este límite, no será posible agregar más ejecutores.\n\n## Actualizaciones del ejecutor\n\n> \\[!WARNING] Las actualizaciones publicadas para el software, incluidas las versiones principales, secundarias o de revisión, se consideran una actualización disponible. Si no ejecutas una actualización de software en los 30 días posteriores, el servicio de GitHub Actions no pondrá los trabajos en cola para el ejecutor. Adicionalmente, si se requiere una actualización de seguridad crítica, el servicio de las GitHub Actions no pondrá jobs en cola para tu ejecutor sino hasta que este se actualice.\n\nCompruebe que la versión del software del ejecutor o las imágenes de ejecutor personalizadas en uso ejecuten la versión más reciente.\n\nPara más información, consulta [Referencia de ejecutores autohospedados](/es/enterprise-cloud@latest/actions/reference/runners/self-hosted-runners).\n\n## Aviso legal\n\nAlgunas partes se han adaptado a partir de <https://github.com/actions/actions-runner-controller/> con licencia Apache-2.0:\n\n```text\nCopyright 2019 Moto Ishizawa\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```"}