Azure / Azure/aksArc

High Availability - Spread the Control Plane and Worker nodes across multiple Windows Failover Clusters

Open
#76 1 comment 3 reactions 1 assignee Claimed by @mkostersitz View on GitHub
Enhancement
Dominant language
PowerShell
Stars
118
Forks
63
PR merge metrics
No merged PRs in 30d

Description

**Title**:
Spread the Control Plane and Worker nodes across multiple Windows Failover Clusters

**Description**:
This Feature Request is being written to begin a discussion about how to achieve k8s cluster HA across multiple Windows Failover Clusters. I acknowledge the current deployment method to WFC requires Cluster Storage is available for PVs. But fact remains that a single WFC is still a single-point-of-failure. If all your k8s infrastructure exists on this cluster and you experience some kind of outage, the steps to get k8s happy again are sometimes difficult.

In my current on-prem k8s environment, I have a single k8s cluster whose VMs are spread across a bunch of different WFC's. The WFC's are in the same datacenter and VLAN, so my networking allows for this. Persistent storage is being driven by [OpenEBS](https://github.com/openebs/openebs). I can do VM/Storage migrations easily across WFC in the event I know a planned outage is occurring. And if I have a full-blown WFC failure, the impact is minimal.

So how do we do this with AKS-on-HCI?

This isn't strictly an AKS-on-HCI issue, but I do think it warrants a discussion. Some thoughts that have crossed my mind:

- Extend `Set-AksHciConfig` for multiple WFCs
- Pass in a collection of configs for each WFC (Image dir, IP ranges if necessary, etc)
- Significant rewriting of the current installation logic (maybe?)
- Leverage Stretch Clustering
- Somewhat "built-in" already?
- Assuming your IP space at each Site is configured correctly and AKS-on-HCI eventually supports different IP ranges
- Kinda wasteful of storage/compute
- Leverage Cluster Sets + SMB3
- Same as above, but with some additional complexities
- Provide guidance for running _multiple, different_ WFC + k8s clusters
- Deploy a few k8s clusters, inform users to have Release Pipelines that target all clusters, and put some kind of SLB in front of their service's VIPs?
- Not much work for AKS team; just some documentation and guidance

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.