Skip to content

Add IPv6 listener to nginx to fix Istio health check failures - #2

Merged
rockythorn merged 1 commit into
mainfrom
fix/nginx-ipv6-listen
May 28, 2026
Merged

rockythorn merged 1 commit into
mainfrom
fix/nginx-ipv6-listen

Conversation

@rockythorn

Copy link
Copy Markdown
Collaborator

Summary

Add listen [::]:8086 to the nginx config so it accepts connections on both IPv4 and IPv6.

Problem

Pods in the apollo-frontend namespace are assigned IPv6 addresses (e.g., 2600:1f16:f2f:a006:2492::3). The Istio sidecar performs health checks against the pod's IP address, which means it probes nginx over IPv6. With only listen 8086 (IPv4), nginx doesn't bind to the IPv6 address, and the sidecar gets connection refused:

Request to probe app failed: Get "http://[2600:1f16:f2f:a006:2492::3]:8086/_/healthz":
  dial tcp [::6]:0->[2600:1f16:f2f:a006:2492::3]:8086: connect: connection refused,
  original URL path = /app-health/errata-frontend/readyz

This causes the pod to show 1/2 READY and eventually enter CrashLoopBackOff — the nginx container is healthy but the Istio sidecar reports the app as unreachable.

This is the same issue affecting the old apollo-frontend-deployment pods in the namespace.

Fix

listen 8086;
listen [::]:8086;

Nginx will now accept connections on both IPv4 and IPv6, allowing the Istio sidecar health checks to succeed.

@rockythorn
rockythorn merged commit cb17c0e into main May 28, 2026
1 check passed
@rockythorn
rockythorn deleted the fix/nginx-ipv6-listen branch May 28, 2026 17:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants