Actions
Task #11862
closed[grab me] automate creating k8s clusters in IPv6 environments
Start date:
07/07/2023
Due date:
% Done:
0%
Estimated time:
PM Check date:
Description
Motivation¶
- Creating a 1,2 or many k8s cluster should be a matter of "working seconds" and "setup minutes"
Environment¶
- Assume you have an IPv6 network, f.i. a /48
- Assume you have a router, such as bird
- Assume you have a dynamic number of hosts ("k8s hosts")
- Assume every k8s cluster will use 2x /64's
- one for pods
- one for services (effectively only /108 is used, but that is an implementation detail)
- Assume you can (and should) delegate the subnetworks of the /48 "automatically"
- i.e. define ranges that can be automatically deployed
Steps¶
- define how to create nodes
- either virtual or hardware nodes
- define how nodes are getting their networking
Updated by Nico Schottelius over 1 year ago
- Status changed from New to In Progress
- Assignee set to Nico Schottelius
Manual flow (VMs, OpenNebula)¶
- Create VMs ("get something ssh-able")
- Configure them with cdist so that crio, kubelet and friends exist ("make it k8s usable")
- Configure the routers to allow bgp peering with the VMs ("prepare the network")
- Define ranges (take them from netbox) ("select the network")
- Create kubeadm config
- Run kubeadm init --config ...
- Install cni (such as calico)
Sample k8s "clusters" h4g¶
VM | net |
2a0a-e5c0-2-2-0-84ff-fe41-f256.loves.ipv6.at.ungleich.ch | 2a0a:e5c0:2:18::/63 |
2a0a-e5c0-2-2-0-84ff-fe41-f259.loves.ipv6.at.ungleich.ch | 2a0a:e5c0:2:1a::/63 |
2a0a-e5c0-2-2-0-84ff-fe41-f258.loves.ipv6.at.ungleich.ch | 2a0a:e5c0:2:1c::/63 |
2a0a-e5c0-2-2-0-84ff-fe41-f25e.loves.ipv6.at.ungleich.ch | 2a0a:e5c0:2:1e::/63 |
Poor man's solution¶
- shell script with index
- configuring router with bgp/static routes
- assumption: range defined, nodes in network
Updated by Nico Schottelius about 1 year ago
- Status changed from In Progress to Closed
Actions