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.

How I Passed the CKA (Certified Kubernetes Administrator) Exam

I’ve just passed the CKA. 🎉 Here’s exactly how I prepared, what I practiced, how I set up my terminal, and the mindset I used on exam day. No spoilers, no NDA violations—just the process that worked for me. TL;DR Learn by doing: daily labs > passive videos. Automate muscle memory: aliases, completion, templates. Use kubectl explain + --dry-run=client -o yaml to avoid YAML typos. Be ruthless with time: solve, verify, move on, return later. My 4-Week Study Plan Week 1 — Core Workloads & Kubectl Pods, Deployments, DaemonSets, Jobs/CronJobs Services (ClusterIP/NodePort/LoadBalancer), Probes, ConfigMaps, Secrets Hands-on: create → tweak → roll back → scale Week 2 — Cluster Admin Basics Control plane components, kubelet & static Pods, kubeadm basics Node ops: cordon/drain/uncordon, taints/tolerations Backups (etcd snapshot/restore concepts), upgrades flow Week 3 — Networking & Storage CNI basics, NetworkPolicies, Ingress StorageClasses, PV/PVC, CSI, access modes, reclaim policies Week 4 — Security & Troubleshooting RBAC (Roles, ClusterRoles, Bindings), ServiceAccounts Scheduling (affinity/anti-affinity, topology spread), resources/limits Troubleshooting: events/logs, image pulls, CrashLoopBackOff, DNS Daily rhythm: 60–90 min labbing + 15–30 min notes + quick review of mistakes. ...

August 27, 2025 · 5 min · Umberto Domenico Ciccia

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