Skip to content

zenon0777/inceptionOfThings

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Inception of Things

A collection of infrastructure automation projects that demonstrate modern DevOps practices using industry-standard tools for container orchestration and infrastructure as code.

Core Technologies

  • Vagrant: Tool for building and managing virtual machine environments
  • VirtualBox: Hypervisor for running virtual machines
  • K3s: Lightweight Kubernetes distribution by Rancher (perfect for development and edge computing)
  • Kubernetes: Container orchestration platform
  • Docker: Container runtime (used by K3s)
  • NGINX Ingress Controller: For managing external access to services
  • Debian Bookworm: Linux distribution used for all VMs

Project Structure

p1/ - Basic K3s Cluster Setup

  • Purpose: Demonstrate a minimal production-like Kubernetes cluster setup
  • Technologies:
    • K3s (Kubernetes distribution)
    • Systemd (service management)
    • SSH key-based authentication
  • Components:
    • Server Node (mhaddaouS):
      • K3s control plane components
      • etcd key-value store (embedded in K3s)
      • Kubernetes API server
    • Worker Node (mhaddaouSW):
      • K3s agent
      • Container runtime (containerd)
  • Networking:
    • Private network: 192.168.56.0/24 (VirtualBox Host-Only Network)
    • Server IP: 192.168.56.110
    • Worker IP: 192.168.56.111
    • Flannel CNI (Container Network Interface) for pod networking

p2/ - Multi-Application Kubernetes Deployment

  • Purpose: Showcase a complete application deployment pipeline on Kubernetes
  • Technologies:
    • Kubernetes Deployments
    • Kubernetes Services (ClusterIP)
    • Ingress NGINX Controller
    • Kubernetes Secrets (for Docker Hub credentials)
    • YAML configuration management
  • Components:
    • Single Node Cluster (alouziziS):
      • K3s server with all control plane components
      • Container runtime (containerd)
      • Built-in service load balancer (Klipper)
    • Application Stack:
      • Multiple web applications containerized and deployed as separate services
      • Service discovery via Kubernetes DNS
      • Ingress rules for HTTP/HTTPS routing
      • Configuration management using ConfigMaps and Secrets

p3/ - Advanced Kubernetes Configuration

  • Purpose: Store additional Kubernetes manifests and configurations
  • Contents:
    • Custom Resource Definitions (CRDs)
    • Helm charts (if applicable)
    • Advanced networking policies
    • Storage class definitions
    • RBAC configurations

bonus/ - Additional Automation and Tools

  • Purpose: Extra utilities and enhancements
  • Contents:
    • Custom scripts for cluster management
    • Monitoring stack configurations (Prometheus, Grafana)
    • Logging solutions (Loki, Fluentd)
    • CI/CD pipeline (ArgoCD/GitLab)
    • GitLab local server (for ArgoCD)
    • Security hardening scripts

Prerequisites

  1. VirtualBox
  2. Vagrant
  3. SSH key pair (for authentication)

Getting Started

p1 - Basic K3s Cluster

cd p1
vagrant up

This will:

  1. Start two VMs (server and worker)
  2. Install K3s on the server
  3. Join the worker to the cluster
  4. Configure SSH access

p2 - Multi-Application Deployment

cd p2
vagrant up

This will:

  1. Start a single VM with K3s
  2. Deploy multiple web applications
  3. Set up services and ingress

Accessing the Cluster

For p1:

  • SSH to server: vagrant ssh mhaddaouS
  • SSH to worker: vagrant ssh mhaddaouSW
  • Check nodes: kubectl get nodes

For p2:

  • SSH to server: vagrant ssh alouziziS
  • Check deployments: kubectl get deployments
  • Check services: kubectl get services

Cleanup

To stop and remove VMs:

vagrant destroy -f

Notes

  • Ensure you have sufficient system resources (RAM, CPU) to run the VMs
  • The project uses Debian Bookworm as the base OS
  • SSH keys are automatically configured for password-less access

Author

Project maintained by the Inception of Things team

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages