So, you've run out of ipv4 addresses and want to start running kubernetes with ipv6. Anyway, for whatever reason you chose contour as the ingress controller. You apply the manifests and...
1» k get pod
2NAME READY STATUS RESTARTS AGE
3contour-758d8f4c8-srjbh 0/1 Running 0 10m
4envoy-ltz64 1/2 Running 0 10m
What could possibly have gone wrong?
1» k describe pod contour-758d8f4c8-srjbh
2...
3Events:
4 ...
5 Warning Unhealthy 3s (x61 over 10m) kubelet Readiness probe failed: dial tcp [fd00:10:244::d]:8001: connect: connection refused
6
7» k describe pod envoy-ltz64
8...
9Events:
10 ...
11 Warning Unhealthy 2m4s (x13 over 2m52s) kubelet Readiness probe failed: Get "http://[fd00:10:244::c]:8002/ready": dial tcp [fd00:10:244::c]:8002: connect: connection refused
connection refused, so the pods aren't listening on the correct addresses?
Anyway the docs don't mention anything about ipv6 yet,
but looking at the configuration,
lets just set all the --xxx-address=
flags to ::
so we're sure it works on ipv6.
Note all the ""
quoting because... yaml.
1 containers:
2 - args:
3 - serve
4 - --incluster
5 - "--xds-address=::"
6 - "--stats-address=::"
7 - "--debug-http-address=::"
8 - "--http-address=::"
9 - "--health-address=::"
10 - "--envoy-service-http-address=::"
11 - "--envoy-service-https-address=::"
12 ...
13---
14 - args:
15 - bootstrap
16 - /config/envoy.json
17 - "--admin-address=::"
18
So this works.
Anyway, after asking in slack, this is confirmed to be more or less the changes needed.