<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kubernetes &#8211; Noise</title>
	<atom:link href="https://noise.getoto.net/tag/kubernetes/feed/" rel="self" type="application/rss+xml" />
	<link>https://noise.getoto.net</link>
	<description>The collective thoughts of the interwebz</description>
	<lastBuildDate>Fri, 03 Jul 2026 00:00:00 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>
	<item>
		<title>Migrating Counter Service storage: Design choices and learnings</title>
		<link>https://noise.getoto.net/2026/07/03/migrating-counter-service-storage-design-choices-and-learnings/</link>
		
		<dc:creator><![CDATA[Grab Tech]]></dc:creator>
		<pubDate>Fri, 03 Jul 2026 00:00:00 +0000</pubDate>
				<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[DevSecOps]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Platform]]></category>
		<category><![CDATA[security]]></category>
		<guid isPermaLink="false">https://engineering.grab.com/counter-service-storage-migration</guid>

					<description><![CDATA[Introduction

Counter Service is used across Grab’s anti-fraud platform to answer time-windowed count questions, such as recent ride requests by a user or failed payment attempts on a card. The service handles tens of thousands of queries per second (Q...]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>How Netflix Simplified Batch Compute with Kueue</title>
		<link>https://noise.getoto.net/2026/06/23/how-netflix-simplified-batch-compute-with-kueue/</link>
		
		<dc:creator><![CDATA[Netflix Technology Blog]]></dc:creator>
		<pubDate>Mon, 22 Jun 2026 21:35:01 +0000</pubDate>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[kueue]]></category>
		<category><![CDATA[Netflix]]></category>
		<guid isPermaLink="false">https://medium.com/p/87860682629c</guid>

					<description><![CDATA[By Alvin Bao, Alex Petrov, Jennifer Lai, Aidan Sherr, and Samartha ChandrashekarAs a part of the journey to transition Netflix’s compute infrastructure to be more Kubernetes-native, we have leaned into incorporating components from the Kubernetes ecosy...]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Palana (Part 2): Architecting isolation, identity, and auditability for AI agents</title>
		<link>https://noise.getoto.net/2026/06/21/palana-part-2-architecting-isolation-identity-and-auditability-for-ai-agents/</link>
		
		<dc:creator><![CDATA[Grab Tech]]></dc:creator>
		<pubDate>Sun, 21 Jun 2026 00:00:00 +0000</pubDate>
				<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[DevSecOps]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Platform]]></category>
		<category><![CDATA[security]]></category>
		<guid isPermaLink="false">https://engineering.grab.com/part-2-palana-architecture</guid>

					<description><![CDATA[Introduction

In Part 1, we introduced Palana, Grab’s Kubernetes-native secure execution platform for autonomous AI agents. We discussed the underlying need for isolated environments and covered its core design principles: treating isolation as the uni...]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Palana (Part 1): Why Grab built a secure platform for autonomous AI Agents</title>
		<link>https://noise.getoto.net/2026/06/19/palana-part-1-why-grab-built-a-secure-platform-for-autonomous-ai-agents/</link>
		
		<dc:creator><![CDATA[Grab Tech]]></dc:creator>
		<pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate>
				<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[DevSecOps]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Platform]]></category>
		<category><![CDATA[security]]></category>
		<guid isPermaLink="false">https://engineering.grab.com/palana-part-1-secure-platform-for-ai-agents</guid>

					<description><![CDATA[Abstract

Artificial intelligence (AI) agents are moving from experiments into everyday engineering workflows. They can read code, call application programming interfaces (APIs), run tests, create merge requests, answer Slack messages, and keep long-ru...]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Diagnose EKS Node Issues Faster with AWS DevOps Agent and Custom MCP</title>
		<link>https://noise.getoto.net/2026/06/11/diagnose-eks-node-issues-faster-with-aws-devops-agent-and-custom-mcp/</link>
		
		<dc:creator><![CDATA[Shyam Kulkarni]]></dc:creator>
		<pubDate>Thu, 11 Jun 2026 20:43:08 +0000</pubDate>
				<category><![CDATA[AIOps]]></category>
		<category><![CDATA[Amazon EKS]]></category>
		<category><![CDATA[Amazon Elastic Kubernetes Service]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[Customer Solutions]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[EKS]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[SSM Agent Systems Manager]]></category>
		<category><![CDATA[Technical How-to]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://noise.getoto.net/?guid=33c0efe57ca3576188c767274011c364</guid>

					<description><![CDATA[AWS DevOps Agent can investigate a growing range of production incidents autonomously. It diagnoses CrashLoopBackOff failures, traces ConfigMap deletions through audit logs, and correlates Amazon CloudWatch metrics with cluster events — all without human intervention. But AWS DevOps Agent has a visibility boundary. When the data it needs lives outside its native integrations — on […]]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>A one-line Kubernetes fix that saved 600 hours a year</title>
		<link>https://noise.getoto.net/2026/03/26/a-one-line-kubernetes-fix-that-saved-600-hours-a-year/</link>
		
		<dc:creator><![CDATA[Braxton Schafer]]></dc:creator>
		<pubDate>Thu, 26 Mar 2026 13:00:00 +0000</pubDate>
				<category><![CDATA[infrastructure]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Platform Engineering]]></category>
		<category><![CDATA[sre]]></category>
		<category><![CDATA[Terraform]]></category>
		<guid isPermaLink="false">http://noise.getoto.net/?guid=68e9374c239a70360eeb4e8a2d91071f</guid>

					<description><![CDATA[When we investigated why our Atlantis instance took 30 minutes to restart, we discovered a bottleneck in how Kubernetes handles volume permissions. By adjusting the fsGroupChangePolicy, we reduced restart times to 30 seconds.]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Architecting conversational observability for cloud applications</title>
		<link>https://noise.getoto.net/2025/12/11/architecting-conversational-observability-for-cloud-applications/</link>
		
		<dc:creator><![CDATA[Anton Aleksandrov]]></dc:creator>
		<pubDate>Thu, 11 Dec 2025 15:59:39 +0000</pubDate>
				<category><![CDATA[Amazon Bedrock]]></category>
		<category><![CDATA[Amazon Elastic Container Service]]></category>
		<category><![CDATA[Amazon Elastic Kubernetes Service]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[AWS Lambda]]></category>
		<category><![CDATA[Containers]]></category>
		<category><![CDATA[ECS]]></category>
		<category><![CDATA[generative AI]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[operational excellence]]></category>
		<guid isPermaLink="false">http://noise.getoto.net/?guid=b4f1595fd0b20e457632ad4f7a305e11</guid>

					<description><![CDATA[In this post, we walk through building a generative AI–powered troubleshooting assistant for Kubernetes. The goal is to give engineers a faster, self-service way to diagnose and resolve cluster issues, cut down Mean Time to Recovery (MTTR), and reduce the cycles experts spend finding the root cause of issues in complex distributed systems.]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Grab&#8217;s service mesh evolution: From Consul to Istio</title>
		<link>https://noise.getoto.net/2025/07/16/grabs-service-mesh-evolution-from-consul-to-istio/</link>
		
		<dc:creator><![CDATA[Grab Tech]]></dc:creator>
		<pubDate>Wed, 16 Jul 2025 00:00:10 +0000</pubDate>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[GCP]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Microservice]]></category>
		<category><![CDATA[service-mesh]]></category>
		<guid isPermaLink="false">https://engineering.grab.com/service-mesh-evolution</guid>

					<description><![CDATA[The challenge: When good enough isn’t good enough

Picture this: It’s 2024, and Grab’s microservices ecosystem is thriving with over 1000 services running in different infrastructure. But behind the scenes, our service mesh setup is showing its age. We...]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Leveraging Kubernetes virtual machines at Cloudflare with KubeVirt</title>
		<link>https://noise.getoto.net/2024/10/08/leveraging-kubernetes-virtual-machines-at-cloudflare-with-kubevirt/</link>
		
		<dc:creator><![CDATA[Justin Cichra]]></dc:creator>
		<pubDate>Tue, 08 Oct 2024 13:00:00 +0000</pubDate>
				<category><![CDATA[infrastructure]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<guid isPermaLink="false">http://noise.getoto.net/?guid=20b1e99ba8c01b4d362c421d84a3f129</guid>

					<description><![CDATA[The Kubernetes team runs several multi-tenant clusters across Cloudflare’s core data centers. When multi-tenant cluster isolation is too limiting for an application, we use KubeVirt. KubeVirt is a cloud-native solution that enables our developers to run virtual machines alongside containers.]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Evolution of Catwalk: Model serving platform at Grab</title>
		<link>https://noise.getoto.net/2024/10/01/evolution-of-catwalk-model-serving-platform-at-grab/</link>
		
		<dc:creator><![CDATA[Grab Tech]]></dc:creator>
		<pubDate>Tue, 01 Oct 2024 00:00:50 +0000</pubDate>
				<category><![CDATA[Data Science]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[machine learning]]></category>
		<category><![CDATA[Models]]></category>
		<category><![CDATA[TensorFlow]]></category>
		<guid isPermaLink="false">https://engineering.grab.com/catwalk-evolution</guid>

					<description><![CDATA[Introduction

As Southeast Asia’s leading super app, Grab serves millions of users across multiple countries every day. Our services range from ride-hailing and food delivery to digital payments and much more. The backbone of our operations? Machine Le...]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Simplify Amazon EKS Deployments with GitHub Actions and AWS CodeBuild</title>
		<link>https://noise.getoto.net/2024/05/05/simplify-amazon-eks-deployments-with-github-actions-and-aws-codebuild/</link>
		
		<dc:creator><![CDATA[Deepak Kovvuri]]></dc:creator>
		<pubDate>Sun, 05 May 2024 19:08:06 +0000</pubDate>
				<category><![CDATA[Advanced (300)]]></category>
		<category><![CDATA[Amazon Elastic Kubernetes Service]]></category>
		<category><![CDATA[AWS CodeBuild]]></category>
		<category><![CDATA[AWS CodeCommit]]></category>
		<category><![CDATA[AWS CodePipeline]]></category>
		<category><![CDATA[EKS]]></category>
		<category><![CDATA[GitHub Actions]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Technical How-to]]></category>
		<guid isPermaLink="false">http://noise.getoto.net/?guid=bb138181468bfc4083ebcd316200002c</guid>

					<description><![CDATA[In this blog post, we will explore how to simplify Amazon EKS deployments with GitHub Actions and AWS CodeBuild. In today’s fast-paced digital landscape, organizations are turning to DevOps practices to drive innovation and streamline their software development and infrastructure management processes. One key practice within DevOps is Continuous Integration and Continuous Delivery (CI/CD), which […]]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Rethinking Stream Processing: Data Exploration</title>
		<link>https://noise.getoto.net/2024/01/31/rethinking-stream-processing-data-exploration/</link>
		
		<dc:creator><![CDATA[Grab Tech]]></dc:creator>
		<pubDate>Wed, 31 Jan 2024 00:10:10 +0000</pubDate>
				<category><![CDATA[data streaming]]></category>
		<category><![CDATA[Deployments]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[kafka]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Streaming applications]]></category>
		<guid isPermaLink="false">https://engineering.grab.com/rethinking-streaming-processing-data-exploration</guid>

					<description><![CDATA[Introduction

In this digital age, companies collect multitudes of data that enable the tracking of business metrics and performance. Over the years, data analytics tools for data storage and processing have evolved from the days of Excel sheets and ma...]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Kafka on Kubernetes: Reloaded for fault tolerance</title>
		<link>https://noise.getoto.net/2023/12/26/kafka-on-kubernetes-reloaded-for-fault-tolerance/</link>
		
		<dc:creator><![CDATA[Grab Tech]]></dc:creator>
		<pubDate>Tue, 26 Dec 2023 00:10:10 +0000</pubDate>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[Data Science]]></category>
		<category><![CDATA[data streaming]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[kafka]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<guid isPermaLink="false">https://engineering.grab.com/kafka-on-kubernetes</guid>

					<description><![CDATA[Introduction

Coban - Grab’s real-time data streaming platform - has been operating Kafka on Kubernetes with Strimzi in 
production for about two years. In a previous article (Zero trust with Kafka), we explained how we leveraged Strimzi to enhance the...]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Kubernetes And Kernel Panics</title>
		<link>https://noise.getoto.net/2023/10/27/kubernetes-and-kernel-panics/</link>
		
		<dc:creator><![CDATA[Netflix Technology Blog]]></dc:creator>
		<pubDate>Fri, 27 Oct 2023 16:05:58 +0000</pubDate>
				<category><![CDATA[kernel-panic]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[linux]]></category>
		<guid isPermaLink="false">https://medium.com/p/ed620b9c6225</guid>

					<description><![CDATA[<p>How Netflix’s Container Platform Connects Linux Kernel Panics to Kubernetes Pods</p><p><em>By Kyle Anderson</em></p><p>With a recent effort to reduce customer (engineers, not end users) pain on our container platform <a href="https://netflixtechblog.com/tagged/titus">Titus</a>, I started investigating “orphaned” pods. There are pods that never got to finish and had to be garbage collected with no real satisfactory final status. Our Service job (think <a href="https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/">ReplicatSet</a>) owners don’t care too much, but our Batch users care a lot. Without a real return code, how can they know if it is safe to retry or not?</p><p>These orphaned pods represent real pain for our users, even if they are a small percentage of the total pods in the system. Where are they going, exactly? Why did they go away?</p><p>This blog post shows how to connect the dots from the worst case scenario (a kernel panic) through to Kubernetes (k8s) and eventually up to us operators so that we can track how and why our k8s nodes are going away.</p><h3>Where Do Orphaned Pods Come From?</h3><p>Orphaned pods get lost because the underlying k8s node object goes away. Once that happens a <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-garbage-collection">GC</a> process deletes the pod. On Titus we run a custom controller to store the history of Pod and Node objects, so that we can save some explanation and show it to our users. This failure mode looks like this in our UI:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/791/0*bPnudULpVKE1AKEH"><figcaption>What it looks like to our users when a k8s node and its pods disappear</figcaption></figure><p>This is <em>an </em>explanation, but it wasn’t very satisfying to me or to our users. <em>Why</em> was the agent lost?</p><h3>Where Do Lost Nodes Come From?</h3><p>Nodes can go away for any reason, especially in “the cloud”. When this happens, usually a k8s cloud-controller provided by the cloud vendor will detect that the actual server, in our case an EC2 Instance, has actually gone away, and will in turn delete the k8s node object. That still doesn’t really answer the question of <em>why</em>.</p><p>How can we make sure that every instance that goes away has a reason, account for that reason, and bubble it up all the way to the pod? It all starts with an annotation:</p><pre>{<br>     "apiVersion": "v1",<br>     "kind": "Pod",<br>     "metadata": {<br>          "annotations": {<br>               "pod.titus.netflix.com/pod-termination-reason": "Something really bad happened!",<br>...</pre><p>Just making a place to put this data is a great start. Now all we have to do is make our GC controllers aware of this annotation, and then sprinkle it into any process that could potentially make a pod or node go away unexpectedly. Adding an annotation (as opposed to patching the status) preserves the rest of the pod as-is for historical purposes. (We also add annotations for what did the terminating, and a short reason-code for tagging)</p><p>The pod-termination-reason annotation is useful to populate human readable messages like:</p><ul><li>“This pod was preempted by a higher priority job ($id)”</li><li>“This pod had to be terminated because the underlying hardware failed ($failuretype)”</li><li>“This pod had to be terminated because $user ran sudo halt on the node”</li><li><strong>“This pod died unexpectedly because the underlying node kernel panicked!”</strong></li></ul><p>But wait, how are we going to annotate a pod for a node that kernel panicked?</p><h3>Capturing Kernel Panics</h3><p>When the Linux kernel panics, there is just not much you can do. But what if you could send out some sort of “with my final breath, I curse Kubernetes!” UDP packet?</p><p>Inspired by this <a href="https://research.google/pubs/pub45855/">Google Spanner paper</a>, where Spanner nodes send out a “last gasp” UDP packet to release leases &#38; locks, you too can configure your servers to do the same upon kernel panic using a stock Linux module: <a href="https://www.kernel.org/doc/Documentation/networking/netconsole.txt">netconsole</a>.</p><h3>Configuring Netconsole</h3><p>The fact that the Linux kernel can even send out UDP packets with the string ‘kernel panic’, <em>while it is panicking</em>, is kind of amazing. This works because netconsole needs to be configured with almost the entire IP header filled out already beforehand. That is right, you have to tell Linux exactly what your source MAC, IP, and UDP Port are, as well as the destination MAC, IP, and UDP ports. You are practically constructing the UDP packet for the kernel. But, with that prework, when the time comes, the kernel can easily <a href="https://github.com/torvalds/linux/blob/94f6f0550c625fab1f373bb86a6669b45e9748b3/drivers/net/netconsole.c#L932">construct</a> the packet and get it out the (preconfigured) network interface as things come crashing down. Luckily the <a href="https://manpages.ubuntu.com/manpages/jammy/en/man8/netconsole-setup.8.html">netconsole-setup</a> command makes the setup pretty easy. All the configuration options can be set <a href="https://wiki.ubuntu.com/Kernel/Netconsole#Step_3:_Initialize_netconsole_at_boot_time">dynamically</a> as well, so that when the endpoint changes one can point to the new IP.</p><p>Once this is setup, kernel messages will start flowing right after modprobe. Imagine the whole thing operating like a dmesg &#124; netcat -u $destination 6666, but in kernel space.</p><h3>Netconsole “Last Gasp” Packets</h3><p>With netconsole setup, the last gasp from a crashing kernel looks like a set of UDP packets exactly like one might expect, where the data of the UDP packet is simply the text of the kernel message. In the case of a kernel panic, it will look something like this (one UDP packet per line):</p><pre>Kernel panic - not syncing: buffer overrun at 0x4ba4c73e73acce54<br>[ 8374.456345] CPU: 1 PID: 139616 Comm: insmod Kdump: loaded Tainted: G OE<br>[ 8374.458506] Hardware name: Amazon EC2 r5.2xlarge/, BIOS 1.0 10/16/2017<br>[ 8374.555629] Call Trace:<br>[ 8374.556147] &#60;TASK&#62;<br>[ 8374.556601] dump_stack_lvl+0x45/0x5b<br>[ 8374.557361] panic+0x103/0x2db<br>[ 8374.558166] ? __cond_resched+0x15/0x20<br>[ 8374.559019] ? do_init_module+0x22/0x20a<br>[ 8374.655123] ? 0xffffffffc0f56000<br>[ 8374.655810] init_module+0x11/0x1000 [kpanic]<br>[ 8374.656939] do_one_initcall+0x41/0x1e0<br>[ 8374.657724] ? __cond_resched+0x15/0x20<br>[ 8374.658505] ? kmem_cache_alloc_trace+0x3d/0x3c0<br>[ 8374.754906] do_init_module+0x4b/0x20a<br>[ 8374.755703] load_module+0x2a7a/0x3030<br>[ 8374.756557] ? __do_sys_finit_module+0xaa/0x110<br>[ 8374.757480] __do_sys_finit_module+0xaa/0x110<br>[ 8374.758537] do_syscall_64+0x3a/0xc0<br>[ 8374.759331] entry_SYSCALL_64_after_hwframe+0x62/0xcc<br>[ 8374.855671] RIP: 0033:0x7f2869e8ee69<br>...</pre><h3>Connecting to Kubernetes</h3><p>The last piece is to connect is Kubernetes (k8s). We need a k8s controller to do the following:</p><ol><li>Listen for netconsole UDP packets on port 6666, watching for things that look like kernel panics from nodes.</li><li>Upon kernel panic, lookup the k8s node object associated with the IP address of the incoming netconsole packet.</li><li>For that k8s node, find all the pods bound to it, annotate, then delete those pods (they are toast!).</li><li>For that k8s node, annotate the node and then delete it too (it is also toast!).</li></ol><p>Parts 1&#38;2 might look like this:</p><pre>for {<br>    n, addr, err := serverConn.ReadFromUDP(buf)<br>    if err != nil {<br>        klog.Errorf("Error ReadFromUDP: %s", err)<br>    } else {<br>        line := santizeNetConsoleBuffer(buf[0:n])<br>        if isKernelPanic(line) {<br>            panicCounter = 20<br>            go handleKernelPanicOnNode(ctx, addr, nodeInformer, podInformer, kubeClient, line)<br>        }<br>    }<br>    if panicCounter &#62; 0 {<br>        klog.Infof("KernelPanic context from %s: %s", addr.IP, line)<br>        panicCounter++<br>    }<br>}</pre><p>And then parts 3&#38;4 might look like this:</p><pre>func handleKernelPanicOnNode(ctx context.Context, addr *net.UDPAddr, nodeInformer cache.SharedIndexInformer, podInformer cache.SharedIndexInformer, kubeClient kubernetes.Interface, line string) {<br>    node := getNodeFromAddr(addr.IP.String(), nodeInformer)<br>    if node == nil {<br>        klog.Errorf("Got a kernel panic from %s, but couldn't find a k8s node object for it?", addr.IP.String())<br>    } else {<br>        pods := getPodsFromNode(node, podInformer)<br>        klog.Infof("Got a kernel panic from node %s, annotating and deleting all %d pods and that node.", node.Name, len(pods))<br>        annotateAndDeletePodsWithReason(ctx, kubeClient, pods, line)<br>        err := deleteNode(ctx, kubeClient, node.Name)<br>        if err != nil {<br>            klog.Errorf("Error deleting node %s: %s", node.Name, err)<br>        } else {<br>            klog.Infof("Deleted panicked node %s", node.Name)<br>        }<br>    }<br>}</pre><p>With that code in place, as soon as a kernel panic is detected, the pods and nodes immediately go away. No need to wait for any GC process. The annotations help document what happened to the node &#38; pod:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*cjClRuyUQ67lu2shmjCObQ.png"><figcaption>A real pod lost on a real k8s node that had a real kernel panic!</figcaption></figure><h3>Conclusion</h3><p>Marking that a job failed because of a kernel panic may not be <em>that</em> satisfactory to our customers. But they can take satisfaction in knowing that we now have the required observability tools to start fixing those kernel panics!</p><p>Do you also enjoy really getting to the bottom of why things fail in your systems or think kernel panics are cool? Join us on the <a href="https://jobs.netflix.com/jobs/198642264">Compute Team</a> where we are building a world-class container platform for our engineers.</p><img src="https://medium.com/_/stat?event=post.clientViewed&#38;referrerSource=full_rss&#38;postId=ed620b9c6225" width="1" height="1" alt=""><hr><p><a href="https://netflixtechblog.com/kubernetes-and-kernel-panics-ed620b9c6225">Kubernetes And Kernel Panics</a> was originally published in <a href="https://netflixtechblog.com/">Netflix TechBlog</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Let’s Architect! Security in software architectures</title>
		<link>https://noise.getoto.net/2023/08/16/lets-architect-security-in-software-architectures/</link>
		
		<dc:creator><![CDATA[Luca Mezzalira]]></dc:creator>
		<pubDate>Wed, 16 Aug 2023 12:58:33 +0000</pubDate>
				<category><![CDATA[Amazon Elastic Container Service]]></category>
		<category><![CDATA[Amazon Elastic Kubernetes Service]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[AWS Secrets Manager]]></category>
		<category><![CDATA[Containers]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Let's Architect]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[Security, Identity & Compliance]]></category>
		<category><![CDATA[Thought Leadership]]></category>
		<category><![CDATA[well architected]]></category>
		<guid isPermaLink="false">http://noise.getoto.net/?guid=89eb54f7cf6b03f3a3d1bf2990b0c013</guid>

					<description><![CDATA[Security is fundamental for each product and service you are building with. Whether you are working on the back-end or the data and machine learning components of a system, the solution should be securely built. In 2022, we discussed security in our post Let’s Architect! Architecting for Security. Today, we take a closer look at […]]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Kubernetes monitoring with Zabbix – Part 3: Extracting Prometheus metrics with Zabbix preprocessing</title>
		<link>https://noise.getoto.net/2023/03/23/kubernetes-monitoring-with-zabbix-part-3-extracting-prometheus-metrics-with-zabbix-preprocessing/</link>
		
		<dc:creator><![CDATA[Michaela DeForest]]></dc:creator>
		<pubDate>Thu, 23 Mar 2023 15:22:14 +0000</pubDate>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[Zabbix 6.0 LTS]]></category>
		<guid isPermaLink="false">https://blog.zabbix.com/?p=25639</guid>

					<description><![CDATA[In the previous Kubernetes monitoring blog post, we explored the functionality provided by the Kubernetes integration in Zabbix and…]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Kubernetes monitoring with Zabbix – Part 2: Understanding the discovered resources</title>
		<link>https://noise.getoto.net/2023/03/08/kubernetes-monitoring-with-zabbix-part-2-understanding-the-discovered-resources/</link>
		
		<dc:creator><![CDATA[Michaela DeForest]]></dc:creator>
		<pubDate>Wed, 08 Mar 2023 15:21:46 +0000</pubDate>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[Zabbix 6.0 LTS]]></category>
		<guid isPermaLink="false">https://blog.zabbix.com/?p=25476</guid>

					<description><![CDATA[In the previous blog post, we installed the Zabbix Agent Helm Chart and set up official Kubernetes templates to…]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>Intelligent, automatic restarts for unhealthy Kafka consumers</title>
		<link>https://noise.getoto.net/2023/01/24/intelligent-automatic-restarts-for-unhealthy-kafka-consumers/</link>
		
		<dc:creator><![CDATA[Chris Shepherd]]></dc:creator>
		<pubDate>Tue, 24 Jan 2023 14:00:00 +0000</pubDate>
				<category><![CDATA[Go]]></category>
		<category><![CDATA[kafka]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[observability]]></category>
		<guid isPermaLink="false">http://noise.getoto.net/?guid=3b828184d9055fd0f187ccf79365eb3f</guid>

					<description><![CDATA[At Cloudflare, we take steps to ensure we are resilient against failure at all levels of our infrastructure. This includes Kafka, which we use for critical workflows such as sending time-sensitive emails and alerts.]]></description>
		
		
		<enclosure url="http://blog.cloudflare.com/content/images/2023/01/image3-8-1.png" length="0" type="" />

			</item>
		<item>
		<title>Monitoring Kubernetes with Zabbix</title>
		<link>https://noise.getoto.net/2023/01/24/monitoring-kubernetes-with-zabbix/</link>
		
		<dc:creator><![CDATA[Michaela DeForest]]></dc:creator>
		<pubDate>Tue, 24 Jan 2023 13:00:09 +0000</pubDate>
				<category><![CDATA[Containers]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[How-to]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[zabbix 6.0]]></category>
		<guid isPermaLink="false">https://blog.zabbix.com/?p=25055</guid>

					<description><![CDATA[There are many options available for monitoring Kubernetes and cloud-native applications. In this multi-part blog series, we’ll explore how…]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
		<item>
		<title>How to investigate and take action on security issues in Amazon EKS clusters with Amazon Detective – Part 2</title>
		<link>https://noise.getoto.net/2022/12/05/how-to-investigate-and-take-action-on-security-issues-in-amazon-eks-clusters-with-amazon-detective-part-2/</link>
		
		<dc:creator><![CDATA[Marshall Jones]]></dc:creator>
		<pubDate>Mon, 05 Dec 2022 18:05:29 +0000</pubDate>
				<category><![CDATA[Containers]]></category>
		<category><![CDATA[Detective]]></category>
		<category><![CDATA[EKS]]></category>
		<category><![CDATA[GuardDuty]]></category>
		<category><![CDATA[incident response]]></category>
		<category><![CDATA[Intermediate (200)]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[Security Blog]]></category>
		<category><![CDATA[Security, Identity & Compliance]]></category>
		<category><![CDATA[Technical How-to]]></category>
		<category><![CDATA[threat detection]]></category>
		<guid isPermaLink="false">http://noise.getoto.net/?guid=18dc4c919f857ca53cc9cb1dacd9028b</guid>

					<description><![CDATA[In part 1 of this of this two-part series, How to detect security issues in Amazon EKS cluster using Amazon GuardDuty, we walked through a real-world observed security issue in an Amazon Elastic Kubernetes Service (Amazon EKS) cluster and saw how Amazon GuardDuty detected each phase by following MITRE ATT&#38;CK tactics. In this blog post, […]]]></description>
		
		
		<enclosure url="" length="0" type="" />

			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Object Caching 24/169 objects using Memcached
Page Caching using Disk: Enhanced 
Lazy Loading (feed)
Database Caching using Memcached

Served from: noise.getoto.net @ 2026-10-24 00:46:23 by W3 Total Cache
-->