GitHub user hodie-aurora created a discussion: Issue with Creating High 
Availability Kubernetes Cluster in CloudStack VPC - External Load Balancer IP 
Configuration

Subject: Issue with Creating High Availability Kubernetes Cluster in CloudStack 
VPC - External Load Balancer IP Configuration
Hello CloudStack community,
I'm trying to set up a high availability Kubernetes cluster in a VPC on Apache 
CloudStack, and I'm running into an issue with the external load balancer IP 
address. I'd really appreciate any insights or advice from those who have 
experience with this setup. Here's a detailed description of what I've done and 
the problem I'm facing:


Setup Overview:

I created a VPC named "k8s-vpc" in the "test-cloud" zone.
Within the VPC, I added a network tier called "k8s-net" with CIDR 10.1.0.0/24, 
network type VLAN/888, and it's implemented with default ACL allowing all.
I acquired a public IP address: 192.168.122.43 (allocated and associated with 
the VPC).
On this public IP, I configured load balancing:

Name: k8s-lb
Public Port: 6443
Private Port: 6443
Algorithm: Round-robin
Protocol: TCP
AutoScale: No
No instances added yet (since the cluster isn't initialized).


For port forwarding on the public IP, I haven't set any rules yet, but the LB 
is configured to forward traffic on 6443.



Cluster Creation Attempt:

In the Kubernetes cluster creation wizard:

Name: k8s-cluster
Description: k8s-cluster
Zone: test-cloud
Kubernetes Version: setup-v1.33.1-calico-x86_64
Compute Offering: k8s instance
Node root disk size: 8 GB
Network: k8s-net
HA enabled: Yes (toggle on)
Control nodes: 3
External Load Balancer IP Address: 192.168.122.43 (the public IP I acquired and 
configured for LB)
Cluster size (Worker nodes): 3
SSH Key pair: k8s-key



When I try to create the cluster with this configuration, I get the following 
error:
"Request failed. (530) externalloadbalanceripaddress parameter must be 
specified when network type is not Shared or is ROUTED network"
This is confusing because I did specify the external load balancer IP address. 
From the error, it seems like the system thinks the network type requires it, 
but perhaps my network configuration isn't recognized as Shared or ROUTED? My 
network tier is set to "Kubernetes Network Tier" in the selection dropdown, but 
in the VPC details, it's shown as VLAN.


Screenshots for Reference:


First screenshot: The "Add Instances" dialog for the load balancer showing "No 
Data" since no instances are bound yet.
<img width="1431" height="688" alt="01" 
src="https://github.com/user-attachments/assets/beac3613-8862-48a3-8e2d-b17bd7848f14";
 />
Second screenshot: The cluster creation form with the error popup highlighting 
the external load balancer IP field.
<img width="1446" height="697" alt="02" 
src="https://github.com/user-attachments/assets/628b3d8d-3c18-4211-8950-271f16a9ed4e";
 />

Third screenshot: VPC details page showing the "k8s-net" network tier.
<img width="1451" height="696" alt="03" 
src="https://github.com/user-attachments/assets/6b0864b7-b6e1-4e22-9138-15bce55384a9";
 />

Fourth screenshot: Public IP addresses page showing the acquired IP 
192.168.122.43.
<img width="903" height="431" alt="04" 
src="https://github.com/user-attachments/assets/ef240a87-7159-4bae-bcaf-b128f625143f";
 />

Fifth screenshot: Load balancing configuration on the public IP with the k8s-lb 
rule for port 6443.
<img width="1428" height="691" alt="05" 
src="https://github.com/user-attachments/assets/a4f95d7e-e815-4745-b892-3427ad65dc15";
 />

Sixth screenshot: Another view of the public IP addresses in the VPC, with the 
"Acquire new IP" button.
<img width="1005" height="689" alt="06" 
src="https://github.com/user-attachments/assets/77c155f1-a3d9-424c-b09e-52ae438a4811";
 />



Questions:

Is my operation correct? Did I miss something in configuring the load balancer 
or the network?
How should the External Load Balancer IP Address typically be obtained when 
creating a HA K8s cluster in CloudStack? Does it need to be a specific type of 
IP or configured in a particular way?
Does this require creating a separate Nginx virtual machine for load balancing, 
or can I use CloudStack's built-in LB features?
If I leave the External Load Balancer IP Address blank, the cluster creates 
successfully, but will this lead to all worker nodes pointing to a single 
control node, causing a single point of failure if that node goes down?



If anyone has successfully set up a HA K8s cluster in a VPC like this, could 
you share your steps or any gotchas? I've been following the general 
documentation, but it seems like there might be something specific to VPCs or 
network types that I'm overlooking.
Thank you so much for your help! I really appreciate the community's support. 
Best wishes to everyone.
Best regards

GitHub link: https://github.com/apache/cloudstack/discussions/11599

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: [email protected]

Reply via email to