Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

484
Vistas
La configuración del montaje del volumen de Kubernetes falló en la verificación de tipo

No puedo implementar una aplicación en kubernetes, este es el yaml de implementación.

 apiVersion: apps/v1 kind: Deployment metadata: name: test labels: app: test spec: replicas: 1 selector: matchLabels: app: test template: metadata: labels: app: test spec: containers: - name: test image: openjdk:14 ports: - containerPort: 8080 volumeMounts: - name: testing mountPath: "/usr/src/myapp/docker.jar" workingDir: "/usr/src/myapp" command: ["java"] args: ["-jar", "docker.jar"] volumes: - hostPath: path: /home/user/docker.jar type: File name: testing

Este es el error que recibo, y puedo verificar que el archivo existe y en esta carpeta. Intenté eliminar el tipo pero solo carga un directorio vacío, parece que no reconoce que el archivo existe.

 MountVolume.SetUp failed for volume "testing" : hostPath type check failed: /home/user/docker.jar is not a file
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Cuando inicia minikube con el controlador docker predeterminado, está creando Docker VM dentro de su máquina.

Fondo

Cuando está usando su VM, su terminal se ve así:

 user@nameofyourhost:~$

Pero si va a ssh a su terminal Minikube VM se ve a continuación:

 docker@minikube:~$

En HostPath tienes información:

Un volumen hostPath monta un archivo o directorio desde el sistema de archivos del nodo host en su Pod.

En minikube , cuando usa hostPath , el nodo no se considera su machine sino la Minikube VM que se creó durante minikube start

Pruebas

Como no tengo exactamente sus archivos, he usado nginx . Recuerde que debe tener los permisos adecuados para los directorios que desea montar. He usado tmp como en nginx , este directorio tiene acceso completo para todos.

 apiVersion: apps/v1 kind: Deployment metadata: name: test labels: app: test spec: replicas: 1 selector: matchLabels: app: test template: metadata: labels: app: test spec: containers: - name: test image: nginx ports: - containerPort: 8080 volumeMounts: - name: testing mountPath: "/tmp/docker.jar" #this is path to the file volumes: - hostPath: path: <path to docker.jar file> #should be on Minikube VM type: File name: testing

Cuando crea docker.jar en VM.

 user@nameOfMyVM:~$ pwd /home/user user@nameOfMyVM:~$ ls docker.jar

Cuando hostpath.path a /home/user/docker.jar , devolverá una advertencia

 Warning FailedMount 4s (x4 over 7s) kubelet MountVolume.SetUp failed for volume "testing" : hostPath type check failed: /home/sekreta/docker.jar is not a file`

Como Kubernetes no encontró este archivo.

Pero cuando creará este archivo dentro de Minikube VM

 $ minikube ssh docker@minikube:~$ pwd /home/docker docker@minikube:~$ ls docker.jar

y se creará el cambio en la implementación hostPath.path a /home/docker/docker.jar pod.

 $ kubectl get po NAME READY STATUS RESTARTS AGE test-c68d959c6-kb275 1/1 Running 0 13s

El archivo se puede encontrar en el directorio establecido en YAML, que es tmp .

 $ kubectl exec -ti test-c68d959c6-kb275 -- bin/bash root@test-c68d959c6-kb275:/# cd /tmp root@test-c68d959c6-kb275:/tmp# ls docker.jar

Conclusión

Cuando utiliza HostPath en Minikube , debe recordar que el sistema de filesystem no es su Machine sino Minikube VM que se creó durante minikube start .

over 4 years ago · Santiago Trujillo Denunciar

0

Si se ejecuta en un sistema de varios nodos, asegúrese de que se pueda acceder a la ruta del host en el nodo en el que se implementaron los pods.

También encontré este problema muy similar en la configuración de un nodo maestro y de un trabajador usando el gráfico de timón.

Helm implementó todos los pods en el nodo de trabajo y no se podía acceder a hostPath desde el nodo de trabajo, aunque la implementación se realiza desde el nodo principal. Copiar y verificar hostpath en el nodo trabajador resuelto es un tipo de error para mí.

over 4 years ago · Santiago Trujillo Denunciar

0

Si verificó que el archivo/directorio existe en la VM de Minikube ( minikube ssh ls -la /home/user ), entonces no está implementando en el contexto de minikube k8s como esperaba .

Verifique cuál es su contexto utilizado actualmente, con kubectx --current .

Luego configure el Minikube a través kubectx minikube o kubectl use-context minikube .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda