K3s Pre-Deployment & Installation Guide
Preparing for Deployment
The three K3s modes 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:
CIM Prerequisites
Kubernetes distributions and their corresponding requirements are:
Type | RAM (GB) | CPU | DISK | Scalability | Network Ports | Minimum Nodes | |||||
Single-Node | Multi & High | Single-Node | Multi-Node | High Availability | Single-Node | Multi-Node | High Availability | ||||
---|---|---|---|---|---|---|---|---|---|---|---|
K3s1 | 16 | 8 | 250 GiB |
| No | High | High |
| 1 | 2+ | 3+2 |
RASA-X Prerequisites
In a single 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 & High | Single-Node | Multi-Node | High Availability | Single-Node | Multi-Node | High Availability | ||||
---|---|---|---|---|---|---|---|---|---|---|---|
K3s1 | 8 | 8 | 250 GiB |
| No | High | High |
| 1 | 2+ | 3+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 & High | Single-Node | Multi-Node | High Availability | Single-Node | Multi-Node | High Availability | ||||
---|---|---|---|---|---|---|---|---|---|---|---|
K3s1 | 8 | 8 | 250 GiB |
| No | High | High |
| 1 | 2+ | 3+2 |
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.
Additionally, versions 1.8.0-1.8.4 have known issues that can cause K3s to fail. See Additional OS Preparations for workarounds.
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
Checklist
Before proceeding with the deployment of Single/Multi-Node HA cluster for K3s, go through the checklist:
Object | Required | |
---|---|---|
| Internet access will be needed for all the nodes to fetch and run K3s | |
| 3 Control-Plane Nodes + 2 Worker Nodes( For High Availability ) | |
| RHEL-8.4 or Ubuntu-20.04 | |
| Firewall and nm-cloud-setup must be disabled | |
| RHEL-8.4 is only supported | |
| IP from the same range of CP nodes is needed for VIP fail-over ( For HA Only) | |
( check with systemctl status iscsid.service and confirm its enabled ). On All Nodes.2 | iscsid.service must be running before deploying longhorn Storage Manager | |
| NTP should be enabled for all nodes | |
| POD + Services IP Range must not co-exist with already existing IP Range | |
| 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 |
- Air-Gapped deployment is also possible, check K3s web-site for more details at Air-Gapped install of K3s
- if any of the nodes is not running iscsid.service, the stateful workload will fail and may result in data loss .
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.
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 K3s and the Kubelet, you can prefix the variables with CONTAINERD_:
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: