在 GCP 中使用公共 ipv6 ip 对双堆栈 Kuberentes 服务进行外部访问,而无需负载均衡器

External access to dualstack Kuberentes service with public ipv6 ip without load balancer in GCP

提问人:Chandan Pasunoori 提问时间:10/30/2023 最后编辑:Chandan Pasunoori 更新时间:11/7/2023 访问量:195

问:

我在 Google Cloud 中创建了一个双栈 GKE 集群,使用 RequireDualStack 部署了一个示例 Nginx 部署和服务,并创建了一个防火墙规则以允许所有 IPv6 流量流向所有内容。::0/0

节点/Pod IP 范围:(公有/主范围)2600:1900:0:1::/64

服务 IP 范围:(Google 专用地址范围)。2600:2D00:0:4::0:0/64

如何从主范围而不是 Google 私有地址范围分配服务 ip,以便它可以在不使用 LoadBalancer/Ingress/Gateway/NodePort 的情况下从公共网络连接?

谷歌云平台 google-kubernetes-engine IPv6

评论

0赞 Sai Chandra Gadde 11/6/2023
你有时间检查我的答案吗?它帮助你解决了你的问题?如果没有,我很乐意进一步提供帮助。
0赞 Chandan Pasunoori 11/7/2023
@SaiChandraGadde更新了问题以反映无效声明,更新了 cloud.google.com/kubernetes-engine/docs/concepts/ 的详细信息......

答:

0赞 Sai Chandra Gadde 10/30/2023 #1

请尝试以下故障排除步骤来访问集群外部的服务,这可能有助于解决您的问题:

  • 确保群集运行及更高版本 (GA)。 仅包含 L4 DualStack 的预览版,其中不包括 IPv6 静态 IP、标准层网络、自定义 IPv6 子网。GKE version 1.281.26+ GKE

  • 请注意,不支持将 IPv6 作为 Pod 或节点的单栈 IPv6。

  • 注意:对于 nodeport 服务,您可以使用 ClusterIP 地址(内部)和端口字段或节点 IP 地址(外部)和 nodePort 字段向 GKE 服务发送请求。每个节点外部 IP 地址都可用于访问服务。
  • 使用以下命令检查防火墙规则是否正确配置:

    gcloud alpha compute firewall-rules describe <firewall name\>

    请注意,源范围与 subnetIpv6CidrBlock 相同。目标标签是 GKE 节点上的标签

  • 使用以下命令验证是否已正确分配节点的 IPv6 地址,验证节点是否已正确分配 Pod 的 IPv6 地址:

    kubectl get nodes <node-name\> -o go-template --template='{{range .status.addresses}}{{printf "%s: %s\\n" .type .address}}{{end}}'

    kubectl get nodes <node-name\> -o go-template --template='{{range .spec.podCIDRs}}{{printf "%s\\n" .}}{{end}}'

如果上述步骤无法解决您的问题,请尝试使用服务类型 loadbalancer

附上故障排除文档以供参考。

评论

0赞 Chandan Pasunoori 10/31/2023
Pod 和节点 IP 由 subnetIpv6CidrBlock 分配,能够从公网连接,但服务 IP 由 servicesIpv6CidrBlock 分配,无法从公网连接 GKE 版本为 1.27.6-gke.1506000
0赞 Sai Chandra Gadde 10/31/2023
您能否确认您正在使用 .您可以使用负载均衡器转发每个文档的流量,也可以部署 GKE Ingress 将服务公开为 NodePort,其中 GKE Ingress 为您提供 L7 LB 并提供容器原生负载均衡NODE\_IP\_ADDRESS:NODE\_PORT
0赞 Chandan Pasunoori 10/31/2023
使用负载均衡器、pod IP 或节点端口不是问题陈述,它们工作绝对正常,我的要求是从公共网络直接从服务 IPv6 访问应用程序
0赞 Sai Chandra Gadde 11/2/2023
使用 GKE 的双栈网络具有以下限制。你能验证这些,让我知道每一点都得到满足吗?
0赞 Chandan Pasunoori 11/7/2023
感谢您的链接,根据架构 GCP 为 google 专用地址范围保留 2600:2D00:0:4::0:0/64 范围,我必须更正有关服务 IP 范围的问题,但是有没有办法从主要范围保留服务 IP?