From 6df7537842bcf26a6919b19886413248c2ca7082 Mon Sep 17 00:00:00 2001 From: Billy Tat Date: Fri, 20 Aug 2021 15:09:17 -0700 Subject: [PATCH] Add RKE dual-stack --- .../rke-clusters/custom-nodes/_index.md | 5 +++ .../rke-clusters/node-pools/ec2/_index.md | 4 ++ .../en/config-options/dual-stack/_index.md | 39 +++++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 content/rke/latest/en/config-options/dual-stack/_index.md diff --git a/content/rancher/v2.6/en/cluster-provisioning/rke-clusters/custom-nodes/_index.md b/content/rancher/v2.6/en/cluster-provisioning/rke-clusters/custom-nodes/_index.md index f4c812b26fa..bd58c3dc1e7 100644 --- a/content/rancher/v2.6/en/cluster-provisioning/rke-clusters/custom-nodes/_index.md +++ b/content/rancher/v2.6/en/cluster-provisioning/rke-clusters/custom-nodes/_index.md @@ -40,6 +40,8 @@ If you want to reuse a node from a previous custom cluster, [clean the node]({{< Provision the host according to the [installation requirements]({{}}/rancher/v2.6/en/cluster-provisioning/node-requirements) and the [checklist for production-ready clusters.]({{}}/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]({{}}/rke//latest/en/config-options/dual-stack#requirements) when provisioning the host. + ### 2. Create the Custom Cluster 1. From the **Clusters** page, click **Add Cluster**. @@ -56,6 +58,9 @@ Provision the host according to the [installation requirements]({{}}/ra > >- See [Enable the Windows Support Option]({{}}/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]({{}}/rke//latest/en/config-options/dual-stack#requirements) when configuring RKE. + 6. Click **Next**. 7. From **Node Role**, choose the roles that you want filled by a cluster node. You must provision at least one node for each role: `etcd`, `worker`, and `control plane`. All three roles are required for a custom cluster to finish provisioning. For more information on roles, see [this section.]({{}}/rancher/v2.6/en/overview/concepts/#roles-for-nodes-in-kubernetes-clusters) diff --git a/content/rancher/v2.6/en/cluster-provisioning/rke-clusters/node-pools/ec2/_index.md b/content/rancher/v2.6/en/cluster-provisioning/rke-clusters/node-pools/ec2/_index.md index f7b484425c8..7c91295e575 100644 --- a/content/rancher/v2.6/en/cluster-provisioning/rke-clusters/node-pools/ec2/_index.md +++ b/content/rancher/v2.6/en/cluster-provisioning/rke-clusters/node-pools/ec2/_index.md @@ -47,6 +47,8 @@ Creating a [node template]({{}}/rancher/v2.6/en/cluster-provisioning/rk 1. Click **Add Template.** 1. Fill out a node template for EC2. For help filling out the form, refer to [EC2 Node Template Configuration.](./ec2-node-template-config) + >**Note:** If you want to use the [dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/) feature, there are additional [requirements]({{}}/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.]({{}}/rancher/v2.6/en/cluster-provisioning/rke-clusters/node-pools) @@ -57,6 +59,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.]({{}}/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]({{}}/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.]({{}}/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]({{}}/rke//latest/en/config-options/dual-stack#requirements) that must be taken into consideration. 1. Click **Create**. **Result:** diff --git a/content/rke/latest/en/config-options/dual-stack/_index.md b/content/rke/latest/en/config-options/dual-stack/_index.md new file mode 100644 index 00000000000..1bec3578e71 --- /dev/null +++ b/content/rke/latest/en/config-options/dual-stack/_index.md @@ -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 +```