Troubleshooting

If the pods are not starting:

shell
# Check pod logs for specific issues
kubectl logs -n log [pod name]

# Check events for scheduling issues
kubectl get events -n log --sort-by='.lastTimestamp'

If ingress has no external IP:

shell
# Check load balancer service status
kubectl describe svc -n log-ingress

# Verify Azure load balancer creation in Azure portal
# This can take 5-10 minutes in some regions

If SSL certificate is not ready:

shell
# Check cert-manager logs
kubectl logs -n log-cert -l app=cert-manager

# Check certificate request status
kubectl describe certificaterequest -n log

If LogScale UI is not accessible:

  1. Verify all pods are running:

    shell
    kubectl get pods -n log
  2. Check service endpoints:

    shell
    kubectl get endpoints -n log
  3. Verify ingress rules:

    shell
    kubectl describe ingress -n log
  4. Check firewall rules allow your IP in ip_ranges_allowed_https.

Deployment Order Issues

Always deploy Azure infrastructure first, then configure kubectl, then LogScale components:

shell
# Correct order - Infrastructure first
terraform apply -target="module.azure-core" -target="module.azure-keyvault" -target="module.azure-kubernetes" -target="module.logscale-storage-account"

# Configure kubectl automatically
terraform apply -target="null_resource.kubeconfig_setup"

# Then deploy CRDs and LogScale components step by step
terraform apply -target="module.logscale.module.crds"
# ... continue with remaining steps

This command will:

  1. Deploy the complete Azure infrastructure (AKS cluster, storage, Key Vault)

  2. Configure kubectl automatically using Terraform

  3. Install all required Kubernetes Custom Resource Definitions

  4. Prepare the cluster for LogScale component deployment

Important

Each terraform apply command will prompt for confirmation before making changes. Review the plan carefully and type yes when ready to proceed.

Timeout Issues

If nginx ingress or other Helm deployments timeout:

  • Monitor LoadBalancer creation:

    shell
    kubectl get svc -n log-ingress -w
  • Azure LoadBalancer provisioning can take 5-10 minutes

  • Retry deployment once LoadBalancer is ready

Troubleshooting Specific to Advanced Architecture

Some notes on troubleshooting the advanced architecture type:

  • Node Affinity: Pods are strictly scheduled to appropriate node pools via k8s-app labels

  • Resource Constraints: Each node pool has specific resource limits and requests

  • Network Isolation: Components communicate through specific subnet and security group rules

  • Storage Classes: TopoLVM requires NVMe-capable node types for local storage