High Availability¶
High Availability Overview¶
- A minimum of 3 Middle-Tier Server VMs are required to host the k8s nodes.
- Hardware/Software Load Balancer to load balance traffic coming into the Cluster.
- Static IPs are a must for each node in an on-prem high availability environment to ensure stable communication, consistent node discovery, and reliable cluster operation.
- If one node goes unavailable, the environment will still be up and running since the other nodes are available. However, the node that went unavailable must be re-joined to the cluster to ensure that quorum is maintained.
- All 3 nodes act as control plane servers for high redundancy.
- All 3 nodes run the API server in each node in a load balanced fashion.
- It will take approximately 45 minutes for the high availability installation process.
Note: High Availability is also supported in Air-gapped environments.
High Availability Objectives¶
- Exclude Single Point of Failure.
- Mitigate application unavailability or keep unavailability which may occur due to Node failures, at a minimum.
- Multi-Master Control-Plane K8s Cluster to withstand Node Failures.
High Availability Load Balancer¶
Customers can select a Hardware/Software load balancer of their choice and provision it in a suitable HA manner to avoid a single point of failure at the load balancer. IFS does not package a load balancer with the Remote Deployment Model.
High Availability Load Balancer - Routing Traffic and Ports¶
- Traffic coming to port 443 of the Load Balancer should be routed to port 443 of all Middle-Tier Server Linux VM Nodes.
- The "Linuxhost" variable in main_config.json file should be set to the DNS domain name of the systemUrl. And the DNS domain name should point to the IP(s) of the Load Balancer.
- The "Nodes" array variable in main_config.json file should contain the full list of Middle-Tier Server VMs/Nodes.
- Load balancing should be as such that session stickiness is maintained.
- Refer to the "How to access IFS Cloud from the Internet" page, of the "Remote Deployment Guide" for the paths of the application that need to be Load Balanced across nodes.
- HTTP connection, send and read timeouts should match the timeout values in the Application and ReverseProxy. Refer to "Remote Deployment Guide > New Installation of IFS Cloud > Deploying IFS Cloud > Installation Parameters > IFS Cloud Installer > Installation parameters > General Parameters" for the timeouts to be configured and their default values.
STEPS TO RUN FOR HIGH AVAILABILITY INSTALLATION¶
1. High Availability Prerequisite Configuration¶
Before installing, open the main_config.json file located at ifsroot/config and additionally fill in the below variables for High Availability.
-
"Linuxhost" variables to the LoadBalancer Hostname
-
"Nodes" array variable with the list of VM hostnames to be used as Nodes.
example -
"Nodes": [
"node-1.yourdomain.com",
"node-2.yourdomain.com",
"node-3.yourdomain.com"
],
- "LoadBalancerPrivateIP" variable to Private IP of the LoadBalancer.
2. Install Remote¶
Refer to the installation steps in Quick Installation.
High Availability Advanced Section¶
Use below commands for manual high availability configuration.
High Availability Join Nodes¶
Run the below command to join a node. Add the VM name to the bottom of the "Nodes" array in main_config.json file located at ifsroot/config.
ps> .\main.ps1 -resource 'JOINNODE'
High Availability Remove Nodes¶
ps> .\main.ps1 -resource 'REMOVENODE'