Account Access

Complete each drop-down and field using the information obtained for your IAM policy.

SettingDescription
RegionFrom the drop-down choose the geographical region in which to build your cluster.
Cloud CredentialsSelect the cloud credentials that you created for your IAM policy. For more information on creating cloud credentials in Rancher, refer to this page.

Service Role

Choose a service role.

Service RoleDescription
Standard: Rancher generated service roleIf you choose this role, Rancher automatically adds a service role for use with the cluster.
Custom: Choose from your existing service rolesIf you choose this role, Rancher lets you choose from service roles that you’re already created within AWS. For more information on creating a custom service role in AWS, see the Amazon documentation.

Secrets Encryption

Optional: To encrypt secrets, select or enter a key created in AWS Key Management Service (KMS)

API Server Endpoint Access

Configuring Public/Private API access is an advanced use case. For details, refer to the EKS cluster endpoint access control documentation.

Private-only API Endpoints

If you enable private and disable public API endpoint access when creating a cluster, then there is an extra step you must take in order for Rancher to connect to the cluster successfully. In this case, a pop-up will be displayed with a command that you will run on the cluster to register it with Rancher. Once the cluster is provisioned, you can run the displayed command anywhere you can connect to the cluster’s Kubernetes API.

There are two ways to avoid this extra manual step: - You can create the cluster with both private and public API endpoint access on cluster creation. You can disable public access after the cluster is created and in an active state and Rancher will continue to communicate with the EKS cluster. - You can ensure that Rancher shares a subnet with the EKS cluster. Then security groups can be used to enable Rancher to communicate with the cluster’s API endpoint. In this case, the command to register the cluster is not needed, and Rancher will be able to communicate with your cluster. For more information on configuring security groups, refer to the security groups documentation.

Public Access Endpoints

Optionally limit access to the public endpoint via explicit CIDR blocks.

If you limit access to specific CIDR blocks, then it is recommended that you also enable the private access to avoid losing network communication to the cluster.

One of the following is required to enable private access: - Rancher’s IP must be part of an allowed CIDR block - Private access should be enabled, and Rancher must share a subnet with the cluster and have network access to the cluster, which can be configured with a security group

For more information about public and private access to the cluster endpoint, refer to the Amazon EKS documentation.

Subnet

OptionDescription
Standard: Rancher generated VPC and SubnetWhile provisioning your cluster, Rancher generates a new VPC with 3 public subnets.
Custom: Choose from your existing VPC and SubnetsWhile provisioning your cluster, Rancher configures your Control Plane and nodes to use a VPC and Subnet that you’ve already created in AWS.

For more information, refer to the AWS documentation for Cluster VPC Considerations. Follow one of the sets of instructions below based on your selection from the previous step.

Security Group

Amazon Documentation:

Logging

Configure control plane logs to send to Amazon CloudWatch. You are charged the standard CloudWatch Logs data ingestion and storage costs for any logs sent to CloudWatch Logs from your clusters.

Each log type corresponds to a component of the Kubernetes control plane. To learn more about these components, see Kubernetes Components in the Kubernetes documentation.

For more information on EKS control plane logging, refer to the official documentation.

Managed Node Groups

Amazon EKS managed node groups automate the provisioning and lifecycle management of nodes (Amazon EC2 instances) for Amazon EKS Kubernetes clusters.

For more information about how node groups work and how they are configured, refer to the EKS documentation.

Bring your own launch template

A launch template ID and version can be provided in order to easily configure the EC2 instances in a node group. If a launch template is provided, then none of the settings below will be configurable in Rancher. Therefore, using a launch template would require that all the necessary and desired settings from the list below would need to be specified in the launch template. Also note that if a launch template ID and version is provided, then only the template version can be updated. Using a new template ID would require creating a new managed node group.

OptionDescriptionRequired/Optional
Instance TypeChoose the hardware specs for the instance you’re provisioning.Required
Image IDSpecify a custom AMI for the nodes. Custom AMIs used with EKS must be configured properlyOptional
Node Volume SizeThe launch template must specify an EBS volume with the desired sizeRequired
SSH KeyA key to be added to the instances to provide SSH access to the nodesOptional
User DataCloud init script in MIME multi-part formatOptional
Instance Resource TagsTag each EC2 instance in the node groupOptional

Rancher-managed launch templates

If you do not specify a launch template, then you will be able to configure the above options in the Rancher UI and all of them can be updated after creation. In order to take advantage of all of these options, Rancher will create and manage a launch template for you. Each cluster in Rancher will have one Rancher-managed launch template and each managed node group that does not have a specified launch template will have one version of the managed launch template. The name of this launch template will have the prefix “rancher-managed-lt-” followed by the display name of the cluster. In addition, the Rancher-managed launch template will be tagged with the key “rancher-managed-template” and value “do-not-modify-or-delete” to help identify it as Rancher-managed. It is important that this launch template and its versions not be modified, deleted, or used with any other clusters or managed node groups. Doing so could result in your node groups being “degraded” and needing to be destroyed and recreated.

Custom AMIs

If you specify a custom AMI, whether in a launch template or in Rancher, then the image must be configured properly and you must provide user data to bootstrap the node. This is considered an advanced use case and understanding the requirements is imperative.

If you specify a launch template that does not contain a custom AMI, then Amazon will use the EKS-optimized AMI for the Kubernetes version and selected region. You can also select a GPU enabled instance for workloads that would benefit from it.

Note The GPU enabled instance setting in Rancher is ignored if a custom AMI is provided, either in the dropdown or in a launch template.

Spot instances

Spot instances are now supported by EKS. If a launch template is specified, Amazon recommends that the template not provide an instance type. Instead, Amazon recommends providing multiple instance types. If the “Request Spot Instances” checkbox is enabled for a node group, then you will have the opportunity to provide multiple instance types.

Note Any selection you made in the instance type dropdown will be ignored in this situation and you must specify at least one instance type to the “Spot Instance Types” section. Furthermore, a launch template used with EKS cannot request spot instances. Requesting spot instances must be part of the EKS configuration.

Node Group Settings

The following settings are also configurable. All of these except for the “Node Group Name” are editable after the node group is created.

OptionDescription
Node Group NameThe name of the node group.
Desired ASG SizeThe desired number of instances.
Maximum ASG SizeThe maximum number of instances. This setting won’t take effect until the Cluster Autoscaler is installed.
Minimum ASG SizeThe minimum number of instances. This setting won’t take effect until the Cluster Autoscaler is installed.
LabelsKubernetes labels applied to the nodes in the managed node group.
TagsThese are tags for the managed node group and do not propagate to any of the associated resources.

Changes in Rancher v2.5

More EKS options can be configured when you create an EKS cluster in Rancher, including the following:

  • Managed node groups
  • Desired size, minimum size, maximum size (requires the Cluster Autoscaler to be installed)
  • Control plane logging
  • Secrets encryption with KMS

The following capabilities have been added for configuring EKS clusters in Rancher:

  • GPU support
  • Exclusively use managed nodegroups that come with the most up-to-date AMIs
  • Add new nodes
  • Upgrade nodes
  • Add and remove node groups
  • Disable and enable private access
  • Add restrictions to public access
  • Use your cloud credentials to create the EKS cluster instead of passing in your access key and secret key

Due to the way that the cluster data is synced with EKS, if the cluster is modified from another source, such as in the EKS console, and in Rancher within five minutes, it could cause some changes to be overwritten. For information about how the sync works and how to configure it, refer to this section.

Account Access

Complete each drop-down and field using the information obtained for your IAM policy.

SettingDescription
RegionFrom the drop-down choose the geographical region in which to build your cluster.
Cloud CredentialsSelect the cloud credentials that you created for your IAM policy. For more information on creating cloud credentials in Rancher, refer to this page.

