I'm new to Kubernetes and their is a concept I'm not sure to fully understand: Cloud Providers.
- I have installed my Kubernetes cluster using RKE (Rancher engine).
- My cluster is set on top of rancher2.
- My nodes are Virtual Machines hosted an OVH server.
I manage to have running applications with L7 ingresses and ClusterIP services but everytime I try to have a L4 LoadBalancer, the LoadBalancer is stuck in pending state. According to https://github.com/rancher/rancher/issues/14424 this is because I doesn't have any CloudProvider.
But what is exactly the purpose of a CloudProvider? Isn't it to run Kubernetes nodes, pods, ... on the cloud? If yes, why should I bother getting a CloudProvider if my applications are pods are already on the cloud and accessible from the outside thanks to my configuration.
So my following questions are:
- What is exactly the role of a CloudProvider?
- Is it useful in my environment ?
- Is it mandatory to have a CloudProvider in order to run L4 Load Balancer ?
- What is the alternative to a L4 LoadBalancer ?
- Can't I have custom CloudProvider not relying on one of those listed here: https://kubernetes.io/docs/concepts/cluster-administration/cloud-providers/ ? Like a self-hosted CloudProvider running NGINX or something ?
Thanks for any clarification/recommandation on this subject. -