#!/bin/bash # Script per provar l'accés a NFS des de múltiples pods de Nginx echo "=====================================" echo "PROVA AVANÇADA DE NFS AMB MÚLTIPLES PODS" echo "=====================================" # Crear un fitxer basat en una marca de temps a l'NFS compartit TIMESTAMP=$(date +%s) TEST_CONTENT="Test file created at $(date). Random ID: $TIMESTAMP" # Obtenir el nom del primer pod FIRST_POD=$(kubectl get pods -l app=nginx-nfs -o jsonpath='{.items[0].metadata.name}') # Crear el fitxer de prova des del primer pod echo "Creant un fitxer de prova únic des del pod $FIRST_POD..." kubectl exec -it $FIRST_POD -- bash -c "echo '$TEST_CONTENT' > /usr/share/nginx/html/test-$TIMESTAMP.html" # Obtenir el NodePort NODE_PORT=$(kubectl get service nginx-nfs-service -o jsonpath='{.spec.ports[0].nodePort}') NODE_IP=$(kubectl get nodes -o jsonpath='{.items[0].status.addresses[?(@.type=="InternalIP")].address}') # Provar l'accés des de múltiples pods escalant el desplegament echo "Escalant el desplegament a 4 rèpliques per provar múltiples contenidors..." kubectl scale deployment nginx-nfs --replicas=4 sleep 10 # Obtenir tots els pods PODS=$(kubectl get pods -l app=nginx-nfs -o jsonpath='{.items[*].metadata.name}') echo -e "\nVerificant que tots els pods poden veure el mateix fitxer:" for POD in $PODS; do echo -e "\nPod: $POD" kubectl exec -it $POD -- ls -l /usr/share/nginx/html/test-$TIMESTAMP.html done # Accedir al fitxer a través del servei diverses vegades echo -e "\nAccedint al fitxer a través de diferents pods mitjançant el Servei:" for i in {1..10}; do echo -e "\nPetició $i:" curl -s http://$NODE_IP:$NODE_PORT/test-$TIMESTAMP.html echo "" done echo -e "\nProva completada. Tots els contenidors Nginx mostren el mateix contingut NFS." # Tornar al nombre original de rèpliques (2) echo "Tornant al nombre original de rèpliques..." kubectl scale deployment nginx-nfs --replicas=2