在本部分中,我们将验证从 IPv4客户端 到IPv6 EKS 集群上的应用程序的连接。
ALB启用了dual stack模式,它允许 IPv4 和 IPv6 客户端进行连接。
获取上一步的ALB DNS地址,在浏览器中访问:
验证ALB是否可以解析为 A 和 AAAA DNS 记录:
$ dig k8s-game2048-ingress2-xxxxxxxxx-yyyyyyyyyy.us-west-2.elb.amazonaws.com +short
$ dig k8s-game2048-ingress2-xxxxxxxxx-yyyyyyyyyy.us-west-2.elb.amazonaws.com AAAA +short
在本部分中,我们将验证从 EKS Pod 到 Internet 上的 IPv4 / IPv6 的连接。
运行以下命令创建一个新的 pod,该 pod 允许执行 curl 命令并打开 pod 的 shell 终端。
kubectl run mycurlpod --image=curlimages/curl -i --tty -- sh
在 Pod 终端上,运行以下命令来测试与 Internet 上的 IPv4 公共端点的连接:
curl 'https://api.ipify.org?format=json'
预期回应:
kongpingfan:~/environment/eksctl $ kubectl run mycurlpod --image=curlimages/curl -i --tty -- sh
If you don't see a command prompt, try pressing enter.
~ $ curl 'https://api.ipify.org?format=json'
{"ip":"54.202.37.175"}~ $
通过Pod所在实例的NAT,IPv6 Pod可以与IPv4的地址进行访问
这个返回的IP实际上是Pod所在EC2的IP:
Pod与外界公网交流时,用的是自己的IPv6地址,它是走IGW或EIGW(egress only)
出去的
上面两个url:
api.ipify.org
ip.gs
一个走ipv4,另一个走ipv6, 这是因为两个URL对IPv6的支持不一样: