Breadcrumbs

RKE2 Pre-Deployment & Installation Guide (Single & Multi Node)

Purpose

This is a pre-deployment guide for the Kubernetes distribution RKE2 (Rancher Kubernetes Engine 2) built by Rancher. Following this guide will help you to setup the environment for smooth deployment of Single or Multi Node RKE2 distribution.

Intended Audience

This document is intended for IT operations personnel and system administrators who want to deploy Expertflow CX using the RKE2 distribution platform. Familiarity with Kubernetes in general and experience of Linux is preferable.


On this Page


Quick Links



    Preparing for Deployment

    There are multiple modes for deployment of RKE2 Kubernetes Distribution such as Single-Node (Without HA), Multi-Node (Without HA) and High Availability installation. This guide enlists the pre-requisites for Single-Node (Without HA) and Multi-Node (Without HA) only.

    The two RKE2 modes (Single and Multi) for deployment should be decided based on what level of availability is required. For this, nodes should be prepared according to the structure of the solution as given below:

    The steps in this guide need to be completed before moving on to any of these modes:

    • RKE2 Single-Node Installation ( Without HA )

    • RKE2 Multi-Node Installation ( Without HA )

    CIM Prerequisites 

    Kubernetes distributions and their corresponding requirements are:

    Type

    RAM (GB) 

    CPU

    DISK

    Scalability 

    Network  Ports

    Minimum Nodes

    Single-Node

    Multi-Node

    Single-Node

    Multi-Node

    Single-Node

    Multi-Node

    RKE21

    16

    8

    250 GiB ( preferably on /var ) 

    250 GiB (preferably on /var)

    No

    High

    • 6443/TCP and 9345 to be accessible by all nodes

    • 8472/UDP for CNI

    • 10250/TCP for metrics-server

    • 2379-2380/TCP for Cluster HA (Ports info can be found here)

    1

    2+


    RASA-X Prerequisites

    In a single and multi node Deployment, Rasa-X must be deployed separately from the CIM solution.

    Type

    RAM (GB) 

    CPU

    DISK

    Scalability 

    Network  Ports

    Minimum Nodes

    Single-Node

    Multi-Node

    Single-Node

    Multi-Node

    Single-Node

    Multi-Node

    RKE21

    8

    8

    250 GiB 

    250GiB (preferably on /var)

    No

    High

    • 6443/TCP and 9345 to be accessible by all nodes

    • 8472/UDP for CNI

    • 10250/TCP for metrics-server

    • 2379-2380/TCP for Cluster HA (Ports info can be found here)

    1

    2+


    SuperSet Prerequisites

    For BI Reporting, SuperSet must be deployed separately from the main CIM Solution.


    Type

    RAM (GB) 

    CPU

    DISK

    Scalability 

    Network  Ports

    Minimum Nodes

    Single-Node

    Multi-Node

    Single-Node

    Multi-Node

    Single-Node

    Multi-Node

    RKE21

    8

    8

    250 GiB 

    250GiB (preferably on /var)

    No

    High

    • 6443/TCP and 9345 to be accessible by all nodes

    • 8472/UDP for CNI

    • 10250/TCP for metrics-server

    • 2379-2380/TCP for Cluster HA 

    1

    2+


    Minimal Requirements for K3s

    1 RKE2 requirements are in this guide.

    2 Kubernetes ports and protocols are available in this guide.

    Run Iptables tables

    If you are running iptables in nftables mode instead of legacy you might encounter issues. We recommend utilizing newer iptables (such as 1.6.1+) to avoid issues.


    Environment Preparation

    Before starting with K3s installation, following are the optional steps and the checklist to make sure that environment is prepared for the installation:

    Linux-Based OS Instructions

    RKE2 has been tested and validated on the following operating systems, and their subsequent non-major releases:

    • Ubuntu 18.04, 20.04, 22.04 (amd64)

    • RHEL 7.8 (amd64)

    • RHEL 8.5 (amd64)


    Debian/Ubuntu Commands

    Following command must be run for Ubuntu:

    Disable firewall on all nodes

    Bash
    systemctl disable firewalld --now
    reboot
    



    RHEL Commands

    We must run the following commands for RHEL OS before starting the installation of K3S.

    Step1: Disable firewall and nm-cloud-setup service on RHEL

    Bash
    systemctl disable firewalld --now
    systemctl disable nm-cloud-setup.service nm-cloud-setup.timer
    systemctl disable apparmor.service
    reboot
    

    Step 2: Lock the RedHat Release to version 8.4 only

    To lock the release of RHEL to 8.4, which is the latest supported release by longhorn, please execute these commands:

    Bash
    subscription-manager release --set=8.4 ;
    yum clean all;
    subscription-manager release --show;
    rm -rf /var/cache/dnf
    

    Step 3: Update the RHEL package for 8.4 release


    Bash
    yum update -y
    



    Checklist

    Before proceeding with the deployment of Single/Multi-Node cluster for RKE2, go through the checklist:


    Object

    Required

    • Internet Access is available for all the nodes. 1

    Internet access will be needed for all the nodes to fetch and run RKE2

    • All Nodes running verified OS Release

    RHEL-8.4 or Ubuntu-20.04

    • Firewall Service on all nodes is disabled

    Firewall and nm-cloud-setup must be disabled

    • In case of RHEL, Release is fixed to 8.7

    RHEL-8.7 is only supported

    • POD + services IP range decided

    POD + Services IP Range must not co-exist with already existing IP Range

    • All nodes in cluster have same identical network interface names  Required for High Availability Only  

    Kube-VIP needs consistent interface names across all the control-plane nodes to fail-over. (  ip addr | grep -E ':\s.*?:' | cut -d ":" -f 2 | tr -d " "  ) can be used to list interfaces

    1. Air-Gapped deployment is also possible, check RKE2 web-site for more details at Air-Gapped install of RKE2

    2.  if any of the nodes is not running iscsid.service, the stateful workload will fail and may result in data loss Valid for Multi-Mode Cluster Only

    Corporate HTTP/S Proxy Requirement

    If the environment has strict HTTP or HTTPS proxy set, we must exclude the environment from the proxy controls. 

    The NO_PROXY variable must include your  cluster pod and service IP ranges.

    Bash
    HTTP_PROXY=http://your-proxy.example.com:8888
    HTTPS_PROXY=http://your-proxy.example.com:8888
    NO_PROXY=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.svc,.cluster.local
    

    If you want to configure the proxy settings for containerd without affecting RKE2 and the Kubelet, you can prefix the variables with CONTAINERD_:

    Bash
    CONTAINERD_HTTP_PROXY=http://your-proxy.example.com:8888
    CONTAINERD_HTTPS_PROXY=http://your-proxy.example.com:8888
    CONTAINERD_NO_PROXY=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.svc,.cluster.local
    


    Choose an Installation

    Once the pre-requisites are complete, you can choose to select a mode of installation as per your requirement. The steps are explained in each of these guides:

    If you want to go for configurations of High-Availability, please follow through to this guide.