All Projects → rak8s → Rak8s

rak8s / Rak8s

Licence: mit
Stand up a Raspberry Pi based Kubernetes cluster with Ansible

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Rak8s

rak8s
Stand up a Raspberry Pi based Kubernetes cluster with Ansible
Stars: ✭ 362 (+2.26%)
Mutual labels:  ansible-playbooks, kubernetes-cluster, kubernetes-setup, kubectl, kubeadm, raspberry-pi-3
GPU-Kubernetes-Guide
How to setup a production-grade Kubernetes GPU cluster on Paperspace in 10 minutes for $10
Stars: ✭ 34 (-90.4%)
Mutual labels:  kubernetes-cluster, kubernetes-setup, kubectl, kubeadm
Terraform Aws Kubernetes
Terraform module for Kubernetes setup on AWS
Stars: ✭ 159 (-55.08%)
Mutual labels:  kubernetes-cluster, kubernetes-setup, kubeadm
Kainstall
Use shell scripts to install kubernetes(k8s) high availability clusters and addon components based on kubeadmin with one click.使用shell脚本基于kubeadmin一键安装kubernetes 高可用集群和addon组件。
Stars: ✭ 198 (-44.07%)
Mutual labels:  kubernetes-cluster, kubernetes-setup, kubeadm
Ansible Rpi K8s Cluster
Deploy Raspberry Pi Kubernetes cluster using Ansible
Stars: ✭ 131 (-62.99%)
Mutual labels:  ansible, raspberry-pi, kubernetes-cluster
Raspbernetes
Raspberry Pi Kubernetes Cluster
Stars: ✭ 53 (-85.03%)
Mutual labels:  raspberry-pi, kubernetes-cluster, kubernetes-setup
Libvirt K8s Provisioner
Automate your k8s installation
Stars: ✭ 106 (-70.06%)
Mutual labels:  kubectl, kubernetes-setup, kubeadm
Kubeadm Ansible
Build a Kubernetes cluster using kubeadm via Ansible.
Stars: ✭ 479 (+35.31%)
Mutual labels:  ansible, kubernetes-cluster, kubeadm
kainstall-offline
kainstall tools offline file
Stars: ✭ 31 (-91.24%)
Mutual labels:  kubernetes-cluster, kubernetes-setup, kubeadm
kubernetes-cluster
Vagrant As Automation Script
Stars: ✭ 34 (-90.4%)
Mutual labels:  kubernetes-cluster, kubernetes-setup, kubeadm
kubeadm-vagrant
Setup Kubernetes Cluster with Kubeadm and Vagrant
Stars: ✭ 49 (-86.16%)
Mutual labels:  kubernetes-cluster, kubectl, kubeadm
Ansible Role Kubernetes
Ansible Role - Kubernetes
Stars: ✭ 247 (-30.23%)
Mutual labels:  ansible, kubectl, kubeadm
aws-kubernetes
Kubernetes cluster setup in AWS using Terraform and kubeadm
Stars: ✭ 32 (-90.96%)
Mutual labels:  kubernetes-cluster, kubernetes-setup, kubeadm
aksctl
An easy to use CLI for AKS cluster
Stars: ✭ 46 (-87.01%)
Mutual labels:  kubernetes-cluster, kubernetes-setup, kubectl
Rust Raspberrypi Os Tutorials
📚 Learn to write an embedded OS in Rust 🦀
Stars: ✭ 7,275 (+1955.08%)
Mutual labels:  raspberry-pi, raspberry-pi-3
admission-webhook-example-with-openfaas
Use OpenFaaS functions as Kubernetes Validating Admission Webhook
Stars: ✭ 24 (-93.22%)
Mutual labels:  kubernetes-cluster, kubectl
kubernetes-workshop
Kubernetes Workshop
Stars: ✭ 35 (-90.11%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
terraform-provider-kubeadm
A Terraform provider/provisioner for deploying Kubernetes with kubeadm
Stars: ✭ 60 (-83.05%)
Mutual labels:  kubernetes-cluster, kubeadm
k8s-install.sh
k8s国内安装脚本: 不整那么复杂, 复制-粘贴-敲回车就好了.
Stars: ✭ 16 (-95.48%)
Mutual labels:  kubernetes-cluster, kubernetes-setup
Kube Vip
Kubernetes Control Plane Virtual IP and Load-Balancer
Stars: ✭ 262 (-25.99%)
Mutual labels:  raspberry-pi, kubernetes-cluster

rak8s

(pronounced rackets - /ˈrækɪts/)

Stand up a Raspberry Pi based Kubernetes cluster with Ansible

rak8s is maintained by Chris Short and a community of open source folks willing to help.

Why?

  • Raspberry Pis are rad
  • Ansible is awesome
  • Kubernetes is keen

ARM is going to be the datacenter and home computing platform of the future. It makes a lot of sense to start getting used to working in its unique environment.

Also, it's cheaper than a year of GKE. Plus, why not run Kubernetes in your home?

Prerequisites

Hardware

  • Raspberry Pi 3 (3 or more)
  • Class 10 SD Cards
  • Network connection (wireless or wired) with access to the internet

Software

  • Raspbian Lite (installed on each Raspberry Pi)

  • Raspberry Pis should have static IPs

    • Requirement for Kubernetes and Ansible inventory
    • You can set these via OS configuration or DHCP reservations (your choice)
  • Ability to SSH into all Raspberry Pis and escalate privileges with sudo

    • The pi user is fine
    • Please change the pi user's password
  • Ansible 2.7.1 or higher

  • kubectl should be available on the system you intend to use to interact with the Kubernetes cluster.

    • If you are going to login to one of the Raspberry Pis to interact with the cluster kubectl is installed and configured by default on the master Kubernetes master.
    • If you are administering the cluster from a remote machine (your laptop, desktop, server, bastion host, etc.) kubectl will not be installed on the remote machine but it will be configured to interact with the newly built cluster once kubectl is installed.

Recommendations

  • Setup SSH key pairs so your password is not required every time Ansible runs

Stand Up Your Kubernetes Cluster

Download the latest release or clone the repo:

git clone https://github.com/rak8s/rak8s.git

Modify ansible.cfg and inventory

Modify the inventory file to suit your environment. Change the names to your liking and the IPs to the addresses of your Raspberry Pis.

If your SSH user on the Raspberry Pis are not the Raspbian default pi user modify remote_user in the ansible.cfg.

Confirm Ansible is working with your Raspberry Pis:

ansible -m ping all

This may fail to ping if you have not setup SSH keys and only configured your Pi's with passwords

Deploy, Deploy, Deploy

ansible-playbook cluster.yml

Interact with Kubernetes

CLI

Test your Kubernetes cluster is up and running:

kubectl get nodes

The output should look something like this:

NAME       STATUS    ROLES     AGE       VERSION
pik8s000   Ready     master    2d        v1.9.1
pik8s001   Ready     <none>    2d        v1.9.1
pik8s002   Ready     <none>    2d        v1.9.1
pik8s003   Ready     <none>    2d        v1.9.1
pik8s005   Ready     <none>    2d        v1.9.1
pik8s004   Ready     <none>    2d        v1.9.1

Dashboard

rak8s installs the non-HTTPS version of the Kubernetes dashboard. This is not recommended for production clusters but, it simplifies the setup. Access the dashboard by running:

kubectl proxy

Then open a web browser and navigate to: http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

Need to Start Over?

Did something go wrong? Nodes fail some process or not joined to the cluster? Break Docker Versions with apt-update?

Try the process again from the beginning:

ansible-playbook cleanup.yml

Wait for everything to run and then start again with:

ansible-playbook cluster.yml

Where to Get Help

If you run into any problems please join our welcoming Discourse community. If you find a bug please open an issue and pull requests are always welcome.

Etymology

rak8s (pronounced rackets - /ˈrækɪts/)

Coined by Kendrick Coleman on 13 Jan 2018

References & Credits

These playbooks were assembled using a handful of very helpful guides:

A very special thanks to Alex Ellis and the OpenFaaS community for their assitance in answering questions and making sense of some errors.

Media Coverage

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].