Skip to content

RHabereder/zero-to-k8s

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
cd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Zero-To-k8s

This project tries to ease the creation of a local Kubernetes environment, including all the awesome devops tools you can possibly need. It should be as easy as a "./startup.sh" to get you up and running and a "k3d delete --name dev" to clean up again.

If anything you like is missing, hit me up! I love learning new awesome tools!

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

What things you need to install the software and how to install them:

Docker
Dialog (If you are lazy, like me)

What this script was tested on:

WSL (Frequently, since this is my main driver for development-stuff)
Ubuntu
MacOS 10.15

What it hopefully runs on one day:

Git Bash/MinGW (This one is pretty hard to work with actually. It randomly dislikes rm'ing stuff and borks the permissions so a relog is needed)

Installing

Edit startup.sh and add/remove stuff you need/want in

#Possible Single Values: tekton|rio|drone|concourse|argocd
CI="tekton"

#Possible Single Values: traefik|traefik2|nginx|istio|none
INGRESS="traefik2"

#Possible values: (Spaced-Delimited Multiple possible): prometheus grafana jaeger registry k8s-dashboard rio-dashboard istio
TOOLS="prometheus grafana jaeger registry k8s-dashboard"

And fire it up with

./startup.sh

For new-comers to linux, or just lazy people like me, install dialog with the package-manager of your choice and run

./startup_dialog.sh

After the installation your console should tell you the different URLs you should know about, if I didn't miss anything.

What doesn't work yet / is incomplete or a todo

  • Istio Gateway Stuff To be honest, I don't fully understand how the Istio Ingress works yet, it just seems much more complicated than traefik/nginx (it's still envoy) which would explain it's brutal amounts of configuration/documentation. I will try to fix the istio ingresses as soon as I get a grasp on how it works
  • Concourse I want to blame it on concourse, since they don't have an explicit option to configure a proxypath/context-path, but that could be on me too. Documentation get's tough to read after a few hours of struggling and I could have easily missed it too.
  • Sample Pipelines for the CD Tools Not really a priority as of now, but it would be a nice to have if there were easy to copy files/descriptors for the various CD tools

Built With

  • Base:
    • k3d - The Tool used to deploy kubernetes
    • rancher - Run Kubernetes Everywhere with Rancher
  • CD:
    • TektonCD - The preferred tool to run your ci/cd
    • Tekton Dashboard - Dashboard for Tekton Pipelines
    • Concourse CI - An amazing Open Source continuous Thing-Doer
    • rancher rio - The Application Deployment Engine for Kubernetes
    • argocd - Declarative GitOps CD for Kubernetes
  • Ingress:
    • NGINX - Production-Grade Ingress Controller for Kubernetes
    • Traefik - My favorite Ingress Controller and proxy
    • Istio - The defacto standard in terms of Service-Mesh
  • Tools:
    • Grafana - Awesome Visualization of Prometheus Data
    • Prometheus - The Standard Metric Collector
    • Jaeger - An open source, end-to-end distributed tracing tool
    • k8s-dashboard - A general purpose, web-based UI for Kubernetes clusters
    • MinIO - High Performance, Kubernetes Native Object Storage
  • DBs:
  • Hopefully even more in the future!

Authors

License

This project is licensed under the Unlicense - see the LICENSE file for details

Acknowledgments

  • Rancher for being awesome and developing awesome software
  • The k8s ecosystem
  • People that build Helm Charts
  • Everyone that asked the questions I look up on stackoverflow
  • Anyone whose code I reused/changed/used as inspiration!

About

A simple project to get a minimal k8s cluster up and running. Includes additional useful tools for the everyday devops.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages