GKE中Kubernetes服务无法配置IPv6负载均衡IP求助
GKE IPv6 LoadBalancer 部署错误排查
问题详情
Service 配置(service.yaml)
apiVersion: v1 kind: Service metadata: annotations: cloud.google.com/neg: '{"ingress":true}' labels: run: ubuntu name: ubuntu namespace: default spec: loadBalancerIP: "<ipv6-address>" ipFamilies: - IPv6 ipFamilyPolicy: SingleStack ports: - nodePort: 30783 port: 5000 protocol: TCP targetPort: 5001 selector: run: ubuntu sessionAffinity: None type: LoadBalancer
预留的IPv6地址信息
deletable-pzk-reg-ip2-6 <ipv6-address>/96 EXTERNAL us-central1 pzksubnet1 RESERVED
部署错误提示
Warning SyncLoadBalancerFailed 13s (x6 over 2m49s) service-controller Error syncing load balancer: failed to ensure load balancer: requested ip "<ipv6-address>" is neither static nor assigned to the LB
排查与解决步骤
确认IPv6地址类型:GKE的IPv6 LoadBalancer仅支持全局静态外部IPv6地址,你当前的地址是区域级(us-central1)的静态IP,不符合要求。运行以下命令验证地址类型:
gcloud compute addresses describe deletable-pzk-reg-ip2-6 --region=us-central1若输出显示为区域级地址,重新创建全局IPv6地址:
gcloud compute addresses create ipv6-global-static --ip-version=IPV6 --global检查地址占用状态:确保该IPv6地址未被其他资源绑定,运行以下命令确认状态:
gcloud compute addresses list --filter="<ipv6-address>"需保证
STATUS列显示为RESERVED,而非IN_USE。修正Service配置:
- 将
loadBalancerIP替换为新创建的全局IPv6地址 - 若无需固定nodePort,建议删除
nodePort: 30783字段,让Kubernetes自动分配 - 验证集群IPv6配置:运行
gcloud container clusters describe <cluster-name> --zone=<zone>,检查ipAllocationPolicy.ipv6AccessType是否为EXTERNAL
- 将
重新部署并验证:
kubectl delete service ubuntu kubectl apply -f service.yaml kubectl describe service ubuntu观察事件日志,确认错误是否消除。
内容的提问来源于stack exchange,提问作者pzk
相关产品推荐
相关产品推荐

