Fix that dual-stack does not require Kubenet specifically (#18924)

* Fix that dual-stack does not require Kubenet specifically

Rather it requires a network plugin that supports dual-stack, and
others are available, including Calico.

* Update content/en/docs/tasks/network/validate-dual-stack.md

Added link to doc about network plugins

Co-Authored-By: Tim Bannister <tim@scalefactory.com>

Co-authored-by: Tim Bannister <tim@scalefactory.com>
This commit is contained in:
Neil Jerram
2020-02-03 10:09:21 +00:00
committed by GitHub
parent d1c81147c1
commit ef5550f12e
2 changed files with 5 additions and 7 deletions
@@ -31,7 +31,6 @@ Enabling IPv4/IPv6 dual-stack on your Kubernetes cluster provides the following
* Dual-stack Pod networking (a single IPv4 and IPv6 address assignment per Pod) * Dual-stack Pod networking (a single IPv4 and IPv6 address assignment per Pod)
* IPv4 and IPv6 enabled Services (each Service must be for a single address family) * IPv4 and IPv6 enabled Services (each Service must be for a single address family)
* Kubenet multi address family support (IPv4 and IPv6)
* Pod off-cluster egress routing (eg. the Internet) via both IPv4 and IPv6 interfaces * Pod off-cluster egress routing (eg. the Internet) via both IPv4 and IPv6 interfaces
## Prerequisites ## Prerequisites
@@ -40,7 +39,7 @@ The following prerequisites are needed in order to utilize IPv4/IPv6 dual-stack
* Kubernetes 1.16 or later * Kubernetes 1.16 or later
* Provider support for dual-stack networking (Cloud provider or otherwise must be able to provide Kubernetes nodes with routable IPv4/IPv6 network interfaces) * Provider support for dual-stack networking (Cloud provider or otherwise must be able to provide Kubernetes nodes with routable IPv4/IPv6 network interfaces)
* Kubenet network plugin * A network plugin that supports dual-stack (such as Kubenet or Calico)
* Kube-proxy running in mode IPVS * Kube-proxy running in mode IPVS
## Enable IPv4/IPv6 dual-stack ## Enable IPv4/IPv6 dual-stack
@@ -56,7 +55,7 @@ To enable IPv4/IPv6 dual-stack, enable the `IPv6DualStack` [feature gate](/docs/
* `--feature-gates="IPv6DualStack=true"` * `--feature-gates="IPv6DualStack=true"`
* kube-proxy: * kube-proxy:
* `--proxy-mode=ipvs` * `--proxy-mode=ipvs`
* `--cluster-cidrs=<IPv4 CIDR>,<IPv6 CIDR>` * `--cluster-cidrs=<IPv4 CIDR>,<IPv6 CIDR>`
* `--feature-gates="IPv6DualStack=true"` * `--feature-gates="IPv6DualStack=true"`
{{< caution >}} {{< caution >}}
@@ -14,7 +14,7 @@ This document shares how to validate IPv4/IPv6 dual-stack enabled Kubernetes clu
{{% capture prerequisites %}} {{% capture prerequisites %}}
* Provider support for dual-stack networking (Cloud provider or otherwise must be able to provide Kubernetes nodes with routable IPv4/IPv6 network interfaces) * Provider support for dual-stack networking (Cloud provider or otherwise must be able to provide Kubernetes nodes with routable IPv4/IPv6 network interfaces)
* Kubenet network plugin * A [network plugin](/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/) that supports dual-stack (such as Kubenet or Calico)
* Kube-proxy running in mode IPVS * Kube-proxy running in mode IPVS
* [Dual-stack enabled](/docs/concepts/services-networking/dual-stack/) cluster * [Dual-stack enabled](/docs/concepts/services-networking/dual-stack/) cluster
@@ -39,7 +39,7 @@ a00:100::/24
``` ```
There should be one IPv4 block and one IPv6 block allocated. There should be one IPv4 block and one IPv6 block allocated.
Validate that the node has an IPv4 and IPv6 interface detected (replace node name with a valid node from the cluster. In this example the node name is k8s-linuxpool1-34450317-0): Validate that the node has an IPv4 and IPv6 interface detected (replace node name with a valid node from the cluster. In this example the node name is k8s-linuxpool1-34450317-0):
```shell ```shell
kubectl get nodes k8s-linuxpool1-34450317-0 -o go-template --template='{{range .status.addresses}}{{printf "%s: %s \n" .type .address}}{{end}}' kubectl get nodes k8s-linuxpool1-34450317-0 -o go-template --template='{{range .status.addresses}}{{printf "%s: %s \n" .type .address}}{{end}}'
``` ```
@@ -151,7 +151,7 @@ If the cloud provider supports the provisioning of IPv6 enabled external load ba
{{< codenew file="service/networking/dual-stack-ipv6-lb-svc.yaml" >}} {{< codenew file="service/networking/dual-stack-ipv6-lb-svc.yaml" >}}
Validate that the Service receives a `CLUSTER-IP` address from the IPv6 address block along with an `EXTERNAL-IP`. You may then validate access to the service via the IP and port. Validate that the Service receives a `CLUSTER-IP` address from the IPv6 address block along with an `EXTERNAL-IP`. You may then validate access to the service via the IP and port.
``` ```
kubectl get svc -l app=MyApp kubectl get svc -l app=MyApp
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
@@ -159,4 +159,3 @@ my-service ClusterIP fe80:20d::d06b 2001:db8:f100:4002::9d37:c0d7 80:318
``` ```
{{% /capture %}} {{% /capture %}}