Service Role

Choose a service role.

Service RoleDescription
Standard: Rancher generated service roleIf you choose this role, Rancher automatically adds a service role for use with the cluster.
Custom: Choose from your existing service rolesIf you choose this role, Rancher lets you choose from service roles that you’re already created within AWS. For more information on creating a custom service role in AWS, see the Amazon documentation.

Secrets Encryption

Optional: To encrypt secrets, select or enter a key created in AWS Key Management Service (KMS)

API Server Endpoint Access

Configuring Public/Private API access is an advanced use case. For details, refer to the EKS cluster endpoint access control documentation.

Private-only API Endpoints

If you enable private and disable public API endpoint access when creating a cluster, then there is an extra step you must take in order for Rancher to connect to the cluster successfully. In this case, a pop-up will be displayed with a command that you will run on the cluster to register it with Rancher. Once the cluster is provisioned, you can run the displayed command anywhere you can connect to the cluster’s Kubernetes API.

There are two ways to avoid this extra manual step: - You can create the cluster with both private and public API endpoint access on cluster creation. You can disable public access after the cluster is created and in an active state and Rancher will continue to communicate with the EKS cluster. - You can ensure that Rancher shares a subnet with the EKS cluster. Then security groups can be used to enable Rancher to communicate with the cluster’s API endpoint. In this case, the command to register the cluster is not needed, and Rancher will be able to communicate with your cluster. For more information on configuring security groups, refer to the security groups documentation.

Public Access Endpoints

Optionally limit access to the public endpoint via explicit CIDR blocks.

If you limit access to specific CIDR blocks, then it is recommended that you also enable the private access to avoid losing network communication to the cluster.

One of the following is required to enable private access: - Rancher’s IP must be part of an allowed CIDR block - Private access should be enabled, and Rancher must share a subnet with the cluster and have network access to the cluster, which can be configured with a security group

For more information about public and private access to the cluster endpoint, refer to the Amazon EKS documentation.

Subnet

OptionDescription
Standard: Rancher generated VPC and SubnetWhile provisioning your cluster, Rancher generates a new VPC with 3 public subnets.
Custom: Choose from your existing VPC and SubnetsWhile provisioning your cluster, Rancher configures your Control Plane and nodes to use a VPC and Subnet that you’ve already created in AWS.

For more information, refer to the AWS documentation for Cluster VPC Considerations. Follow one of the sets of instructions below based on your selection from the previous step.

Security Group

Amazon Documentation:

Logging

Configure control plane logs to send to Amazon CloudWatch. You are charged the standard CloudWatch Logs data ingestion and storage costs for any logs sent to CloudWatch Logs from your clusters.

Each log type corresponds to a component of the Kubernetes control plane. To learn more about these components, see Kubernetes Components in the Kubernetes documentation.

For more information on EKS control plane logging, refer to the official documentation.

Managed Node Groups

Amazon EKS managed node groups automate the provisioning and lifecycle management of nodes (Amazon EC2 instances) for Amazon EKS Kubernetes clusters.

For more information about how node groups work and how they are configured, refer to the EKS documentation.

Amazon will use the EKS-optimized AMI for the Kubernetes version. You can configure whether the AMI has GPU enabled.

OptionDescription
Instance TypeChoose the hardware specs for the instance you’re provisioning.
Maximum ASG SizeThe maximum number of instances. This setting won’t take effect until the Cluster Autoscaler is installed.
Minimum ASG SizeThe minimum number of instances. This setting won’t take effect until the Cluster Autoscaler is installed.

Account Access

Complete each drop-down and field using the information obtained for your IAM policy.

SettingDescription
RegionFrom the drop-down choose the geographical region in which to build your cluster.
Access KeyEnter the access key that you created for your IAM policy.
Secret KeyEnter the secret key that you created for your IAM policy.

Service Role

Choose a service role.

