前提
k8s集群开启双栈。
部署1.17以上版本的istio,如果低于1.17,需要升级。
开启双栈实验特性
istioctl19 install --set revision=1-19-1 -y -f - <<EOF
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
meshConfig:
defaultConfig:
proxyMetadata:
ISTIO_DUAL_STACK: "true"
values:
pilot:
env:
ISTIO_DUAL_STACK: "true"
EOF
配置gateway svc为双栈
ipFamilies:
- IPv6
- IPv4
ipFamilyPolicy: RequireDualStack
ipFamilies配置中,ipv4和ipv6先后关系决定了svc默认走是ipv4还是ipv6。不管默认是哪种,总体而言,ipv4和ipv6都能访问到服务。
如果不指定ipFamilies,只配置ipFamilyPolicy: RequireDualStack,也可以达到开启双栈的目的,默认走ipv4还是ipv6与k8s集群的情况是一致的。
如果其他服务,如java等服务也要配置为双栈的话,使用同样的方式即可。
参考文档
https://istio.io/latest/zh/blog/2023/experimental-dual-stack/