[!NOTE]
Learn how to setup the fully kubernetes cluster inside your local environment
Vargrant to configuration the VM with providerkindkind clustercilium and ebpf - The powerful kernal service of kubewekend clusterKubewekend Cluster[!NOTE]
Supported K8s Distribution with Kubewekend
| Kubewekend Cluster Distribution | Local | VM | VPS Remote |
|---|---|---|---|
| Kind (K8s in Docker) | β | β | β³ |
| K3s | π§ | π§ | π§ |
| RKE2 | π§ | π§ | π§ |
[!NOTE]
Read more at Kubewekend Session 1: Build up your host with Vagrant
vagrant and virtualbox by# Use can use another provider: https://developer.hashicorp.com/vagrant/docs/providers
# Provision only master
vagrant up k8s-master-machine --provider=virtualbox
# Provision 1 master and 1 worker
vagrant up k8s-master-machine k8s-worker-machine-1 --provider=virtualbox
# You can provision more worker with regex pattern
vagrant up "/k8s-worker-machine-[2-3]/" --provider=virtualbox
[!NOTE]
After the upgrade 12/2025 and 01/2026, Ansible Playbooks are already rebuilt for multiple concepts which allow you configure a lots of stuff with your Kind cluster to test and experiment K8s features
For more information, you can see what are implementing via table belows
| Name of Task | Description | Playbook | Tags | State |
|---|---|---|---|---|
| Install Common Kubewekend Tools | Install common libraries,kind and dependencies for your host | kind-playbook.yaml | install_common | β |
| Setup Kind Cluster | Create Kind Cluster with mounting kind-config base on template to ansible host | kind-playbook.yaml | setup_kind | β |
| Setup Kind Network (CNI) | Setup network for Kind Cluster in the situation disableDefaultCNI is true (Options: Calico, Flannel or Cilium) | kind-playbook.yaml | setup_kind | β |
| Setup Load Balancer for Kind cluster | Setup Load Balancer for Kind Cluster for external accessing services as type LoadBalancer (Options: metallb, cloud-provider-kind, cilium-ipam-lb) | kind-playbook.yaml | setup_kind | β |
| Setup Ingress Controller for Kind cluster | Setup Ingress Controller for Kind Cluster (Options: NGINX, Traefik, Cilium or Kong) | kind-playbook.yaml | setup_kind | β |
| Setup GatewayAPI for Kind cluster | Setup GatewayAPI for Kind Cluster (Options: Kong, Cilium or Traefik) | kind-playbook.yaml | setup_kind | β |
| Setup Network Forwarding for port 80/443 from home to Kind cluster | Setup Network Forwarding for Kind Cluster (from host to kind cluster) with forwarding rules by socat | kind-playbook.yaml | setup_kind | β |
| Remove Kind cluster | Remove the Kind cluster and related component when you want to destroy the cluster | kind-playbook.yaml | setup_kind | β |
| Ingress test deployment in side the cluster | Ingress test deployment in side the cluster | k8s-utilities-playbook.yaml | ingress_test | β |
| API Gateway test deployment in side the cluster | API Gateway test deployment in side the cluster | k8s-utilities-playbook.yaml | apigateway_test | β |
| Setup cert-manager for the cluster | Setup cert-manager for the cluster | k8s-utilities-playbook.yaml | certmanager | β |
| Setup Dashboard for the cluster | Setup Dashboard for the cluster | k8s-utilities-playbook.yaml | dashboard | β |
| Setup Secret Management for the cluster | Setup Secret Management for the cluster | k8s-utilities-playbook.yaml | secret_management | β |
| Setup K8s Extensions for the cluster | Setup K8s Extensions for the cluster | k8s-utilities-playbook.yaml | k8s_extensions | β |
| Setup GitOps for the cluster | Setup GitOps for the cluster | k8s-utilities-playbook.yaml | gitops | β |
[!IMPORTANT]
To making ansible work as requirement when setup Kubewekend, you should refer to inventories with vars file at master.yaml
# Execution Directory: ./
# Setup SSH key for ansible
bash ./scripts/kind-clusters/operate-kind-cluster.sh
# Testing the host connection
ansible -i ./ansible/inventories/hosts all -m ping
# Execution configuration
ansible-playbook -i ./ansible/inventories/hosts --extra-vars="host_name=k8s-master-machine" --tags="tags_you_want" ansible/ansible-playbook-you-want.yaml
For install helm-charts from kubewekend, you can use command
helm repo add kubewekend https://kubewekend.xeusnguyen.xyz
Specific Vagrantfile
[!IMPORTANT]
In repositories will be defined some
Vagrantfilefor two type K8s for base and ceph, for specific the Vagrantfile you should specific them via environment variables. Explore more at: StackOverFlow - Specify Vagrantfile path explicity, if not plugin
# Run as usual for base version (Default: Vagrantfile)
vagrant up name-of-your-machine
# Run specific Vagrantfile for CEPH version (Example: Vagrantfile.ceph)
VAGRANT_VAGRANTFILE=Vagrantfile.ceph vagrant up name-of-your-machine
Vargrant to configuration the VM with provider[!NOTE]
This lab is take the topic around play and practice with
vagrant- the software can help you provide the virtual machine in your host. First step way to setupkubernetescluster inside your machine, and play with on next session
Read full article about session at Kubewekend Session 1: Build up your host with Vagrant
kind[!NOTE]
This lab is practice with ansible the configuration for setup
kindcluster inside machine on the previous session
Read full article about session at Kubewekend Session 2: Setup Kind cluster with Ansible
kind cluster[!NOTE]
This session talk about basically architecture and learn more fundamental components inside kubernetes, and what the structure of them inside clusters
Read full article about session at Kubewekend Session 3: Basically about Kubernetes architecture
cilium and ebpf - The powerful kernal service of kubewekend cluster[!NOTE]
This session will talk and learn about eBPF and the especially representation of eBPF are cilium and hubble to become main CNI of Kubewekend and talk about Observability of them
Read full article about session at Kubewekend Session 4: Learn about ebpf with hubble and cilium
Kubewekend Cluster[!NOTE]
This session is really pleasant when we talk about how can create HA cluster with
kubewekend, learn more the components insidekubernetesand try figure out aboutnetwork,security,configuration,container runtimeandsystemvia this session
Read full article about session at Kubewekend Session 5: Build HA Cluster
[!NOTE]
This session is covered about topic storage inside
Kubernetescluster, how can they work withCSIArchitecture and why we need toCSI Driverfor handle this stuff. Furthermore, I try to practice withCeph- one of popular storage opensource forKubewekendcluster
Read full article about session at Kubewekend 6: CSI and Ceph with Kubewekend
[!NOTE]
This session explores core networking concepts in Kubernetes, guiding you through the setup of new deployments and demonstrating how to expose services for external access using Ingress and the Gateway API. We also delve into External LoadBalancer concepts and the operational nuances of managing them via Cilium NodeIPAM. By the end of this session, you will understand how to bridge the gap between cluster-internal services and external clients using modern, eBPF-powered networking strategies.
[!NOTE]
This lab is try to take you to journey to learn about new CSI for Kubernetes,
Longhornand deliver you to new method to handle transfer large file via network by NFS protocol. I also provide more information aboutiSCSI,nfs-ganeshaand techniquerdma
Read full article about session at Kubewekend Session Extra 1: Longhorn and the story about NFS in Kubernetes
[!NOTE]
This article aims to provide you with insights into alternatives for self-hosting a full Kubernetes cluster. Both K3s and RKE2 are strong contenders worth considering to guide your decision. Focusing on the self-hosted approach with RKE2, I want to share more about my experiences working with it over the past four months.
Read full article about session at Kubewekend Session Extra 2: Rebuild Cluster with RKE2 or K3S
[!NOTE]
This article is my story about wrestling with networking in Kubernetes. Iβll cover the frustrating problems that arise when your pods canβt communicate with services, CoreDNS fails to resolve domains, and the tough issues involving CNI and the ChecksumTX of network interfaces in Kubernetes.
Read full article about session at Kubewekend Session Extra 3: RKE2 and The Nightmare with Network and CoreDNS
[!NOTE]
This article shares my experience setting up a sandbox environment with Kind to adapt new Kubernetes environments within CI/CD pipelines. Iβll provide several ideas for running both CPU and GPU applications, demonstrating their behavior specifically within GitLab CI.
Read full article about session at Kubewekend Session Extra 4: Kind and Sandbox environment for GitLab CI