Skip to content

Commit

Permalink
Fix that dual-stack does not require Kubenet specifically (#18924)
Browse files Browse the repository at this point in the history
* 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>
  • Loading branch information
Neil Jerram and sftim committed Feb 3, 2020
1 parent d1c8114 commit ef5550f
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 7 deletions.
5 changes: 2 additions & 3 deletions content/en/docs/concepts/services-networking/dual-stack.md
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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 >}}
Expand Down
7 changes: 3 additions & 4 deletions content/en/docs/tasks/network/validate-dual-stack.md
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -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


Expand All @@ -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}}'
``` ```
Expand Down Expand Up @@ -151,12 +151,11 @@ 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
my-service ClusterIP fe80:20d::d06b 2001:db8:f100:4002::9d37:c0d7 80:31868/TCP 30s my-service ClusterIP fe80:20d::d06b 2001:db8:f100:4002::9d37:c0d7 80:31868/TCP 30s
``` ```
{{% /capture %}} {{% /capture %}}

0 comments on commit ef5550f

Please sign in to comment.