Black lives matter.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
Kubernetes v1.16 [alpha]
IPv4/IPv6 双协议栈能够将 IPv4 和 IPv6 地址分配给 PodsPod 是 Kubernetes 的原子对象。Pod 表示您的集群上一组正在运行的容器。 和 Services将运行在一组 {{< glossary_tooltip text="Pods" term_id="pod" >}} 上的应用程序公开为网络服务的抽象方法。 。
如果你为 Kubernetes 集群启用了 IPv4/IPv6 双协议栈网络,则该集群将支持同时分配 IPv4 和 IPv6 地址。
在 Kubernetes 集群上启用 IPv4/IPv6 双协议栈可提供下面的功能:
为了使用 IPv4/IPv6 双栈的 Kubernetes 集群,需要满足以下先决条件:
要启用 IPv4/IPv6 双协议栈,为集群的相关组件启用 IPv6DualStack
特性门控,并且设置双协议栈的集群网络分配:
--feature-gates="IPv6DualStack=true"
--feature-gates="IPv6DualStack=true"
--cluster-cidr=<IPv4 CIDR>,<IPv6 CIDR>
例如 --cluster-cidr=10.244.0.0/16,fc00::/48
--service-cluster-ip-range=<IPv4 CIDR>,<IPv6 CIDR>
例如 --service-cluster-ip-range=10.0.0.0/16,fd00::/108
--node-cidr-mask-size-ipv4|--node-cidr-mask-size-ipv6
对于 IPv4 默认为 /24,对于 IPv6 默认为 /64--feature-gates="IPv6DualStack=true"
--cluster-cidr=<IPv4 CIDR>,<IPv6 CIDR>
--feature-gates="IPv6DualStack=true"
如果你的集群启用了 IPv4/IPv6 双协议栈网络,则可以使用 IPv4 或 IPv6 地址来创建 Services将运行在一组 {{< glossary_tooltip text="Pods" term_id="pod" >}} 上的应用程序公开为网络服务的抽象方法。
。你可以通过设置服务的 .spec.ipFamily
字段来选择服务的集群 IP 的地址族。你只能在创建新服务时设置该字段。.spec.ipFamily
字段的设置是可选的,并且仅当你计划在集群上启用 IPv4 和 IPv6 的 Services将运行在一组 {{< glossary_tooltip text="Pods" term_id="pod" >}} 上的应用程序公开为网络服务的抽象方法。
和 IngressesIngress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP。
。对于出口流量,该字段的配置不是必须的。
注意: 集群的默认地址族是第一个服务集群 IP 范围的地址族,该地址范围通过 kube-controller-manager 上的--service-cluster-ip-range
标志设置。
你可以设置 .spec.ipFamily
为:
IPv4
:API 服务器将从 service-cluster-ip-range
中分配 ipv4
地址IPv6
:API 服务器将从 service-cluster-ip-range
中分配 ipv6
地址以下服务规约不包含 ipFamily
字段。Kubernetes 将从最初配置的 service-cluster-ip-range
范围内分配一个 IP 地址(也称作“集群 IP”)给该服务。
service/networking/dual-stack-default-svc.yaml
|
---|
|
以下服务规约包含 ipFamily
字段。Kubernetes 将从已配置的 service-cluster-ip-range
范围内分配一个 IPv6 地址(也称作“集群 IP”)给该服务。
service/networking/dual-stack-ipv6-svc.yaml
|
---|
|
为了进行比较,将从已配置的 service-cluster-ip-range
向该服务分配以下 IPV4 地址(也称为“集群 IP”)。
service/networking/dual-stack-ipv4-svc.yaml
|
---|
|
在支持启用了 IPv6 的外部服务均衡器的云驱动上,除了将 ipFamily
字段设置为 IPv6
,将 type
字段设置为 LoadBalancer
,为你的服务提供云负载均衡。
公共路由和非公共路由的 IPv6 地址块的使用是可以的。提供底层 CNI容器网络接口 (CNI) 插件是遵循 appc/CNI 协议的一类网络插件。 的提供程序可以实现这种传输。如果你拥有使用非公共路由 IPv6 地址的 Pod,并且希望该 Pod 到达集群外目的(比如,公共网络),你必须为出口流量和任何响应消息设置 IP 伪装。ip-masq-agent 可以感知双栈,所以你可以在双栈集群中使用 ip-masq-agent 来进行 IP 伪装。