KubeZilla Community Collaborative Project
We are aiming to build a largest Kubernetes Community Cluster and target to showcase it on OSCONF Kochi Day.
Why are we doing this?
It's great opportunity for community members to learn, collaborate and contribute around Kubernetes and related technologies. As a team, we will learn how Kubernetes cluster is setup, how apps gets deployed over Cloud and what kind of microservices can be run possibly on these HUGE cluster nodes.Community members will learn how monitoring tools like Prometheus and Grafana can be deployed and fetch time-series metrics out of these HUGE cluster of nodes. In nutshell, it's 2-3 hour effort which will let every single individual to learn Kubernetes and understand its scalability.
When?
We are targeting 27th June starting 2:00 PM till 4:00 PM for Kubezilla. Refer to Issue #6
Activity | Date | Time |
---|---|---|
Rehearsal | 21st June 2020 | 11:00 AM to 1:00 PM |
Live Demo | 27th June 2020 | 2:00 PM to 4:00 PM |
How shall I join my worker node?
It's simple. Follow the below steps:
Installing Docker
curl -sSL https://get.docker.com/ | sh
Run the below container (with your choice of key=value)
sudo docker run -d --privileged --restart=unless-stopped \
--net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.4.5 \
--server https://139.59.51.88 --token v4lqhz4x9msbx8zx7jkz7swbcqxltx9w9jrg59hwngtvgqxwhvqhjs \
--ca-checksum aa504f82a9e75259dd45a9d65e13d094899921fbbe7e1fc9a1daa721f5fefc8d --worker \
--label key=value
That's it. Open up osconf.kubezilla.com with kubezilla as login and kubezilla as password
Contribution Proposal
- Create a pull request if you're interested to contribute your FREE Cloud instance(AWS/Azure/GCP/DO).
- You can even contribute Your Raspberry Pi too if you know how to connect it to this cluster.
- Please also include your full name, Twitter's handle and your company name.
- Please note that the node's specification for this run is XGB of RAM with X vCore. We're sorry that 512MB will be not enough for our testing.
What's mininum requirements of a node?
- Rancher
- Ubuntu 16.04+
- Debian 9+
- CentOS 7
- Red Hat Enterprise Linux (RHEL) 7
- Fedora 25+
- HypriotOS v1.0.1+
- Container Linux (tested with 1800.6.0)
- 2 GB or more of RAM per machine (any less will leave little room for your apps)
- 2 CPUs or more
- Full network connectivity between all machines in the cluster (public or private network is fine)
- Unique hostname, MAC address, and product_uuid for every node. See here for more details.
- Certain ports are open on your machines. See here for more details.
- Swap disabled. You MUST disable swap in order for the kubelet to work properly.
- TCP Inbound 10250 open for Kubelet API
- TCP Inbound 30000-32767 open for NodePort Services
Size of Master & Master Components
On GCE/Google Kubernetes Engine, and AWS, kube-up automatically configures the proper VM size for your master depending on the number of nodes in your cluster. On other providers, you will need to configure it manually.
For reference, the sizes we use on GCE are
1-5 nodes: n1-standard-1
6-10 nodes: n1-standard-2
11-100 nodes: n1-standard-4
101-250 nodes: n1-standard-8
251-500 nodes: n1-standard-16
more than 500 nodes: n1-standard-32
And the sizes we use on AWS are
1-5 nodes: m3.medium
6-10 nodes: m3.large
11-100 nodes: m3.xlarge
101-250 nodes: m3.2xlarge
251-500 nodes: c4.4xlarge
more than 500 nodes: c4.8xlarge
Contributors
Name | Company | Number of Nodes Expected to Contribute |
Machine Type |
---|---|---|---|
@ajeetsraina | Collabnix | 10 | |
@anmolnagpal | CloudDrove Inc. | 30 | t3.medium/t3a.medium (2 vCPUs, 4 GB) |
@cube8021 | Rancher Labs | 5 | |
@dostiharise (github) (linkedin) |
Alvyl Consulting | 32 | t3.medium/t3a.medium (2 vCPUs, 4 GB) |
@dostiharise (github) (linkedin) |
Alvyl Consulting | 3 | Raspberry Pis 3B+/4B |
@vinayaggarwal | Dellemc | 2 | |
@josanabr | Personal | 2 | Raspberry Pis 3B+/4B |
@kvenu | Personal | 2 | |
@MeenachiSundaram (github) (linkedin) |
Personal | 2 | Raspberry Pis 4B |
Your Name | Your Company Name | 8 |
Beginner's Guide
If you're an individual and it's your first time joining KubeZilla, we encourage you to not contribute more than 50 nodes.
Setting up Master Node
Goals
- This is the 1st collaborative project powered by Collabnix Slack community to form 100+ nodes
- This is being planned on the latest Kubernetes version
- Networking; We will be creating a large subnet /20 and trying to assign, as many as possible, IP addresses to each container on each node distributedly. We expect to have around ~1k IP addresses assigned and the workload application should be working fine.
- Once 100+ K8s cluster is setup, we will be running an application to see the performance
- We will be using Prometheus as well as Grafana for visualisation
Results
All experimental results will be provided publicly for all of you to analyze, write blogs, or even used as information for further development of your own commercial projects. Please feel free to use it.
Who's behind Kubezilla?
Kubezilla is a non-profit project organized by Docker Captains Ajeet Singh Raina and Marcos Nils. If you want to be part of the organization team or support through sponsorship, please send us a DM in Gitter.
Feel difficulty raising pr for contributing here ?
go and add your nodes here