Umberto Domenico Ciccia’s Blog

  • I’m Umberto Domenico, and welcome to my blog — a space where I share thoughts, lessons, and projects from my journey through cloud, DevOps, full-stack software engineering, and all things IT.
  • I write about what I build, what I break, and what I learn along the way — from coding and deploying to securing and scaling.
  • If it’s your first time here, check out my featured posts or read more about who I am.

My Raspberry Pi K3s Adventure: Installing Jenkins, Grafana & Prometheus with Helm

🚀 Why I Started This Project You know that feeling when you’ve just unboxed a couple of Raspberry Pi boards and your mind races with all the possibilities? That was me. Two Raspberry Pi 4s, a mini rack, and a network switch were staring at me, and the idea hit: “Let’s build a K3s cluster, and on top of it run Jenkins, Grafana, and Prometheus.” Not for production — but for learning, for fun, and for the sheer thrill of watching tiny computers act like a mini data center. ...

August 10, 2025 · 5 min · Umberto Domenico Ciccia

Building a Raspberry Pi 4 K3s Cluster

Introduction After some tinkering, I decided to build an homebalb with 2-node Raspberry Pi 4 cluster running K3s — one master and one worker — to learn better Kubernetes and host my own services. In this post, I’ll walk you through the process: from hardware setup to K3s installation and homepage deployment with ingress access. Hardware Setup Here’s the base hardware I used: 2× Raspberry Pi 4 (4GB RAM each) Mini rack with dual fans for cooling Gigabit network switch Ethernet cables Personal PC (used as a proxy to manage the cluster) Raspberry Pi OS installed on both Pis (SSH enabled) The Raspberry Pis are connected to the switch, and my DHCP server handles: ...

August 8, 2025 · 3 min · Umberto Domenico Ciccia

Cka Notes

Core concepts Cluster Architecture Master node: orchestrate nodes → schedule, monitor, worker, state, manage cluster Worker node: host applications as container Master node components: ETCD: database of the state of the cluster KUBE-SCHEDULER: schedule pods to worker nodes CONTROLLER-MANAGER NODE-CONTROLLER: orchestrate nodes REPLICATION-CONTROLLER: orchestrate replication groups KUBE-APISERVER: expose k8s cluster from external thought api Worker node components: CONTAINER RUNTIME: container runtime engine KUBELET: agent that run in every node, for receive api call from api server KUBE-PROXY: manage communication between container, nodes Container runtime interface Container runtime interface CRI: allow to use k8s with all container runtime ...

August 6, 2025 · 22 min · Umberto Domenico Ciccia

How to Develop a Jenkins Pipeline with a Custom Agent Pod Template from an External Repository

Jenkins pipelines running on Kubernetes offer powerful customization using pod templates. In this post, you’ll learn how to define a custom Kubernetes agent pod in a YAML template located in a different Git repository, and then use that in your Jenkins pipeline. 🧱 Requirements Jenkins with the Kubernetes plugin A Git repo hosting your custom pod template YAML Access to a Kubernetes cluster (like EKS, GKE, or Minikube) Git credentials stored in Jenkins (e.g., via credentialsId) 📁 Repository Structure We assume you have two Git repositories: ...

July 31, 2025 · 2 min · Umberto Domenico Ciccia

How I Passed the KCNA Exam: A Practical Guide

Introduction Passing the Kubernetes and Cloud Native Associate (KCNA) exam was a great milestone in my cloud journey. In this post, I’ll walk you through the strategy I used to prepare and pass the exam on the first attempt. I focused on hands-on experience, curated courses, and repeated quiz practice to reinforce core concepts. Why KCNA? KCNA is a foundational certification offered by the Cloud Native Computing Foundation (CNCF). It’s designed to validate your understanding of Kubernetes, cloud-native principles, container orchestration, and open-source tools in the CNCF landscape. ...

June 28, 2025 · 2 min · Umberto Domenico Ciccia