双栈支持
Kubernetes 从 v1.23 版本开始将双栈网络作为稳定特性支持,允许集群同时处理 IPv4 和 IPv6 流量。随着许多云服务提供商也开始提供双栈 Kubernetes 集群,运行支持两种地址类型的服务比以往任何时候都更容易。Istio 在 1.17 版本引入了双栈作为实验性功能,在 1.24 版本提升为 Alpha,并在 1.28 版本提升为 Beta。在双栈模式下,Istio 的服务可以通过 IPv4 和 IPv6 端点进行通信,这有助于组织在保持现有 IPv4 基础设施兼容性的同时,平滑过渡到 IPv6。
当 Kubernetes 配置为双栈时,它会自动为每个 Pod 分配一个 IPv4 和一个 IPv6 地址,使其能够通过两种 IP 协议族进行通信。对于服务,您可以通过 ipFamilyPolicy 设置来控制其行为。
Service.Spec.ipFamilyPolicy 可以取以下值:
SingleStack:服务仅配置一个 IP 协议族,可以是 IPv4 或 IPv6。PreferDualStack:当启用双栈时,服务会分配 IPv4 和 IPv6 两个集群 IP。但如果未启用或不支持双栈,则回退到 singleStack 行为。RequireDualStack:仅当能够分配 IPv4 和 IPv6 地址时,服务才会被创建。
这允许您指定服务类型,为网络配置管理提供灵活性。更多详情,请参阅 Kubernetes 文档。