GithubHelp home page GithubHelp logo

0xbochi / kubernetes-the-hard-way Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mmumshad/kubernetes-the-hard-way

0.0 0.0 0.0 1.63 MB

Bootstrap Kubernetes the hard way on Vagrant on Local Machine. No scripts.

License: Apache License 2.0

Shell 90.85% Python 9.06% Vim Script 0.09%

kubernetes-the-hard-way's Introduction

Kubernetes The Hard Way

Updated: March 2024

This tutorial walks you through setting up Kubernetes the hard way on a local machine using a hypervisor. This guide is not for people looking for a fully automated command to bring up a Kubernetes cluster. If that's you then check out Google Kubernetes Engine, or the Getting Started Guides.

Kubernetes The Hard Way is optimized for learning, which means taking the long route to ensure you understand each task required to bootstrap a Kubernetes cluster. Note that the cluster when built will not be accessible from your laptop browser - that isn't what this is about. If you want a more useable cluster, try one of these.

This tutorial is a modified version of the original developed by Kelsey Hightower. While the original one uses GCP as the platform to deploy kubernetes, we use a hypervisor to deploy a cluster on a local machine. If you prefer the cloud version, refer to the original one here

The results of this tutorial should not be viewed as production ready, and may receive limited support from the community, but don't let that stop you from learning!
Note that we are only building 2 controlplane nodes here instead of the recommended 3 that etcd requires to maintain quorum. This is to save on resources, and simply to show how to load balance across more than one controlplane node.

Before shouting "Help! It's not working!"

Please note that with this particular challenge, it is all about the minute detail. If you miss one tiny step anywhere along the way, it's going to break!

Note also that in developing this lab, it has been tested many many times! Once you have the VMs up and you start to build the cluster, if at any point something isn't working it is 99.9999% likely to be because you missed something, not a bug in the lab!

Always run the cert_verify.sh script at the places it suggests, and always ensure you are on the correct node when you do stuff. If cert_verify.sh shows anything in red, then you have made an error in a previous step. For the controlplane node checks, run the check on controlplane01 and on controlplane02

Target Audience

The target audience for this tutorial is someone planning to support a production Kubernetes cluster and wants to understand how everything fits together.

Cluster Details

Kubernetes The Hard Way guides you through bootstrapping a highly available Kubernetes cluster with end-to-end encryption between components and RBAC authentication.

Node configuration

We will be building the following:

  • Two control plane nodes (controlplane01 and controlplane02) running the control plane components as operating system services. This is not a kubeadm cluster as you are used to if you have been doing the CKA course. The control planes are not themselves nodes, therefore will not show with kubectl get nodes.
  • Two worker nodes (node01 and node02)
  • One loadbalancer VM running HAProxy to balance requests between the two API servers and provide the endpoint for your KUBECONFIG.

Getting Started

  • If you are using Windows or Intel Mac, start here to deploy VirtualBox and Vagrant.
  • If you are using Apple Silicon Mac (M1/M2/M3), start here to deploy Multipass.

kubernetes-the-hard-way's People

Contributors

kelseyhightower avatar mmumshad avatar fireflycons avatar vpalazhi avatar m-ayman avatar sujiar37 avatar sudo-soniboy avatar k2-kk avatar gottsman avatar b10s avatar ksingh7 avatar srikanth787 avatar msadofschi avatar lzecca78 avatar lfaoro avatar amouat avatar adam-sandor avatar thilees avatar gamename avatar rana-singh-tej avatar tamilavi avatar levackt avatar chaturvedisulabh avatar sudhirrs avatar bronson avatar raesene avatar bpeatman avatar ricardosilva86 avatar estesp avatar paraita avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.