<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SREKubeCraft | Nikos Nikolakakis</title><link>https://srekubecraft.io/</link><description>Recent content on SREKubeCraft | Nikos Nikolakakis</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 03 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://srekubecraft.io/index.xml" rel="self" type="application/rss+xml"/><item><title>KServe - Production ML Serving on Kubernetes, from sklearn to LLMs</title><link>https://srekubecraft.io/posts/kserve/</link><pubDate>Sun, 03 May 2026 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/kserve/</guid><description>&lt;p&gt;In November 2025, &lt;a href="https://www.cncf.io/blog/2025/11/11/kserve-becomes-a-cncf-incubating-project/"&gt;KServe joined the CNCF as an incubating project&lt;/a&gt;. For a project that started life as KFServing inside Kubeflow back in 2019, this was the formal recognition that ML model serving on Kubernetes had grown up. KServe is now the closest thing the cloud-native ecosystem has to a standard for putting trained models behind an API: scikit-learn, XGBoost, PyTorch, TensorFlow, ONNX, Triton, and increasingly Large Language Models all served through the same &lt;code&gt;InferenceService&lt;/code&gt; CRD with the same scale-to-zero, autoscaling, traffic splitting, and observability primitives.&lt;/p&gt;</description></item><item><title>Dapr - Building a Safe Platform for Citizen Developer Apps on Kubernetes</title><link>https://srekubecraft.io/posts/dapr/</link><pubDate>Sun, 19 Apr 2026 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/dapr/</guid><description>&lt;p&gt;Something shifted in 2025. People who had never written a line of code started building working applications. Not toy scripts - real Flask APIs, Express dashboards, data pipelines. The catalyst was LLMs like Claude, ChatGPT, and Copilot. A marketing analyst could describe what they needed in plain English and walk away with a functioning Python app. An operations manager could build an internal dashboard without filing a Jira ticket to engineering.&lt;/p&gt;</description></item><item><title>OAuth2-Proxy - Securing MCP Servers on Kubernetes Before Hackers Find Them First</title><link>https://srekubecraft.io/posts/oauth2-proxy/</link><pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/oauth2-proxy/</guid><description>&lt;p&gt;The Model Context Protocol is everywhere. In less than two years since &lt;a href="https://www.anthropic.com/"&gt;Anthropic&lt;/a&gt; announced it, MCP has become the standard way AI agents connect to external tools: databases, filesystems, code execution environments, Kubernetes clusters. OpenAI adopted it. The Linux Foundation governs it. There are over 5,000 community MCP servers and counting.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the problem: &lt;strong&gt;many of the self-hosted ones have zero authentication&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;To be clear, not all MCP servers have this problem. Vendor-managed MCP servers like Atlassian&amp;rsquo;s (Jira, Confluence), Slack, or Datadog handle authentication on their side through API tokens and OAuth flows baked into their platform. The problem is specifically with &lt;strong&gt;self-hosted MCP servers&lt;/strong&gt;: the ones you deploy yourself on your own infrastructure. Servers like &lt;strong&gt;&lt;a href="https://dbhub.ai"&gt;DBHub&lt;/a&gt;&lt;/strong&gt; for databases, filesystem servers, Kubernetes MCP servers, or code execution environments. When you run these in HTTP transport mode, anyone who can reach the endpoint can use them. No API key. No token validation. No user identity.&lt;/p&gt;</description></item><item><title>Knative - The Platform Engineer's Guide to Serverless on Kubernetes</title><link>https://srekubecraft.io/posts/knative/</link><pubDate>Sun, 08 Mar 2026 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/knative/</guid><description>&lt;p&gt;Every platform team eventually faces the same tension: developers want the simplicity of serverless, but the organization needs the control and portability of Kubernetes. Cloud-specific solutions like AWS Lambda or Google Cloud Run solve the developer experience problem, but they lock you into a single vendor&amp;rsquo;s ecosystem. When you&amp;rsquo;re running workloads across multiple clouds or on-premises, that&amp;rsquo;s a non-starter.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://knative.dev"&gt;Knative&lt;/a&gt;&lt;/strong&gt; bridges this gap. It&amp;rsquo;s an open-source, Kubernetes-native platform that brings serverless capabilities -automatic scaling, scale-to-zero, event-driven architectures -to any Kubernetes cluster. No vendor lock-in, no proprietary runtimes, just standard OCI containers running on infrastructure you already manage.&lt;/p&gt;</description></item><item><title>PDB Management Operator - Intelligent Pod Disruption Budget Automation for Kubernetes</title><link>https://srekubecraft.io/posts/pdb-management-operator/</link><pubDate>Thu, 01 Jan 2026 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/pdb-management-operator/</guid><description>&lt;p&gt;Pod Disruption Budgets (PDBs) are critical for maintaining application availability during voluntary disruptions like node drains, cluster upgrades, or autoscaler operations. Yet in practice, PDB management often becomes an afterthought - teams either forget to create them, configure them incorrectly, or struggle to maintain consistency across hundreds of deployments.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;PDB Management Operator&lt;/strong&gt; solves this problem by automating PDB lifecycle management based on availability requirements, organizational policies, and component functions. Originally developed as a personal project, I donated it to the &lt;a href="https://github.com/tmforum-oda/oda-canvas"&gt;TM Forum ODA Canvas&lt;/a&gt; project to help telcos and enterprises manage availability at scale.&lt;/p&gt;</description></item><item><title>Kratix - Building Self-Service Platform Capabilities for Kubernetes</title><link>https://srekubecraft.io/posts/kratix/</link><pubDate>Sun, 07 Dec 2025 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/kratix/</guid><description>&lt;p&gt;Platform engineering is about reducing friction while maintaining guardrails. As organizations scale their Kubernetes footprint across multiple clusters and environments, the need for self-service platform capabilities becomes critical. Teams shouldn&amp;rsquo;t raise tickets to get observability, databases, or development environments they should be able to provision what they need on demand, within clear boundaries.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://kratix.io"&gt;Kratix&lt;/a&gt;&lt;/strong&gt; is a framework designed to solve exactly this problem. In this post, I&amp;rsquo;ll explore what Kratix is, its strengths and limitations, and demonstrate a practical use case: building an on-demand Datadog stack that SREs can install and uninstall across clusters with a simple &lt;code&gt;kubectl&lt;/code&gt; command.&lt;/p&gt;</description></item><item><title>Building a Multi-Tenancy Platform with Capsule and vCluster - Hard vs Soft Isolation</title><link>https://srekubecraft.io/posts/k8s-multi-tenancy/</link><pubDate>Mon, 03 Nov 2025 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/k8s-multi-tenancy/</guid><description>&lt;p&gt;I&amp;rsquo;ve been running multi-tenant Kubernetes platforms for years, and the conversation always comes down to the same question: how isolated do tenants really need to be? The answer determines whether you&amp;rsquo;re managing one shared cluster or a hundred separate ones, and it has massive implications for cost, complexity, and operational overhead.&lt;/p&gt;
&lt;p&gt;The industry has two emerging answers: &lt;strong&gt;Capsule&lt;/strong&gt; (a CNCF sandbox project) for namespace-based soft multi-tenancy, and &lt;strong&gt;vCluster&lt;/strong&gt; (an open-source project by Loft Labs) for virtual cluster hard isolation. Both solve real problems. But they take fundamentally different approaches.&lt;/p&gt;</description></item><item><title>Kubernetes Autoscaling Beyond HPA - Event-Driven KEDA and VPA Resource Optimization</title><link>https://srekubecraft.io/posts/kubernetes-autoscaling-beyond-hpa/</link><pubDate>Mon, 13 Oct 2025 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/kubernetes-autoscaling-beyond-hpa/</guid><description>&lt;p&gt;I have spent years fighting the same &amp;ldquo;battle&amp;rdquo;: pods running out of memory at 3 AM, or paying for idle resources sitting at 10% utilization. HPA works great when your traffic follows a predictable curve, but what happens when you are processing background jobs, running analytics during business hours, or dealing with sudden database load spikes?&lt;/p&gt;
&lt;p&gt;The built-in Horizontal Pod Autoscaler does one thing well. It scales pods based on CPU and memory. That&amp;rsquo;s fine for basic web apps, but completely useless when you need to scale based on queue depth, database connections, or time based patterns. I have watched teams write custom controllers and hacky scripts just to solve these problems.&lt;/p&gt;</description></item><item><title>Litmus Chaos - Enterprise-Grade Chaos Engineering for Kubernetes</title><link>https://srekubecraft.io/posts/litmuschaos/</link><pubDate>Sun, 17 Aug 2025 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/litmuschaos/</guid><description>&lt;p&gt;Chaos engineering validates system resilience by introducing controlled failures. LitmusChaos makes this practice accessible for Kubernetes environments, giving SRE teams the tools to test failure scenarios before they happen in production.&lt;/p&gt;
&lt;h2 id="why-chaos-engineering-matters-for-sres"&gt;Why Chaos Engineering Matters for SREs&lt;/h2&gt;
&lt;p&gt;Real failures don&amp;rsquo;t wait for convenient times. Networks partition during peak traffic. Nodes fail during deployments. Memory leaks surface under load. Traditional testing catches functional bugs but misses reliability gaps.&lt;/p&gt;
&lt;p&gt;LitmusChaos helps answer critical SRE questions:&lt;/p&gt;</description></item><item><title>Cilium Tetragon - Next-Generation Runtime Security for Kubernetes</title><link>https://srekubecraft.io/posts/tetragon/</link><pubDate>Sat, 02 Aug 2025 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/tetragon/</guid><description>&lt;p&gt;In the ever-evolving landscape of Kubernetes security, runtime protection has become a critical concern for SREs and platform engineers. While we&amp;rsquo;ve made great strides with admission controllers, network policies, and vulnerability scanning, there&amp;rsquo;s always been a gap in real-time threat detection and prevention at the kernel level. Enter &lt;strong&gt;&lt;a href="https://tetragon.io"&gt;Cilium Tetragon&lt;/a&gt;&lt;/strong&gt;, a powerful eBPF-based security observability and runtime enforcement platform that&amp;rsquo;s revolutionizing how we approach Kubernetes security.&lt;/p&gt;
&lt;h2 id="what-is-cilium-tetragon"&gt;What is Cilium Tetragon?&lt;/h2&gt;
&lt;p&gt;Cilium Tetragon is an open-source, eBPF-based security observability and runtime enforcement platform that provides deep visibility into system behavior with minimal overhead. As part of the Cilium project (now a CNCF graduated project), Tetragon leverages eBPF technology to hook into the Linux kernel and monitor system calls, network events, and file operations in real-time.&lt;/p&gt;</description></item><item><title>Nushell for SREs - Modern Shell Scripting for Internal Tools</title><link>https://srekubecraft.io/posts/nushell/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/nushell/</guid><description>&lt;p&gt;Site Reliability Engineers (SREs) often live in the command line, juggling Bash scripts, one-liners, and the occasional Go/Python tool to automate tasks. Yet building complex internal CLI tools or automation workflows with traditional shells can be painful and error-prone. Enter &lt;a href="https://www.nushell.sh"&gt;&lt;strong&gt;Nushell&lt;/strong&gt;&lt;/a&gt; – a modern, cross-platform shell that treats data as structured tables instead of plain text. Nushell (or just &lt;code&gt;nu&lt;/code&gt;) aims to blend the convenience of shell scripting with the robustness of a programming language. In this post, we’ll introduce Nushell and show how it can empower SREs to craft internal CLIs and automation with far less frustration than Bash, while avoiding the overhead of compiled languages. What is Nushell? Nushell is a new type of shell (written in Rust) that draws inspiration from PowerShell, functional programming, and modern CLI tools.&lt;/p&gt;</description></item><item><title>DevPod Open-Source Dev Environments as Code for SREs and Platform Engineers</title><link>https://srekubecraft.io/posts/devpod/</link><pubDate>Sun, 20 Apr 2025 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/devpod/</guid><description>&lt;p&gt;Modern cloud-native development can be a double-edged sword for &lt;strong&gt;Site Reliability Engineering (SRE)&lt;/strong&gt; and platform teams. On one hand, containerization and microservices have improved deployment consistency; on the other hand, setting up developer environments for complex stacks has become a daunting task. As one engineer put it, configuring each developer’s machine used to be &lt;em&gt;“sweat, toil, and blood on every project”&lt;/em&gt;. Today’s applications often require a constellation of services – SQL and NoSQL databases, message brokers like Kafka, and more – making onboarding and environment consistency a serious challenge. SREs and platform engineers are tasked with ensuring reliability &lt;strong&gt;from code to production&lt;/strong&gt;, which means development environments must be consistent, secure, and quick to provision. &lt;strong&gt;&lt;a href="https://devpod.sh"&gt;DevPod&lt;/a&gt;&lt;/strong&gt; is a tool designed to address these needs head-on. In this post, we’ll explore what DevPod is, its core capabilities, and how it tackles key cloud-native development problems such as developer onboarding, infrastructure standardization, and secure remote environments – all from an SRE/platform engineering perspective.&lt;/p&gt;</description></item><item><title>Simplifying Kubernetes Service Mesh - A Deep Dive into Istio Ambient Mesh</title><link>https://srekubecraft.io/posts/istio-ambient-mesh/</link><pubDate>Sun, 13 Apr 2025 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/istio-ambient-mesh/</guid><description>&lt;p&gt;From an SRE perspective, the goal is always to reduce operational burden while increasing reliability and observability. Ambient Mesh introduces a new paradigm that aligns with SRE principles by eliminating the sidecar model—reducing resource overhead, simplifying debugging, and accelerating service onboarding across environments.&lt;/p&gt;
&lt;p&gt;Managing observability, security, and reliability across microservices is no small feat. Service meshes like &lt;strong&gt;Istio&lt;/strong&gt; promise consistency—but they often come at the cost of complexity and resource overhead. Enter &lt;strong&gt;Istio Ambient Mesh&lt;/strong&gt;: a sidecar-less approach that redefines how service meshes operate, focusing on performance, simplicity, and flexibility.&lt;/p&gt;</description></item><item><title>Building an Internal Developer Portal with Backstage, AKS, Crossplane, and Argo CD</title><link>https://srekubecraft.io/posts/idp/</link><pubDate>Sat, 22 Mar 2025 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/idp/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Modern cloud-native organizations are increasingly adopting &lt;strong&gt;Internal Developer Portals (IDPs)&lt;/strong&gt; to streamline developer experience and platform operations. An IDP serves as a centralized “single pane of glass” for developers to interact with infrastructure and tools, reducing cognitive load while enabling self-service​. Instead of navigating scattered scripts, manuals, and ticketing systems, engineers get a one-stop hub to create and manage resources. This paved road approach to software development saves time and improves developer satisfaction​ by standardizing workflows and automating repetitive tasks.&lt;/p&gt;</description></item><item><title>Why ArgoCD Matters for SREs - A GitOps Approach to Kubernetes Deployments</title><link>https://srekubecraft.io/posts/argocd/</link><pubDate>Fri, 07 Mar 2025 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/argocd/</guid><description>&lt;h3 id="introduction"&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Site Reliability Engineers (SREs) aim to ensure reliability, scalability, and efficiency in managing applications and infrastructure. One of the key challenges in Kubernetes deployments is maintaining consistency across environments while reducing deployment failures. This is where &lt;a href="https://argoproj.github.io/cd/"&gt;&lt;strong&gt;ArgoCD&lt;/strong&gt;&lt;/a&gt; comes in—a GitOps-based continuous delivery tool designed to streamline Kubernetes application management.&lt;/p&gt;
&lt;p&gt;But is ArgoCD the &lt;strong&gt;right&lt;/strong&gt; tool for every SRE team? Let’s explore its benefits, limitations, and whether it aligns with the principles of &lt;strong&gt;scalability, observability, and automation&lt;/strong&gt; in modern cloud-native environments.&lt;/p&gt;</description></item><item><title>Optimizing Kubernetes Autoscaling with Karpenter</title><link>https://srekubecraft.io/posts/karpenter/</link><pubDate>Sat, 01 Mar 2025 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/karpenter/</guid><description>&lt;p&gt;Autoscaling is a fundamental feature of Kubernetes, ensuring that workloads receive the required compute resources dynamically. Traditionally, Kubernetes provides &lt;strong&gt;Horizontal Pod Autoscaler (HPA)&lt;/strong&gt; and &lt;strong&gt;Vertical Pod Autoscaler (VPA)&lt;/strong&gt; to scale applications based on CPU and memory metrics. However, these solutions often lead to additional resource consumption, necessitating a robust &lt;strong&gt;cluster autoscaler&lt;/strong&gt; to manage node provisioning.&lt;/p&gt;
&lt;p&gt;Cluster Autoscaler (CA) solutions are widely used across cloud providers like AWS, Azure, and GCP. However, they come with significant drawbacks, including &lt;strong&gt;slow provisioning times (up to 10 minutes)&lt;/strong&gt; and &lt;strong&gt;rigid instance type management&lt;/strong&gt;. &lt;strong&gt;&lt;a href="https://karpenter.sh"&gt;Karpenter&lt;/a&gt;&lt;/strong&gt; is an open-source autoscaler designed to overcome these limitations by dynamically provisioning nodes and optimizing cluster efficiency in real time.&lt;/p&gt;</description></item><item><title>Mastering Kubernetes Customization with Operator SDK</title><link>https://srekubecraft.io/posts/operator-sdk/</link><pubDate>Mon, 06 Jan 2025 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/operator-sdk/</guid><description>&lt;p&gt;Kubernetes revolutionizes how applications are deployed and scaled, but managing complex workloads often demands domain-specific automation. This is where Operators shine. Operators encapsulate operational knowledge into Kubernetes-native applications, automating lifecycle management tasks such as scaling, recovery, and upgrades. &lt;a href="https://sdk.operatorframework.io/"&gt;Operator SDK&lt;/a&gt; provides a structured and efficient way to develop these Operators, enabling teams to manage complex applications seamlessly.&lt;/p&gt;
&lt;p&gt;In this post, we’ll explore the capabilities of Operator SDK, best practices for building Operators, and a practical example: the &lt;strong&gt;pod-restart-notifier-operator&lt;/strong&gt;, designed to monitor pod restarts in a cluster.&lt;/p&gt;</description></item><item><title>Unlocking Kubernetes Configuration Efficiency with KCL</title><link>https://srekubecraft.io/posts/kcl/</link><pubDate>Sun, 29 Dec 2024 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/kcl/</guid><description>&lt;p&gt;Managing Kubernetes configurations at scale often involves repetitive YAML templates, patch overlays, and external scripts for dynamic behavior. As clusters grow and requirements evolve, maintaining these configurations becomes increasingly error-prone and time-consuming.&lt;/p&gt;
&lt;p&gt;For &lt;strong&gt;SREs&lt;/strong&gt;, whose primary focus is ensuring reliability, consistency, and efficiency, tools that reduce complexity are vital. Enter &lt;strong&gt;&lt;a href="https://www.kcl-lang.io"&gt;KCL&lt;/a&gt;&lt;/strong&gt;, the &lt;strong&gt;Kubernetes Configuration Language&lt;/strong&gt;, a revolutionary approach to configuration management that brings abstraction, automation, and validation into your workflows.&lt;/p&gt;</description></item><item><title>Mastering Kubernetes Backups with Velero.</title><link>https://srekubecraft.io/posts/velero/</link><pubDate>Thu, 19 Dec 2024 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/velero/</guid><description>&lt;p&gt;Kubernetes is designed for high availability and fault tolerance, but even the most resilient systems can encounter failures. &lt;a href="https://velero.io"&gt;Velero&lt;/a&gt;, an open-source tool, simplifies Kubernetes backup and disaster recovery, making it an essential addition to your cluster&amp;rsquo;s resilience strategy. This post explores how Velero enables reliable backup and recovery for Kubernetes clusters, helping SREs ensure resilience and data protection.&lt;/p&gt;
&lt;h2 id="why-backups-are-essential-for-kubernetes"&gt;Why Backups Are Essential for Kubernetes&lt;/h2&gt;
&lt;p&gt;While Kubernetes offers robustness, unexpected events like hardware failures, misconfigurations, or human errors can lead to data loss or downtime. Backups ensure you can recover the cluster’s state, minimizing disruption and maintaining service availability. Regularly practicing disaster recovery also helps identify gaps in your strategy.&lt;/p&gt;</description></item><item><title>Secure and Simplify Kubernetes Secrets Management with External Secrets</title><link>https://srekubecraft.io/posts/eso/</link><pubDate>Sun, 10 Nov 2024 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/eso/</guid><description>&lt;p&gt;In the world of Kubernetes, managing secrets securely is vital. Kubernetes secrets are essential for storing sensitive data like database credentials, API keys, and certificates. However, handling these secrets directly within Kubernetes presents challenges around security, accessibility, and synchronization. This is where the &lt;strong&gt;&lt;a href="https://external-secrets.io/latest/"&gt;External Secrets Operator (ESO)&lt;/a&gt;&lt;/strong&gt; comes into play. By integrating with external secret management systems, ESO allows Kubernetes to securely access and update secrets automatically, providing both security and efficiency.&lt;/p&gt;</description></item><item><title>Deep Dive into Distributed Tracing with Grafana Tempo</title><link>https://srekubecraft.io/posts/tempo/</link><pubDate>Sun, 03 Nov 2024 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/tempo/</guid><description>&lt;p&gt;If you’re aiming to strengthen your observability strategy with distributed tracing, &lt;a href="https://grafana.com/docs/tempo/latest/"&gt;Grafana Tempo&lt;/a&gt; might be your answer. As an SRE, incorporating Tempo into observability stacks has been invaluable, especially within Kubernetes and microservices environments. Tempo’s unique, cost-effective approach to tracing simplifies setup, leverages object storage, and provides seamless integration with the Grafana ecosystem. Let’s explore how Tempo works, its architecture, use cases, and the setup steps you’ll need to deploy it effectively.&lt;/p&gt;</description></item><item><title>Grafana Loki - A Deep Dive into Cost-Effective Log Management</title><link>https://srekubecraft.io/posts/loki/</link><pubDate>Mon, 28 Oct 2024 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/loki/</guid><description>&lt;p&gt;If you&amp;rsquo;re looking for a scalable, flexible, and efficient solution for log management, look no further than &lt;strong&gt;&lt;a href="https://grafana.com/docs/loki/latest/?pg=oss-loki&amp;amp;plcmt=quick-links"&gt;Grafana Loki&lt;/a&gt;&lt;/strong&gt;. In my experience as an SRE, integrating Loki into modern observability stacks, especially within Kubernetes and multi-cloud environments, has proven transformative. Unlike traditional log management systems that require predefined schemas and indexing of log content, Loki takes a unique approach to handle logs, making it both easy to use and cost-effective. Let’s dive into how Loki works, its architecture, deployment modes, and why it might be the perfect fit for your needs.&lt;/p&gt;</description></item><item><title>Boost Your Terminal Workflow with Zellij - The Next-Gen Terminal Workspace</title><link>https://srekubecraft.io/posts/zellij/</link><pubDate>Thu, 10 Oct 2024 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/zellij/</guid><description>&lt;p&gt;In the world of terminal workspaces and multiplexers, one tool stands out for its simplicity, power, and ease of use—&lt;strong&gt;&lt;a href="https://zellij.dev"&gt;Zellij&lt;/a&gt;&lt;/strong&gt;. As an SRE constantly juggling multiple terminal windows for monitoring, debugging, and development, I was looking for a way to streamline my workflow. Enter Zellij—a game-changer that simplifies my daily tasks, boosts productivity, and has now become my go-to terminal companion. In this post, I’ll share my experience and show you how Zellij can transform the way you work with terminal sessions.&lt;/p&gt;</description></item><item><title>Understanding WebAssembly (Wasm)</title><link>https://srekubecraft.io/posts/webassembly/</link><pubDate>Sat, 06 Jul 2024 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/webassembly/</guid><description>&lt;h2 id="what-is-webassembly-wasm"&gt;What is WebAssembly (Wasm)?&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://webassembly.org"&gt;WebAssembly&lt;/a&gt;, commonly referred to as Wasm, is a binary instruction format designed for a stack-based virtual machine. It serves as a portable compilation target for various programming languages, enabling their deployment on the web for both client and server applications. Since its official recommendation by W3C in 2019, Wasm has been supported by all major browsers, offering a way to run applications written in languages like C, C++, Rust, Go, Python, and more within the browser environment without requiring additional installations or configurations.&lt;/p&gt;</description></item><item><title>OpenTelemetry, Simplifying Observability for Cloud-Native Environments</title><link>https://srekubecraft.io/posts/otel/</link><pubDate>Sun, 23 Jun 2024 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/otel/</guid><description>&lt;p&gt;In the rapidly changing world of cloud-native applications, mastering performance and behavior monitoring is essential. &lt;a href="https://opentelemetry.io"&gt;OpenTelemetry (OTel)&lt;/a&gt; emerges as a powerful, open-source framework designed to simplify the collection of telemetry data, including traces, metrics, and logs. This guide introduces the fundamentals of OpenTelemetry, providing a straightforward, practical approach for both beginners and experienced professionals in observability.&lt;/p&gt;
&lt;h3 id="what-is-opentelemetry"&gt;What is OpenTelemetry?&lt;/h3&gt;
&lt;p&gt;OpenTelemetry offers a comprehensive set of tools, APIs, and SDKs that enable developers to effectively instrument, generate, collect, and export telemetry data. OpenTelemetry encompasses:&lt;/p&gt;</description></item><item><title>Welcome to the World of Crossplane, Mastering Multicloud Infrastructure with Kubernetes</title><link>https://srekubecraft.io/posts/intro-to-crossplane/</link><pubDate>Sun, 16 Jun 2024 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/intro-to-crossplane/</guid><description>&lt;p&gt;Dive into the dynamic capabilities of &lt;a href="https://www.crossplane.io"&gt;Crossplane&lt;/a&gt;, a groundbreaking Kubernetes extension that is revolutionizing infrastructure management across various cloud platforms. In this series, we&amp;rsquo;ll decode the intricacies of Crossplane to demonstrate its power and flexibility, catering to both newcomers and experienced SRE professionals.&lt;/p&gt;
&lt;h2 id="understanding-crossplane"&gt;Understanding Crossplane&lt;/h2&gt;
&lt;p&gt;Crossplane is a pioneering open-source project hosted by the Cloud Native Computing Foundation (CNCF). It extends Kubernetes to manage a wide range of external, non-Kubernetes resources, effectively transforming any Kubernetes cluster into a robust control plane. With Crossplane, you can seamlessly administer databases, storage, and networking components across multiple providers using a single, unified Kubernetes-style API.&lt;/p&gt;</description></item><item><title>Exploring Nix Shell, A Game-Changer for Ephemeral Environments</title><link>https://srekubecraft.io/posts/exploring-nix-shell-a-game-changer-for-ephemeral-environments/</link><pubDate>Sat, 08 Jun 2024 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/exploring-nix-shell-a-game-changer-for-ephemeral-environments/</guid><description>&lt;p&gt;In the realm of software development, the quest for efficient and flexible development environments remains paramount. Traditionally, containers have dominated this space, heralded for their ability to create isolated, ephemeral environments for development, testing, and CI/CD pipelines. However, &lt;a href="https://nixos.org"&gt;Nix Shell&lt;/a&gt; emerges as a compelling alternative, challenging this status quo with its unique approach.&lt;/p&gt;
&lt;h3 id="the-traditional-container-paradigm"&gt;The Traditional Container Paradigm&lt;/h3&gt;
&lt;p&gt;Containers are virtually omnipresent in today&amp;rsquo;s software development landscape. They are particularly valued in ephemeral environments—temporary setups created for specific tasks which are discarded after use. This container-based strategy is not just prevalent in local development machines but also extends to complex CI/CD pipelines managed by tools like Jenkins, GitHub Actions, and GitLab CI.&lt;/p&gt;</description></item><item><title>Simplifying Kubernetes Observability with Inspector Gadget.</title><link>https://srekubecraft.io/posts/simplifying-kubernetes-observability-with-inspector-gadget/</link><pubDate>Fri, 31 May 2024 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/simplifying-kubernetes-observability-with-inspector-gadget/</guid><description>&lt;p&gt;In the vast and ever-evolving Kubernetes ecosystem, the abundance of tools for observability can sometimes feel overwhelming. While these tools offer comprehensive insights into metrics, logs, and traces, there&amp;rsquo;s an undeniable charm in the simplicity of traditional Linux commands like &lt;code&gt;netstat&lt;/code&gt; and &lt;code&gt;ps&lt;/code&gt;. These commands provide a straightforward view of active connections and processes, respectively. For those of us who have transitioned from managing single servers to orchestrating containers at scale with Kubernetes, there&amp;rsquo;s a noticeable gap in the simplicity of inspecting what&amp;rsquo;s happening within our clusters.&lt;/p&gt;</description></item><item><title>K8sGPT - The AI Solution to Streamline Kubernetes Operations?</title><link>https://srekubecraft.io/posts/k8sgpt-the-ai-solution-to-streamline-kubernetes-operations/</link><pubDate>Sat, 25 May 2024 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/k8sgpt-the-ai-solution-to-streamline-kubernetes-operations/</guid><description>&lt;p&gt;In the evolving world of Kubernetes, staying on top of your cluster&amp;rsquo;s health and security can be daunting, especially with the complexity and scale of modern deployments. As someone deeply embedded in the Kubernetes ecosystem, I&amp;rsquo;ve always sought an AI solution that could be as present and responsive as I am within the terminal. My quest was to find a tool that would allow me to interact with AI directly from the terminal to scan my Kubernetes cluster, identify potential issues, explain them in simple terms, and either fix these issues or propose solutions. That’s when I discovered &lt;code&gt;K8sGPT&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Understanding Kubernetes Gateway API</title><link>https://srekubecraft.io/posts/understanding-kubernetes-gateway-api/</link><pubDate>Fri, 17 May 2024 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/understanding-kubernetes-gateway-api/</guid><description>&lt;p&gt;Kubernetes has revolutionized the way we manage containerized applications, but networking within Kubernetes has always been a complex topic. Traditional tools like Ingress controllers and Service Mesh have provided solutions, but the &lt;strong&gt;&lt;code&gt;Gateway API&lt;/code&gt;&lt;/strong&gt; is emerging as a more powerful and flexible alternative. In this post, we&amp;rsquo;ll delve into the Gateway API, compare it with Ingress and Service Mesh, and provide examples to illustrate its capabilities.&lt;/p&gt;
&lt;h2 id="understanding-kubernetes-networking"&gt;Understanding Kubernetes Networking&lt;/h2&gt;
&lt;p&gt;Before diving into the Gateway API, let&amp;rsquo;s briefly recap what Kubernetes, Ingress, and Service Mesh are:&lt;/p&gt;</description></item><item><title>Embracing Enhanced Kubernetes Security with Kubescape</title><link>https://srekubecraft.io/posts/kubernetes-security-with-kubescape/</link><pubDate>Fri, 10 May 2024 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/kubernetes-security-with-kubescape/</guid><description>&lt;p&gt;In the rapidly evolving world of Kubernetes, maintaining robust security is paramount. &lt;a href="https://kubescape.io"&gt;Kubescape&lt;/a&gt;, the first &lt;code&gt;CNCF&lt;/code&gt; Kubernetes security scanner, stands out as a powerful tool designed to ensure your Kubernetes configurations are secure and compliant. In this post, we delve into the functionalities of Kubescape, examine its pros and cons, and provide a quick demo to showcase its capabilities.&lt;/p&gt;
&lt;h2 id="what-is-kubescape"&gt;What is Kubescape?&lt;/h2&gt;
&lt;p&gt;Kubescape is an open-source tool developed by ARMO, designed to scan Kubernetes clusters, Helm charts, and YAML files for security risks and compliance with several frameworks, including those recommended by the NSA and MITRE ATT&amp;amp;CK®. It operates as both a CLI tool and an integrated component within Kubernetes, suitable for use in CI/CD pipelines.&lt;/p&gt;</description></item><item><title>Building Container Images with Buildpacks</title><link>https://srekubecraft.io/posts/building-container-images-with-buildpacks/</link><pubDate>Fri, 03 May 2024 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/building-container-images-with-buildpacks/</guid><description>&lt;p&gt;When it comes to containerization, Docker has been the de facto standard for building and deploying container images. However, Buildpacks offer a compelling alternative, simplifying many aspects of the containerization process. In this article, we&amp;rsquo;ll explore what Buildpacks are, their advantages and disadvantages, and how to use them in practical scenarios. We&amp;rsquo;ll illustrate this by containerizing a Go application named &lt;code&gt;golang-response-echoer&lt;/code&gt;, which acts as a versatile server responding to various HTTP requests.&lt;/p&gt;</description></item><item><title>Unleashing Chaos to Ensure Stability</title><link>https://srekubecraft.io/posts/chaos-to-ensure-stability/</link><pubDate>Fri, 26 Apr 2024 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/chaos-to-ensure-stability/</guid><description>&lt;p&gt;Imagine a Black Friday where a major e-commerce platform goes down: millions in revenue lost in minutes, frustrated customers, and a tarnished reputation. In today’s digital-first world, such nightmares are real scenarios that businesses strive to avoid. This is where Chaos Engineering comes into play. It is not just about breaking things randomly but about stress-testing systems to ensure they can handle unexpected disruptions. In this blog post, we delve into the essentials of Chaos Engineering and demonstrate how &lt;a href="https://chaos-mesh.org"&gt;Chaos Mesh&lt;/a&gt;, a specialized tool for Kubernetes environments, is instrumental in forging systems that are not just robust but truly resilient.&lt;/p&gt;</description></item><item><title>Unlocking Developer Productivity with Taskfile</title><link>https://srekubecraft.io/posts/taskfile/</link><pubDate>Sat, 20 Apr 2024 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/taskfile/</guid><description>&lt;p&gt;In today&amp;rsquo;s fast-paced software development environment, agility and efficiency are paramount. Developers often find themselves toggling between local and remote workstations, managing a plethora of tasks that could become cumbersome without the right tools. Enter &lt;a href="https://taskfile.dev"&gt;Taskfile&lt;/a&gt;, a robust solution that simplifies task management across various environments, making it an indispensable tool for modern developers.&lt;/p&gt;
&lt;h2 id="what-is-taskfile"&gt;What is Taskfile?&lt;/h2&gt;
&lt;p&gt;Taskfile is an open-source task runner that uses a simple YAML file to define and execute custom tasks. It&amp;rsquo;s designed for developers who need a versatile tool to run tasks both locally during development and remotely, triggered by events such as a push to a Git repository. Taskfile offers a clear and declarative format to manage workflows, ensuring that tasks are easy to write, read, and maintain.&lt;/p&gt;</description></item><item><title>Embracing Minimalist Containerization</title><link>https://srekubecraft.io/posts/minimal-base-images/</link><pubDate>Sat, 13 Apr 2024 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/minimal-base-images/</guid><description>&lt;p&gt;In the realm of software development, the deployment and management of applications have been transformed by containerization. Containers, fundamentally different from virtual machines, provide a lightweight, efficient, and scalable solution for running multiple applications on the same operating system kernel.&lt;/p&gt;
&lt;h3 id="containers-vs-virtual-machines"&gt;Containers vs. Virtual Machines&lt;/h3&gt;
&lt;p&gt;Unlike virtual machines, containers do not encapsulate a full operating system; instead, they package only the necessary components required to run the application, sharing the host system&amp;rsquo;s OS kernel. This shared approach results in reduced overhead and faster startup times compared to VMs which require their own OS instance.&lt;/p&gt;</description></item><item><title>Admission Controller policies</title><link>https://srekubecraft.io/posts/admission-controller-policies/</link><pubDate>Fri, 05 Apr 2024 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/admission-controller-policies/</guid><description>&lt;p&gt;An Admission Controller in Kubernetes (k8s) is a critical component that intercepts requests to the Kubernetes API server before the persistence of the object, but after the request is authenticated and authorized. The Admission Controller makes decisions on whether to admit the request based on specific policies and rules, thereby acting as a gatekeeper that can either allow or block the creation, modification, deletion, or connection to a Kubernetes object based on the configured admission control plugins.&lt;/p&gt;</description></item><item><title>Transforming Operations. The SRE Approach</title><link>https://srekubecraft.io/posts/the-sre-approach/</link><pubDate>Tue, 05 Mar 2024 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/the-sre-approach/</guid><description>&lt;p&gt;&lt;img src="https://srekubecraft.io/img/SRE.webp" alt="SRE"&gt;
&lt;em&gt;Site Reliability Engineering&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In the words of Carla Geisser (Google SRE), &lt;strong&gt;&amp;ldquo;If a human operator needs to touch your system during normal operations, you have a bug. The definition of normal changes as your systems grow.&amp;rdquo;&lt;/strong&gt; This principle underpins the philosophy of Site Reliability Engineering (SRE), a discipline that evolves alongside with technology.&lt;/p&gt;
&lt;h2 id="devops-and-sre-a-unified-front"&gt;DevOps and SRE: A Unified Front&lt;/h2&gt;
&lt;p&gt;DevOps integrates software development and operations to enhance agility and ensure system integrity, focusing on rapid innovation and stability. SRE builds on this by operationalizing software reliability, incorporating practical strategies to harmonize development and operations further. It&amp;rsquo;s about turning DevOps principles into a systematic practice that guarantees reliable, scalable, and efficient systems.&lt;/p&gt;</description></item><item><title>Ephemeral Containers</title><link>https://srekubecraft.io/posts/ephemeral-containers/</link><pubDate>Mon, 05 Feb 2024 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/ephemeral-containers/</guid><description>&lt;p&gt;In Kubernetes environments, particularly for versions 1.25 and beyond, traditional methods of diagnosing issues within containers are becoming outdated. The introduction of ephemeral debug containers offers a modernized, preferable alternative for troubleshooting. This means that the practice of directly executing commands inside a container using &lt;code&gt;kubectl exec&lt;/code&gt; is strongly discouraged, to the point where it&amp;rsquo;s suggested those who use it should face consequences.&lt;/p&gt;
&lt;h2 id="do-not-do-this-"&gt;Do not do this! ⚠️ &lt;/h2&gt;
&lt;h4 id="enter-inside-a-container"&gt;Enter inside a container&lt;/h4&gt;
&lt;p&gt;The use of ephemeral containers is a significant shift in how we approach problem-solving within Kubernetes. By executing a command such as:&lt;/p&gt;</description></item><item><title>Configure Unify Execute</title><link>https://srekubecraft.io/posts/configure-unify-execute/</link><pubDate>Fri, 05 Jan 2024 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/configure-unify-execute/</guid><description>&lt;p&gt;&lt;a href="https://cuelang.org"&gt;Official web site CUE&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In the realm of application and infrastructure management, particularly within environments as dynamic as Kubernetes, the ability to accurately validate, define, and utilize both dynamic and text-based data becomes paramount. &lt;strong&gt;Configure Unify Execute (CUE)&lt;/strong&gt; emerges as a robust solution designed to simplify these processes. By facilitating data validation, schema creation, and ensuring that configurations are in strict alignment with predefined policies, CUE empowers developers and operators alike to maintain consistency and reliability across their deployments.&lt;/p&gt;</description></item><item><title>Pod restart notifier operator CRD.</title><link>https://srekubecraft.io/posts/pod-restart-notifier-operator-crd/</link><pubDate>Mon, 04 Sep 2023 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/pod-restart-notifier-operator-crd/</guid><description>&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;Before you start building the &lt;code&gt;pod-restart-notifier&lt;/code&gt; operator, make sure you have the following software dependencies installed on your machine:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Install &lt;a href="https://go.dev/dl/"&gt;Go&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Install &lt;a href="https://minikube.sigs.k8s.io/docs/start/"&gt;Minikube&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Install &lt;a href="https://kubernetes.io/docs/tasks/tools/install-kubectl/"&gt;kubectl&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Install &lt;a href="https://www.docker.com/products/docker-desktop/"&gt;Docker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Install &lt;a href="https://helm.sh/docs/intro/install/"&gt;Helm&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In this guide, we walk through the process of creating a Kubernetes operator called &lt;code&gt;pod-restart-notifier&lt;/code&gt;. The operator uses Custom Resource Definitions (CRDs) to define custom resources and manages their lifecycle. We leverage &lt;code&gt;kubebuilder&lt;/code&gt; to simplify the development of CRDs and custom controllers. Additionally, we demonstrate the testing process for the operator in a Minikube Kubernetes cluster.&lt;/p&gt;</description></item><item><title>Pod restart notifier operator.</title><link>https://srekubecraft.io/posts/pod-restart-notifier-operator/</link><pubDate>Mon, 21 Aug 2023 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/pod-restart-notifier-operator/</guid><description>&lt;h3 id="minikube"&gt;Minikube&lt;/h3&gt;
&lt;p&gt;Start a local Kubernetes cluster.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Use virtual machines like with the VirtualBox or Hyper-V drivers&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;minikube start --nodes&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt; --memory&lt;span class="o"&gt;=&lt;/span&gt;2g --cpus&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Use Docker as the driver for creating the Kubernetes node VMs (like MAC M1)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;minikube start --nodes&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt; --driver&lt;span class="o"&gt;=&lt;/span&gt;docker --memory&lt;span class="o"&gt;=&lt;/span&gt;2g --cpus&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Check status of cluster.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;minikube status
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl get nodes -o wide
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="pod-restart-notifier-operator"&gt;Pod Restart Notifier Operator&lt;/h3&gt;
&lt;p&gt;The purpose of this operator is check the state of all pods every minute and send a notification via a specified channel (e.g., Discord) for every detected restart of a pod.&lt;/p&gt;</description></item><item><title>WebLogic in Kubernetes.</title><link>https://srekubecraft.io/posts/weblogic-in-kubernetes/</link><pubDate>Sat, 20 May 2023 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/weblogic-in-kubernetes/</guid><description>&lt;p&gt;Deployment of a WebLogic Server in Kubernetes Using the WebLogic Kubernetes Operator.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Install &lt;a href="https://docs.docker.com/desktop/install/"&gt;Docker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Install &lt;a href="https://minikube.sigs.k8s.io/docs/start/"&gt;Minikube&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Install &lt;a href="https://helm.sh/docs/intro/install/"&gt;Helm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Create account to &lt;a href="https://container-registry.oracle.com/"&gt;OCR&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="creating-local-kubernetes-cluster"&gt;Creating local Kubernetes Cluster&lt;/h2&gt;
&lt;p&gt;To build the Kubernetes cluster locally we will use Docker and minikube.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Check the Minikube version&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;minikube version
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Configure the amount of memory and number of CPUs for Minikube.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;minikube start --memory &lt;span class="m"&gt;4096&lt;/span&gt; --cpus &lt;span class="m"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Get the status of a Minikube cluster&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;minikube status
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Check the nodes of Local K8s Cluster.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl get nodes -o wide
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Output&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;minikube Ready control-plane 23s v1.24.1 192.168.49.2 &amp;lt;none&amp;gt; Ubuntu 20.04.4 LTS 5.15.49-linuxkit docker://20.10.17
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="useful-minikube-commands"&gt;Useful minikube commands&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Access the Kubernetes Dashboard&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;minikube dashboard
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Get the IP address of the Minikube VM&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;minikube ip
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# List enabled addons&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;minikube addons list
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Enable addons&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;minikube addons &lt;span class="nb"&gt;enable&lt;/span&gt; &amp;lt;addon-name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Disable addons&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;minikube addons disable &amp;lt;addon-name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="install-weblogic-operator"&gt;Install WebLogic Operator&lt;/h2&gt;
&lt;p&gt;Establish Helm configuration by indicating the location of the operator&amp;rsquo;s Helm chart as follows.&lt;/p&gt;</description></item><item><title>AKS with Terraform.</title><link>https://srekubecraft.io/posts/aks-with-terraform/</link><pubDate>Sun, 07 May 2023 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/aks-with-terraform/</guid><description>&lt;p&gt;Azure Kubernetes Service (AKS) with Terraform.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Create &lt;a href="https://portal.azure.com"&gt;Azure account&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Install &lt;a href="https://docs.microsoft.com/en-us/cli/azure/install-azure-cli"&gt;Azure CLI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Install &lt;a href="https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli"&gt;Terraform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Install &lt;a href="https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/"&gt;kubectl&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="creating-credentials"&gt;Creating credentials&lt;/h2&gt;
&lt;p&gt;Once you&amp;rsquo;ve established an Azure account and installed az on your machine, it&amp;rsquo;s necessary to sign in prior to initiating the creation process.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;az login
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="https://www.azurespeed.com/Azure/Latency"&gt;check latency&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# List of available regions&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;az account list-locations --query &lt;span class="s2"&gt;&amp;#34;[].{Name:name, DisplayName:displayName}&amp;#34;&lt;/span&gt; -o table
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;An authentication prompt should have appeared in your browser. Adhere to the given guidelines. With that completed, we can advance by generating a new resource group. If you&amp;rsquo;re a novice to Azure, be aware that all components are arranged within resource groups.&lt;/p&gt;</description></item><item><title>EKS with Terraform</title><link>https://srekubecraft.io/posts/eks-with-terraform/</link><pubDate>Sun, 30 Apr 2023 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/posts/eks-with-terraform/</guid><description>&lt;p&gt;Elastic Kubernetes Service (EKS) with Terraform.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Create &lt;a href="https://console.aws.amazon.com"&gt;AWS account&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Install &lt;a href="https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html"&gt;Amazon CLI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Install &lt;a href="https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli"&gt;Terraform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Install &lt;a href="https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/"&gt;kubectl&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="creating-credentials"&gt;Creating credentials&lt;/h2&gt;
&lt;p&gt;Although the objective is to employ Terraform for all infrastructure-related tasks, some AWS-specific items are necessary. Specifically, we need to create an access key ID and a secret access key. To do this, please open the AWS Console. If you&amp;rsquo;re new to AWS, register for an account otherwise, log in.&lt;/p&gt;
&lt;p&gt;Next, navigate to My Security Credentials, where you&amp;rsquo;ll find various options for generating credentials. Locate and expand the Access keys (access key ID and secret access key) section, then click on the Create New Access Key button. A message will confirm the successful creation of your access key. Make sure not to close this popup by clicking the Close button, as the access key information will be required and is only shown at this time.&lt;/p&gt;</description></item><item><title>Archives</title><link>https://srekubecraft.io/archives/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/archives/</guid><description/></item><item><title>whoami</title><link>https://srekubecraft.io/whoami/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://srekubecraft.io/whoami/</guid><description>&lt;p&gt;Welcome to my personal &lt;a href="https://srekubecraft.io"&gt;blog&lt;/a&gt;. A collection of articles focused on Kubernetes, Site Reliability Engineering, and Cloud Computing. Each post is crafted to share insights, best practices, and the latest trends in these dynamic fields.&lt;/p&gt;
&lt;p&gt;I am a &lt;strong&gt;Principal Site Reliability Engineer&lt;/strong&gt; currently at Workable. With a rich background spanning over 15+ years in the IT industry, I have contributed significantly to large-scale projects at notable companies including OTE/Cosmote, Dixons, Vodafone and Workable among others.&lt;/p&gt;</description></item></channel></rss>