-
Notifications
You must be signed in to change notification settings - Fork 11
Open
Labels
S1High impact on the end user ; this issue must be addressed as soon as possible.High impact on the end user ; this issue must be addressed as soon as possible.area/k0sRelated to k0s and k0sctl/cfctl features.Related to k0s and k0sctl/cfctl features.kind/enhancementIndicates new feature requests.Indicates new feature requests.status/acknowledgedIssue has been taken in account by the core team, but no planning is set.Issue has been taken in account by the core team, but no planning is set.
Description
Let's focus on Exoscale and a single availability group first.
There are multiple solutions, but this is my proposition. The idea is based on Slurm cloud-bursting. We need to solve two problems:
- How to spawn VM which will join a private network? The private repository with Ansible can help us.
- How to make the VM join the cluster?
cfctlcould be the answer.
Therefore, we should combine these two features. Because cfctl is similar to our Ansible.
- Implement in
cfctl, how to create nodes on Exoscale. - Implement a join mechanism. It's easy: healthcheck first with SSH, then use
cfctl apply(or whatever). - Implement the gRPC API for Cluster Autoscaler. Ref : https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/externalgrpc/README.md . Do not ignore the considerations. Hetzner seems to be a good example of expected user experience.
To add more details, here is the join mechanism for k0s:
- On a controller node, call
k0s token create --role=worker, this will create a join token. For extra security, the token must have an expiration time:k0s token create --role=worker --expiry=1h. - On the new virtual machine, via SSH, install k0s and call
sudo k0s install worker --token-file /path/to/token/file. - Then start:
sudo k0s start.
Ejecting a node is also easy: Cordon + Drain + Kubectl delete node. Then delete the VM.
This feature will certainly take time.
Metadata
Metadata
Labels
S1High impact on the end user ; this issue must be addressed as soon as possible.High impact on the end user ; this issue must be addressed as soon as possible.area/k0sRelated to k0s and k0sctl/cfctl features.Related to k0s and k0sctl/cfctl features.kind/enhancementIndicates new feature requests.Indicates new feature requests.status/acknowledgedIssue has been taken in account by the core team, but no planning is set.Issue has been taken in account by the core team, but no planning is set.