mareq / k8s6r

Kubernetes Cluster

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Kubernetes Cluster

An example Kubernetes cluster with working examples.

Dependencies

  • docker

  • kubectl

  • kustomize

  • k9s (optional, but strongly recommended)

  • jq

  • yq (Go alternative)

    $ go install github.com/mikefarah/yq/v4@v4.34.2

    The v4.34.2 is the most recent version that still works with version of Go (v1.19.8) available on stable Debian (Bookworm).

    Note that the Python alternative available via apt install yq will NOT work, because it:

    • converts YAML to JSON by default (no -o argument)
    • does not parse JSON (unknown argument -p), which is why it is not used here

    Make sure that it is either not installed or the $PATH is set such that the Go alternative (usually installed into ${HOME}/.local/share/go/bin/yq) is used.

Contents

Kubernetes Cluster

  • KinD: Local Kubernetes cluster using Docker container "nodes".

  • MiniKube: Lightweight local Kubernetes cluster. [TODO]

  • Common: Common general cluster configuration/deployments.

Debug

  • Debug: The troubleshooting pod providing interactive shell running inside the Kubernetes cluster.

GitOps

  • ArgoCD: Declarative GitOps continuous delivery tool.
  • FluxCD: Continuous delivery tool for Kubernetes. [TODO]

Load Balancer

  • MetalLB: Load balancer for bare metal Kubernetes clusters (such as KinD).

Ingress Controller

  • NginX: Ingress Controller based on NginX.
  • Traefik: Traefik Ingress Controller based on Traefik. [TODO]

Workload

  • Static Page: Simple static web page.
  • Git Server: Git server providing access to repositories over HTTP.

Usage

  • scripts
    • start.sh: Bootstrap the Kubernetes cluster with all the workloads.
    • stop.sh: Tear down the Kubernetes cluster. Note that any changes will be lost.

Alternatively, each component can be manipulated using its specific scripts described in the respective read-me files.

About

Kubernetes Cluster


Languages

Language:Shell 93.0%Language:HTML 4.7%Language:CSS 1.2%Language:Dockerfile 1.1%