3.1 KiB
3.1 KiB
Nginx-NodePort Deployment Validation Guide
This document provides step-by-step deployment and validation procedures for the nginx-nodeport implementation.
🚀 Deployment Instructions
Prerequisites
- Kubernetes cluster access (kubectl configured)
- Mycelium Cloud environment with IPv6 support
- bash shell for running test scripts
Step-by-Step Deployment
# 1. Navigate to the nginx-nodeport directory
cd myceliumcloud-examples/examples/nginx-nodeport
# 2. Deploy the ConfigMaps (content and nginx configuration)
kubectl apply -f nginx-nodeport-configmaps.yaml
# 3. Deploy the nginx application (secure pod deployment)
kubectl apply -f nginx-nodeport-deployment.yaml
# 4. Create the NodePort service
kubectl apply -f nginx-nodeport-service.yaml
# 5. Wait for deployment to be ready
kubectl wait --for=condition=ready pod -l app=nginx-nodeport --timeout=60s
# 6. Verify deployment
kubectl get all -l app=nginx-nodeport
🔍 Validation Procedures
1. Basic Functionality Tests
# Test pod health
kubectl get pods -l app=nginx-nodeport
kubectl describe pod -l app=nginx-nodeport
# Test nginx configuration
POD_NAME=$(kubectl get pods -l app=nginx-nodeport -o name | head -1)
kubectl exec $POD_NAME -- nginx -t
# Test health endpoint
kubectl exec $POD_NAME -- curl -s http://localhost:8080/health
# Expected: "healthy"
2. IPv6 Accessibility Tests
# Get node IPv6 address (IPv4 + IPv6 extraction issue fix)
NODE_IPV6=$(kubectl get nodes -o jsonpath='{range .items[0].status.addresses[?(@.type=="InternalIP")]}{.address}{"\n"}{end}' | grep -E '^[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+$' | head -1)
# Test external IPv6 connectivity
curl -6 "http://[$NODE_IPV6]:30091/"
curl -6 "http://[$NODE_IPV6]:30091/health"
# Verify website displays correctly
curl -6 "http://[$NODE_IPV6]:30091/" | grep -i "nodeport secure"
# Expected: Should find "NODEPORT SECURE" text
3. Automated Testing
# Run the comprehensive test script
./test-nodeport-ipv6.sh
# Expected output:
# ✅ Connected to Kubernetes cluster
# ✅ nginx-nodeport deployment found
# ✅ nginx-nodeport pods are ready
# ✅ nginx configuration is valid
# ✅ Health endpoint is working
# ✅ NodePort service is configured
# ✅ NodePort: 30091
# ✅ Node IPv6 address: [YOUR_IPV6]
# ✅ External IPv6 connectivity is working!
🎯 Success Criteria
Primary Success Indicators
- Pod Status: kubectl get pods shows nginx-nodeport pod in "Running" status
- Service Status: kubectl get svc shows nginx-nodeport-service with NodePort 30091
- Health Endpoint: curl -6 "http://[$NODE_IPV6]:30091/health" returns "healthy"
- Website Access: curl -6 "http://[$NODE_IPV6]:30091" returns HTML with "NODEPORT SECURE"
- IPv6 Connectivity: External IPv6 access works from outside the cluster
- nginx Logs: kubectl logs deployment/nginx-nodeport shows access logs
Your website will be accessible at: http://[YOUR-NODE-IPV6]:30091
Success indicator: Website displays "NODEPORT SECURE" and "ENHANCED SECURITY" badges with professional styling and IPv6 address detection.