Service RoleDescription
Standard: Rancher generated service roleIf you choose this role, Rancher automatically adds a service role for use with the cluster.
Custom: Choose from your existing service rolesIf you choose this role, Rancher lets you choose from service roles that you’re already created within AWS. For more information on creating a custom service role in AWS, see the Amazon documentation.

Public IP for Worker Nodes

Your selection for this option determines what options are available for VPC & Subnet.

OptionDescription
YesWhen your cluster nodes are provisioned, they’re assigned a both a private and public IP address.
No: Private IPs onlyWhen your cluster nodes are provisioned, they’re assigned only a private IP address.

If you choose this option, you must also choose a VPC & Subnet that allow your instances to access the internet. This access is required so that your worker nodes can connect to the Kubernetes control plane.

VPC & Subnet

The available options depend on the public IP for worker nodes.

OptionDescription
Standard: Rancher generated VPC and SubnetWhile provisioning your cluster, Rancher generates a new VPC and Subnet.
Custom: Choose from your existing VPC and SubnetsWhile provisioning your cluster, Rancher configures your nodes to use a VPC and Subnet that you’ve already created in AWS. If you choose this option, complete the remaining steps below.

For more information, refer to the AWS documentation for Cluster VPC Considerations. Follow one of the sets of instructions below based on your selection from the previous step.

If you choose to assign a public IP address to your cluster’s worker nodes, you have the option of choosing between a VPC that’s automatically generated by Rancher (i.e., Standard: Rancher generated VPC and Subnet), or a VPC that you’ve already created with AWS (i.e., Custom: Choose from your existing VPC and Subnets). Choose the option that best fits your use case.

Click to expand

If you’re using Custom: Choose from your existing VPC and Subnets:

(If you’re using Standard, skip to the instance options.)

  1. Make sure Custom: Choose from your existing VPC and Subnets is selected.

  2. From the drop-down that displays, choose a VPC.

  3. Click Next: Select Subnets. Then choose one of the Subnets that displays.

  4. Click Next: Select Security Group.

If your worker nodes have Private IPs only, you must also choose a VPC & Subnet that allow your instances to access the internet. This access is required so that your worker nodes can connect to the Kubernetes control plane.

Click to expand

Follow the steps below.

Tip: When using only private IP addresses, you can provide your nodes internet access by creating a VPC constructed with two subnets, a private set and a public set. The private set should have its route tables configured to point toward a NAT in the public set. For more information on routing traffic from private subnets, please see the official AWS documentation.

  1. From the drop-down that displays, choose a VPC.

  2. Click Next: Select Subnets. Then choose one of the Subnets that displays.

Security Group

Amazon Documentation:

Instance Options

Instance type and size of your worker nodes affects how many IP addresses each worker node will have available. See this documentation for more information.

OptionDescription
Instance TypeChoose the hardware specs for the instance you’re provisioning.
Custom AMI OverrideIf you want to use a custom Amazon Machine Image (AMI), specify it here. By default, Rancher will use the EKS-optimized AMI for the EKS version that you chose.
Desired ASG SizeThe number of instances that your cluster will provision.
User DataCustom commands can to be passed to perform automated configuration tasks WARNING: Modifying this may cause your nodes to be unable to join the cluster. Note: Available as of v2.2.0

Configuring the Refresh Interval

The eks-refresh-cron setting is deprecated. It has been migrated to the eks-refresh setting, which is an integer representing seconds.

The default value is 300 seconds.

The syncing interval can be changed by running kubectl edit setting eks-refresh.

If the eks-refresh-cron setting was previously set, the migration will happen automatically.

The shorter the refresh window, the less likely any race conditions will occur, but it does increase the likelihood of encountering request limits that may be in place for AWS APIs.

It is possible to change the refresh interval through the setting eks-refresh-cron. This setting accepts values in the Cron format. The default is */5 * * * *.

The shorter the refresh window, the less likely any race conditions will occur, but it does increase the likelihood of encountering request limits that may be in place for AWS APIs.