Merge pull request #3478 from btat/3433-rke-dual-stack

Add RKE dual-stack
This commit is contained in:
Billy Tat
2021-08-30 15:19:53 -07:00
committed by GitHub
3 changed files with 48 additions and 0 deletions
@@ -37,6 +37,8 @@ If you want to reuse a node from a previous custom cluster, [clean the node]({{<
Provision the host according to the [installation requirements]({{<baseurl>}}/rancher/v2.6/en/cluster-provisioning/node-requirements) and the [checklist for production-ready clusters.]({{<baseurl>}}/rancher/v2.6/en/cluster-provisioning/production)
If you're using Amazon EC2 as your host and want to use the [dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/) feature, there are additional [requirements]({{<baseurl>}}/rke//latest/en/config-options/dual-stack#requirements) when provisioning the host.
### 2. Create the Custom Cluster
1. Click **☰ > Cluster Management**.
@@ -49,6 +51,9 @@ Provision the host according to the [installation requirements]({{<baseurl>}}/ra
>
>- See [Enable the Windows Support Option]({{<baseurl>}}/rancher/v2.6/en/cluster-provisioning/rke-clusters/windows-clusters/).
>- The only Network Provider available for clusters with Windows support is Flannel.
>
>**Dual-stack on Amazon EC2:** If you're using Amazon EC2 as your host and want to use the [dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/) feature, there are additional [requirements]({{<baseurl>}}/rke//latest/en/config-options/dual-stack#requirements) when configuring RKE.
6. <a id="step-6"></a>Click **Next**.
4. Use **Member Roles** to configure user authorization for the cluster. Click **Add Member** to add users that can access the cluster. Use the **Role** drop-down to set permissions for each user.
@@ -50,6 +50,8 @@ Creating a [node template]({{<baseurl>}}/rancher/v2.6/en/cluster-provisioning/rk
1. Fill out a node template for EC2. For help filling out the form, refer to [EC2 Node Template Configuration.](./ec2-node-template-config)
1. Click **Create**.
>**Note:** If you want to use the [dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/) feature, there are additional [requirements]({{<baseurl>}}/rke//latest/en/config-options/dual-stack#requirements) that must be taken into consideration.
### 3. Create a cluster with node pools using the node template
Add one or more node pools to your cluster. For more information about node pools, see [this section.]({{<baseurl>}}/rancher/v2.6/en/cluster-provisioning/rke-clusters/node-pools)
@@ -60,6 +62,8 @@ Add one or more node pools to your cluster. For more information about node pool
1. Create a node pool for each Kubernetes role. For each node pool, choose a node template that you created. For more information about node pools, including best practices for assigning Kubernetes roles to them, see [this section.]({{<baseurl>}}/rancher/v2.6/en/cluster-provisioning/rke-clusters/node-pools)
1. Click **Add Member** to add users that can access the cluster. Use the **Role** drop-down to set permissions for each user.
1. Use **Cluster Options** to choose the version of Kubernetes that will be installed, what network provider will be used and if you want to enable project network isolation. Refer to [Selecting Cloud Providers]({{<baseurl>}}/rancher/v2.6/en/cluster-provisioning/rke-clusters/options/cloud-providers/) to configure the Kubernetes Cloud Provider. For help configuring the cluster, refer to the [RKE cluster configuration reference.]({{<baseurl>}}/rancher/v2.6/en/cluster-provisioning/rke-clusters/options)
>**Note:** If you want to use the [dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/) feature, there are additional [requirements]({{<baseurl>}}/rke//latest/en/config-options/dual-stack#requirements) that must be taken into consideration.
1. Click **Create**.
**Result:**
@@ -0,0 +1,39 @@
---
title: Dual-stack
weight: 255
---
As of RKE `v1.3.0`, [dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/) networking support has been added, which allows allocating both IPv4 and IPv6 addresses to pods and services.
### Requirements
In order to use the dual-stack feature, RKE and the infrastructure it's deploy to must be configured as follows:
- Kubernetes 1.21 or newer is used.
- RKE is configured to use Calico as the Container Network Interface (CNI) provider. Other providers are not supported.
- RKE is deployed on Amazon EC2 instances with the following prerequisites:
- Enable IPv6 support: set the network range at VPC and its subnetworks.
- Add a IPv6 default gateway to VPC routes.
- Add inbound/outbound rules for IPv6 traffic to your cluster's security group(s).
- Ensure instances have `Auto-assign IPv6 IP` enabled. See the [AWS documentation](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html) for instructions.
- Disable source/destination checks on all instances in the cluster. See the [AWS documentation](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_NAT_Instance.html#EIP_Disable_SrcDestCheck) for instructions.
For more information on configuring your AWS enivronment for IPv6, refer to the AWS [Getting started with IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/get-started-IPv6.html) documentation.
### Example RKE Configuration
The following is an example RKE configuration that can be used to deploy RKE with dual-stack support configured:
```
kubernetes_version: "v1.21.1-rancher2-1"
services:
kube-api:
service_cluster_ip_range: 10.43.0.0/16,fd98::/108
kube-controller:
service_cluster_ip_range: 10.43.0.0/16,fd98::/108
cluster_cidr: 10.42.0.0/16,fd01::/64
network:
plugin: calico
```