{"id":82,"date":"2026-05-19T13:12:40","date_gmt":"2026-05-19T17:12:40","guid":{"rendered":"https:\/\/beckesch.dev\/ops\/?p=82"},"modified":"2026-05-19T13:16:00","modified_gmt":"2026-05-19T17:16:00","slug":"leveling-up-my-kubernetes-fundamentals-in-the-homelab","status":"publish","type":"post","link":"https:\/\/beckesch.dev\/ops\/2026\/05\/19\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\/","title":{"rendered":"Leveling up my Kubernetes fundamentals in the homelab"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"leveling-up-my-kubernetes-fundamentals-in-the-home\"><\/h2>\n\n\n\n<p>Over the last weekend I worked through a hands\u2011on Kubernetes fundamentals module and rebuilt everything in my own homelab, from simple pods all the way to Helm\u2011based monitoring with the kube\u2011prometheus\u2011stack. The goal was not just to \u201cget it running\u201d, but to really understand how the core building blocks of a Kubernetes platform fit together for day\u2011to\u2011day DevOps work.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"from-single-pods-to-real-deployments\">From single Pods to real Deployments<\/h2>\n\n\n\n<p>The journey started with the basics: running containers as Pods, first via&nbsp;<code>kubectl run<\/code>&nbsp;and then as YAML manifests so everything is declarative and repeatable. On top of that I moved to Deployments, which add rolling updates, ReplicaSets, and proper lifecycle management instead of manually juggling pods. Playing with strategies like&nbsp;<code>RollingUpdate<\/code>&nbsp;and&nbsp;<code>Recreate<\/code>, plus tweaking&nbsp;<code>maxUnavailable<\/code>&nbsp;and&nbsp;<code>maxSurge<\/code>, made the rollout behavior very tangible and showed how Kubernetes protects you from breaking the whole app when a new version fails.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"services-networking-and-ephemeral-storage\">Services, networking and ephemeral storage<\/h2>\n\n\n\n<p>Once workloads were running, I explored how they talk to each other and to the outside. Services abstract away pod IPs and give you stable, DNS\u2011backed access points, which is essential once you start scaling or rolling out new versions. On the storage side I focused on ephemeral storage with&nbsp;<code>emptyDir<\/code>&nbsp;volumes: multiple containers in the same pod can share a scratch space, it survives container restarts, but disappears when the pod is deleted, which is perfect for transient data and a good reminder to not confuse it with persistent storage.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"namespaces-observability-with-k9s-and-kubepromethe\">Namespaces, observability with k9s and kube\u2011prometheus<\/h2>\n\n\n\n<p>To keep things manageable I started organizing workloads into namespaces and then used k9s as a TUI to interactively inspect pods, logs, and events instead of typing every&nbsp;<code>kubectl<\/code>&nbsp;command by hand. For observability I installed the kube\u2011prometheus\u2011stack, which brings Prometheus, Alertmanager, the operator, node\u2011exporter and Grafana into the cluster with a single Helm release and exposes cluster metrics, node metrics and Kubernetes state metrics out of the box. Importing a pre\u2011built Grafana dashboard for namespace overviews made it very clear how much value you get once metrics, labels and dashboards come together.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"helm-in-practice-beyond-helm-install\">Helm in practice: beyond \u201chelm install\u201d<\/h2>\n\n\n\n<p>The module then went deep into Helm, treating it as the \u201capt\/yum for Kubernetes\u201d that bundles Deployments, Services, Ingress, ConfigMaps, Secrets and more into reusable charts. I worked with the Homarr chart, inspected its&nbsp;<code>Chart.yaml<\/code>,&nbsp;<code>values.yaml<\/code>&nbsp;and templates, and learned how to override only what I need via my own&nbsp;<code>values.yaml<\/code>&nbsp;instead of forking manifests. A real highlight was debugging a failing release caused by a missing&nbsp;<code>db-encryption<\/code>&nbsp;secret: creating the secret with&nbsp;<code>kubectl create secret ...<\/code>&nbsp;and seeing the pod move from&nbsp;<code>CreateContainerConfigError<\/code>&nbsp;to&nbsp;<code>Running<\/code>&nbsp;made the interaction between Helm, Kubernetes resources and application requirements very concrete.<a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/ppl-ai-file-upload.s3.amazonaws.com\/web\/direct-files\/attachments\/81145566\/849dd3ec-8c69-4ccc-acf3-3c7d569b2196\/20-Module-7-Helm-Introduction-3.md?AWSAccessKeyId=ASIA2F3EMEYE7NFXW2Q7&amp;Signature=OxAUjngoNgb%2BfdPQvziRqCk0tIA%3D&amp;x-amz-security-token=IQoJb3JpZ2luX2VjEBEaCXVzLWVhc3QtMSJIMEYCIQCgEr2ztzU6G%2Fg056ze1Ng%2Bi513RfYciepDf9a531Lz9gIhANrJzaZ4tul9JvS%2F1GoJCIgwRhXZCe%2Fq400FkzLUjDrTKvwECNr%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEQARoMNjk5NzUzMzA5NzA1Igy4lClQI%2BT75U%2FuNlIq0ATYHa%2FcpL5iv1Rk%2FllG6huxlF%2F0URggfNlwv9wAa2h5SqxqLfuH552%2FLGEz%2F2bMRMwsG0Msn9ld%2BSzlYsq%2FLWextK%2Fz1mLxzy4QA7gzz%2FvLcS%2FccuXBXtccp9uVWgshmZE7HGOxo2Lgha5Vtbqut4imKydw7SEKYqBG%2Bcdb%2BqteY%2BVXZINzEMCdhApDmielfeCDa%2BZ2EWgcrqi5vqDu2d%2FQWrtu%2FO7X8AMJeX6SmiPU50niWUzS6RFqkRVsKOrcjaZIuFRfL4X0Hz24udc1Eo6FBAIXym82tdHI8tw1UN%2Bzy7wiXvZUGuKjQm6R1f%2F%2BEtjMF4Xq1k%2FExNZVGVHEiSKtb%2FYBb2S3mFX6a3kLYXdhc54YxCtoJGncObKHaanDX0EHp0Xl%2F7521BXucoQ0RWzFn%2BUeCFetpP1avbJ%2BmUkLLpBNqetWO312poPA74Qb9VFPOGz3sj9z3i6H4G6jlnAH88UKZrv1%2BlKxsHGwHkfp42WmB3ZeisEV%2FDNNf%2FjVgKiHlOGopGvYBsu5zUOLEIhdB2U5YCNYJ8ElfuTr21w8RglG7YzgR8pI2QSslE9%2FI6mYR5ECJElMQxTdNgjShUYlAYfebMUIq96FKlPWIRqBaVwfX2HQx0hmEGAoiDwsRw7OmXiI%2BZt8hNgK6kFhHRHJ3%2FJ3HRfiQcPMjnCML4iWQt2%2B7rz%2FCCakySxCnro6AlLCktByGzTZq48GteN3j0Fmepsek1fplgJLOCvISy6vAuo9fP%2Bqxk8o6uUD0UraNT18JB2ENRxaB%2BKmsu7ynSNsML%2BgstAGOpcB9z8jE6jwnqx%2BDVX8R1JoODvTUOSFtZc9SDkU41SWCS5K03V0IPcv2l5kHOseHaBAn8yctcj3%2BveCk%2BwQjV8adC%2BS4CQvI2LeXOO9XAza8Fjfs1Z7IjAO5gjZlzdm3p5JxZmmcdlcEE6UyWyW3x9MQpL1OMzstsN4IqllGqOqxpUq4xMmBVQPbzr6zW2NEPCQgoGkGjEaBQ%3D%3D&amp;Expires=1779210216\"><\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"key-takeaways-and-next-steps\">Key takeaways and next steps<\/h2>\n\n\n\n<p>The main lessons for me were: everything is&nbsp;<strong>YAML<\/strong>, Deployments manage ReplicaSets (not pods directly), ephemeral volumes like&nbsp;<code>emptyDir<\/code>&nbsp;have very specific lifecycles, and Helm is not \u201cmagic\u201d but a smart templating and release\u2011management layer on top of the manifests I already know. With kube\u2011prometheus\u2011stack running, I now have a basic monitoring stack that I can iterate on, plus a clearer mental model for how operators and CRDs extend a cluster. Next up in my homelab I want to convert more docker\u2011compose based self\u2011hosted apps to Kubernetes manifests, expose them via Ingress and experiment with additional Helm charts, keeping the focus on understanding the YAML instead of copy\u2011pasting commands.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Over the last weekend I worked through a hands\u2011on Kubernetes fundamentals module and rebuilt everything in my own homelab, from simple pods all the way to Helm\u2011based monitoring with the kube\u2011prometheus\u2011stack. The goal was not just to \u201cget it running\u201d, but to really understand how the core building blocks of a Kubernetes platform fit together &#8230; <a title=\"Leveling up my Kubernetes fundamentals in the homelab\" class=\"read-more\" href=\"https:\/\/beckesch.dev\/ops\/2026\/05\/19\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\/\" aria-label=\"Read more about Leveling up my Kubernetes fundamentals in the homelab\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":83,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[8,9,6,1],"tags":[],"class_list":["post-82","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","category-learning","category-linkedin-post","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Leveling up my Kubernetes fundamentals in the homelab - Ralf Beckesch - Devops<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/beckesch.dev\/ops\/2026\/05\/19\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Leveling up my Kubernetes fundamentals in the homelab - Ralf Beckesch - Devops\" \/>\n<meta property=\"og:description\" content=\"Over the last weekend I worked through a hands\u2011on Kubernetes fundamentals module and rebuilt everything in my own homelab, from simple pods all the way to Helm\u2011based monitoring with the kube\u2011prometheus\u2011stack. The goal was not just to \u201cget it running\u201d, but to really understand how the core building blocks of a Kubernetes platform fit together ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/beckesch.dev\/ops\/2026\/05\/19\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\/\" \/>\n<meta property=\"og:site_name\" content=\"Ralf Beckesch - Devops\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-19T17:12:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-19T17:16:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2026\/05\/6637d86a-063f-4072-bd31-3206aa973b5d.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1254\" \/>\n\t<meta property=\"og:image:height\" content=\"1254\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"rb\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"rb\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2026\\\/05\\\/19\\\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2026\\\/05\\\/19\\\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\\\/\"},\"author\":{\"name\":\"rb\",\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/#\\\/schema\\\/person\\\/90c6e9e800fff61c7ceb65be6ab43b69\"},\"headline\":\"Leveling up my Kubernetes fundamentals in the homelab\",\"datePublished\":\"2026-05-19T17:12:40+00:00\",\"dateModified\":\"2026-05-19T17:16:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2026\\\/05\\\/19\\\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\\\/\"},\"wordCount\":597,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/#\\\/schema\\\/person\\\/90c6e9e800fff61c7ceb65be6ab43b69\"},\"image\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2026\\\/05\\\/19\\\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/6637d86a-063f-4072-bd31-3206aa973b5d.png\",\"articleSection\":[\"Devops\",\"Learning\",\"LinkedIn Post\"],\"inLanguage\":\"en-CA\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2026\\\/05\\\/19\\\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2026\\\/05\\\/19\\\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\\\/\",\"url\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2026\\\/05\\\/19\\\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\\\/\",\"name\":\"Leveling up my Kubernetes fundamentals in the homelab - Ralf Beckesch - Devops\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2026\\\/05\\\/19\\\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2026\\\/05\\\/19\\\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/6637d86a-063f-4072-bd31-3206aa973b5d.png\",\"datePublished\":\"2026-05-19T17:12:40+00:00\",\"dateModified\":\"2026-05-19T17:16:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2026\\\/05\\\/19\\\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\\\/#breadcrumb\"},\"inLanguage\":\"en-CA\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2026\\\/05\\\/19\\\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-CA\",\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2026\\\/05\\\/19\\\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\\\/#primaryimage\",\"url\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/6637d86a-063f-4072-bd31-3206aa973b5d.png\",\"contentUrl\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/6637d86a-063f-4072-bd31-3206aa973b5d.png\",\"width\":1254,\"height\":1254},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/2026\\\/05\\\/19\\\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Leveling up my Kubernetes fundamentals in the homelab\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/#website\",\"url\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/\",\"name\":\"Ralf Beckesch - Devops\",\"description\":\"Evolving from linux freak to devops and cloud-native engineer\",\"publisher\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/#\\\/schema\\\/person\\\/90c6e9e800fff61c7ceb65be6ab43b69\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-CA\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/#\\\/schema\\\/person\\\/90c6e9e800fff61c7ceb65be6ab43b69\",\"name\":\"rb\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-CA\",\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/cropped-fotor-ai-20231018165442.jpg\",\"url\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/cropped-fotor-ai-20231018165442.jpg\",\"contentUrl\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/cropped-fotor-ai-20231018165442.jpg\",\"width\":1534,\"height\":307,\"caption\":\"rb\"},\"logo\":{\"@id\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/cropped-fotor-ai-20231018165442.jpg\"},\"sameAs\":[\"https:\\\/\\\/beckesch.dev\\\/ops\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/ralf-beckesch\\\/\"],\"url\":\"https:\\\/\\\/beckesch.dev\\\/ops\\\/author\\\/rbadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Leveling up my Kubernetes fundamentals in the homelab - Ralf Beckesch - Devops","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/beckesch.dev\/ops\/2026\/05\/19\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\/","og_locale":"en_US","og_type":"article","og_title":"Leveling up my Kubernetes fundamentals in the homelab - Ralf Beckesch - Devops","og_description":"Over the last weekend I worked through a hands\u2011on Kubernetes fundamentals module and rebuilt everything in my own homelab, from simple pods all the way to Helm\u2011based monitoring with the kube\u2011prometheus\u2011stack. The goal was not just to \u201cget it running\u201d, but to really understand how the core building blocks of a Kubernetes platform fit together ... Read more","og_url":"https:\/\/beckesch.dev\/ops\/2026\/05\/19\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\/","og_site_name":"Ralf Beckesch - Devops","article_published_time":"2026-05-19T17:12:40+00:00","article_modified_time":"2026-05-19T17:16:00+00:00","og_image":[{"width":1254,"height":1254,"url":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2026\/05\/6637d86a-063f-4072-bd31-3206aa973b5d.png","type":"image\/png"}],"author":"rb","twitter_card":"summary_large_image","twitter_misc":{"Written by":"rb","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/beckesch.dev\/ops\/2026\/05\/19\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\/#article","isPartOf":{"@id":"https:\/\/beckesch.dev\/ops\/2026\/05\/19\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\/"},"author":{"name":"rb","@id":"https:\/\/beckesch.dev\/ops\/#\/schema\/person\/90c6e9e800fff61c7ceb65be6ab43b69"},"headline":"Leveling up my Kubernetes fundamentals in the homelab","datePublished":"2026-05-19T17:12:40+00:00","dateModified":"2026-05-19T17:16:00+00:00","mainEntityOfPage":{"@id":"https:\/\/beckesch.dev\/ops\/2026\/05\/19\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\/"},"wordCount":597,"commentCount":0,"publisher":{"@id":"https:\/\/beckesch.dev\/ops\/#\/schema\/person\/90c6e9e800fff61c7ceb65be6ab43b69"},"image":{"@id":"https:\/\/beckesch.dev\/ops\/2026\/05\/19\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\/#primaryimage"},"thumbnailUrl":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2026\/05\/6637d86a-063f-4072-bd31-3206aa973b5d.png","articleSection":["Devops","Learning","LinkedIn Post"],"inLanguage":"en-CA","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/beckesch.dev\/ops\/2026\/05\/19\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/beckesch.dev\/ops\/2026\/05\/19\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\/","url":"https:\/\/beckesch.dev\/ops\/2026\/05\/19\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\/","name":"Leveling up my Kubernetes fundamentals in the homelab - Ralf Beckesch - Devops","isPartOf":{"@id":"https:\/\/beckesch.dev\/ops\/#website"},"primaryImageOfPage":{"@id":"https:\/\/beckesch.dev\/ops\/2026\/05\/19\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\/#primaryimage"},"image":{"@id":"https:\/\/beckesch.dev\/ops\/2026\/05\/19\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\/#primaryimage"},"thumbnailUrl":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2026\/05\/6637d86a-063f-4072-bd31-3206aa973b5d.png","datePublished":"2026-05-19T17:12:40+00:00","dateModified":"2026-05-19T17:16:00+00:00","breadcrumb":{"@id":"https:\/\/beckesch.dev\/ops\/2026\/05\/19\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\/#breadcrumb"},"inLanguage":"en-CA","potentialAction":[{"@type":"ReadAction","target":["https:\/\/beckesch.dev\/ops\/2026\/05\/19\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\/"]}]},{"@type":"ImageObject","inLanguage":"en-CA","@id":"https:\/\/beckesch.dev\/ops\/2026\/05\/19\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\/#primaryimage","url":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2026\/05\/6637d86a-063f-4072-bd31-3206aa973b5d.png","contentUrl":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2026\/05\/6637d86a-063f-4072-bd31-3206aa973b5d.png","width":1254,"height":1254},{"@type":"BreadcrumbList","@id":"https:\/\/beckesch.dev\/ops\/2026\/05\/19\/leveling-up-my-kubernetes-fundamentals-in-the-homelab\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/beckesch.dev\/ops\/"},{"@type":"ListItem","position":2,"name":"Leveling up my Kubernetes fundamentals in the homelab"}]},{"@type":"WebSite","@id":"https:\/\/beckesch.dev\/ops\/#website","url":"https:\/\/beckesch.dev\/ops\/","name":"Ralf Beckesch - Devops","description":"Evolving from linux freak to devops and cloud-native engineer","publisher":{"@id":"https:\/\/beckesch.dev\/ops\/#\/schema\/person\/90c6e9e800fff61c7ceb65be6ab43b69"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/beckesch.dev\/ops\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-CA"},{"@type":["Person","Organization"],"@id":"https:\/\/beckesch.dev\/ops\/#\/schema\/person\/90c6e9e800fff61c7ceb65be6ab43b69","name":"rb","image":{"@type":"ImageObject","inLanguage":"en-CA","@id":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/09\/cropped-fotor-ai-20231018165442.jpg","url":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/09\/cropped-fotor-ai-20231018165442.jpg","contentUrl":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/09\/cropped-fotor-ai-20231018165442.jpg","width":1534,"height":307,"caption":"rb"},"logo":{"@id":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2025\/09\/cropped-fotor-ai-20231018165442.jpg"},"sameAs":["https:\/\/beckesch.dev\/ops","https:\/\/www.linkedin.com\/in\/ralf-beckesch\/"],"url":"https:\/\/beckesch.dev\/ops\/author\/rbadmin\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/beckesch.dev\/ops\/wp-content\/uploads\/2026\/05\/6637d86a-063f-4072-bd31-3206aa973b5d.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/posts\/82","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/comments?post=82"}],"version-history":[{"count":1,"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/posts\/82\/revisions"}],"predecessor-version":[{"id":84,"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/posts\/82\/revisions\/84"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/media\/83"}],"wp:attachment":[{"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/media?parent=82"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/categories?post=82"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/beckesch.dev\/ops\/wp-json\/wp\/v2\/tags?post=82"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}