<?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>Dockershim Archives - Linuxcent</title>
	<atom:link href="https://linuxcent.com/tag/dockershim/feed/" rel="self" type="application/rss+xml" />
	<link>https://linuxcent.com/tag/dockershim/</link>
	<description>Infrastructure security, from the kernel up.</description>
	<lastBuildDate>Sat, 09 May 2026 18:42:16 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.4</generator>

<image>
	<url>https://linuxcent.com/wp-content/uploads/2026/04/favicon-512x512-1-150x150.png</url>
	<title>Dockershim Archives - Linuxcent</title>
	<link>https://linuxcent.com/tag/dockershim/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">211632295</site>	<item>
		<title>The Runtime Reckoning: Dockershim Out, eBPF In, and PSP Finally Dies (2022–2023)</title>
		<link>https://linuxcent.com/kubernetes-dockershim-removal-ebpf/</link>
					<comments>https://linuxcent.com/kubernetes-dockershim-removal-ebpf/#respond</comments>
		
		<dc:creator><![CDATA[Vamshi Krishna Santhapuri]]></dc:creator>
		<pubDate>Wed, 08 Apr 2026 19:31:17 +0000</pubDate>
				<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Cilium]]></category>
		<category><![CDATA[Cloud Native]]></category>
		<category><![CDATA[Container Runtime]]></category>
		<category><![CDATA[Dockershim]]></category>
		<category><![CDATA[eBPF]]></category>
		<category><![CDATA[Kubernetes Security]]></category>
		<guid isPermaLink="false">https://linuxcent.com/kubernetes-dockershim-removal-ebpf/</guid>

					<description><![CDATA[<p><span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 6</span> <span class="rt-label rt-postfix">minutes</span></span>Dockershim was removed in v1.24. PSP was deleted in v1.25. eBPF displaced iptables in the network stack. Trace the runtime reckoning that modernized Kubernetes infrastructure.</p>
<p>The post <a href="https://linuxcent.com/kubernetes-dockershim-removal-ebpf/">The Runtime Reckoning: Dockershim Out, eBPF In, and PSP Finally Dies (2022–2023)</a> appeared first on <a href="https://linuxcent.com">Linuxcent</a>.</p>
]]></description>
										<content:encoded><![CDATA[<span class="span-reading-time rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Reading Time: </span> <span class="rt-time"> 6</span> <span class="rt-label rt-postfix">minutes</span></span><style>
pre{position:relative;background:#1e1e1e;color:#d4d4d4;<br />
    padding:16px 16px 16px 20px;border-radius:6px;overflow-x:auto;<br />
    font-family:'JetBrains Mono','Fira Code','Cascadia Code',Consolas,'Courier New',monospace;<br />
    font-size:.88em;line-height:1.6;border-left:4px solid #555}<br />
code{background:#f4f4f4;padding:2px 5px;border-radius:3px;font-size:.9em}<br />
pre code{background:transparent;padding:0;color:inherit}<br />
pre[data-lang="bash"],pre[data-lang="sh"],<br />
pre[data-lang="shell"],pre[data-lang="zsh"]{border-left-color:#4ec9b0}<br />
pre[data-lang="yaml"],pre[data-lang="json"],<br />
pre[data-lang="toml"],pre[data-lang="xml"]{border-left-color:#569cd6}<br />
pre[data-lang="python"],pre[data-lang="go"],pre[data-lang="rust"],<br />
pre[data-lang="java"],pre[data-lang="c"],pre[data-lang="cpp"]{border-left-color:#c586c0}<br />
pre[data-lang="text"],pre[data-lang="output"],<br />
pre[data-lang="console"]{border-left-color:#888}<br />
.lc-copy-btn{position:absolute;top:8px;right:8px;background:#2d2d2d;color:#ccc;<br />
    border:1px solid #444;border-radius:4px;padding:3px 9px;font-size:.75em;<br />
    font-family:system-ui,sans-serif;cursor:pointer;opacity:0;<br />
    transition:opacity .15s,background .15s;line-height:1.6}<br />
pre:hover .lc-copy-btn{opacity:1}<br />
.lc-copy-btn:hover{background:#3a3a3a;color:#fff}<br />
.lc-copy-btn.copied{color:#4ec9b0;border-color:#4ec9b0}<br />
.lc-lang-badge{position:absolute;top:8px;left:20px;font-family:system-ui,sans-serif;<br />
    font-size:.7em;color:#666;text-transform:uppercase;letter-spacing:.04em;<br />
    line-height:1;pointer-events:none;opacity:0;transition:opacity .15s}<br />
pre:hover .lc-lang-badge{opacity:1}<br />
table{border-collapse:collapse;width:100%;margin:16px 0}<br />
th,td{border:1px solid #ddd;padding:10px 14px;text-align:left}<br />
th{background:#f0f0f0;font-weight:600}<br />
tr:nth-child(even){background:#fafafa}<br />
</style>
<p><script>
(function(){
  if(window.__lcCodeEnhanced)return;
  window.__lcCodeEnhanced=true;
  function enhance(){
    document.querySelectorAll('pre').forEach(function(pre){
      var code=pre.querySelector('code');
      var lang='';
      if(code){var m=(code.className||'').match(/language-(\S+)/);if(m)lang=m[1].toLowerCase();}
      if(lang)pre.setAttribute('data-lang',lang);
      if(lang){var badge=document.createElement('span');badge.className='lc-lang-badge';badge.textContent=lang;pre.insertBefore(badge,pre.firstChild);}
      var btn=document.createElement('button');
      btn.className='lc-copy-btn';btn.textContent='Copy';btn.setAttribute('aria-label','Copy code to clipboard');
      pre.appendChild(btn);
      btn.addEventListener('click',function(){
        var text=code?code.innerText:pre.innerText;
        if(navigator.clipboard&&window.isSecureContext){
          navigator.clipboard.writeText(text).then(function(){ok(btn);}).catch(function(){fb(text,btn);});
        }else{fb(text,btn);}
      });
    });
  }
  function ok(btn){btn.textContent='Copied!';btn.classList.add('copied');setTimeout(function(){btn.textContent='Copy';btn.classList.remove('copied');},2000);}
  function fb(text,btn){
    try{var ta=document.createElement('textarea');ta.value=text;ta.style.cssText='position:fixed;left:-9999px;top:-9999px;opacity:0';document.body.appendChild(ta);ta.select();document.execCommand('copy');document.body.removeChild(ta);ok(btn);}
    catch(e){btn.textContent='✗ Failed';setTimeout(function(){btn.textContent='Copy';},2000);}
  }
  if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',enhance);}else{enhance();}
})();
</script></p>
<hr />
<h2 id="introduction">Introduction</h2>
<p>2022 is the year Kubernetes dealt with its legacy. The Docker shim that everyone had been warned about for two years was actually removed. PodSecurityPolicy — the broken security primitive that clusters had depended on since 1.3 — was deleted. And eBPF started displacing iptables as the networking substrate.</p>
<p>These weren&#8217;t additions to Kubernetes. They were the removal of technical debt accumulated over eight years. And the migrations they forced were the most operationally significant events since RBAC went stable.</p>
<hr />
<h2 id="kubernetes-124-dockershim-removed-may-2022">Kubernetes 1.24 — Dockershim Removed (May 2022)</h2>
<p>The dockershim was removed in 1.24. The deprecation had been announced in 1.20 (December 2020) — 18 months of warning. It didn&#8217;t matter. Operators who hadn&#8217;t migrated still scrambled.</p>
<p>The actual migration was straightforward for most environments:</p>
<pre><code class="" data-line=""># On each node, before upgrading to 1.24:
# 1. Install containerd
apt-get install -y containerd.io

# 2. Configure containerd
containerd config default | tee /etc/containerd/config.toml
# Edit: set SystemdCgroup = true in runc options

# 3. Update kubelet to use containerd socket
# /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
# Add: --container-runtime-endpoint=unix:///run/containerd/containerd.sock

# 4. Restart
systemctl daemon-reload &amp;&amp; systemctl restart kubelet
</code></pre>
<p>What the migration revealed: how many teams were depending on the Docker socket being present on nodes. Tools that mounted <code class="" data-line="">/var/run/docker.sock</code> to talk to the Docker daemon — build tools, CI agents, some monitoring agents — broke. The ecosystem had to adapt to <code class="" data-line="">nerdctl</code> (containerd&#8217;s Docker-compatible CLI), Kaniko, Buildah, or mounting the containerd socket instead.</p>
<p>Other 1.24 highlights:<br />
&#8211; <strong>Beta APIs disabled by default</strong>: New beta features would no longer be enabled automatically. This reversed a long-standing policy that had caused too many production clusters to accidentally pick up unstable features<br />
&#8211; <strong>gRPC probes</strong> stable: Liveness and readiness probes could now use gRPC health checks natively — no more writing HTTP wrapper endpoints for gRPC services<br />
&#8211; <strong>Non-graceful node shutdown</strong> alpha: Handle the case where the node disappears without the kubelet getting to gracefully terminate pods — stateful workloads on node failure</p>
<hr />
<h2 id="kubernetes-125-psp-removed-august-2022">Kubernetes 1.25 — PSP Removed (August 2022)</h2>
<p>PodSecurityPolicy was deleted in 1.25. Every cluster that was still using PSP had to migrate to Pod Security Admission (or OPA/Gatekeeper or Kyverno) before upgrading.</p>
<p>Pod Security Admission was GA in 1.25, ready to take over:</p>
<pre><code class="" data-line=""># Enforce restricted policy on a namespace
kubectl label namespace production \
  pod-security.kubernetes.io/enforce=restricted \
  pod-security.kubernetes.io/enforce-version=v1.25

# Test a pod against the policy without enforcing
kubectl label namespace staging \
  pod-security.kubernetes.io/warn=restricted \
  pod-security.kubernetes.io/audit=restricted
</code></pre>
<p>The dry-run modes (warn, audit) were critical for migration: you could enable them on namespaces and watch what would have been rejected before switching to enforce mode.</p>
<p>The real migration challenge was existing workloads running as root, with privileged security contexts, or with hostPath mounts. The restricted policy rejected all of these. Production applications that had been running for years under permissive PSP policies now failed validation.</p>
<p>Also in 1.25:<br />
&#8211; <strong>Ephemeral containers</strong> stable: Attach a debug container to a running pod without restarting it</p>
<pre><code class="" data-line=""># Debug a running pod with no shell
kubectl debug -it nginx-pod --image=busybox:latest --target=nginx
</code></pre>
<ul>
<li><strong>CSI ephemeral volumes</strong> stable</li>
<li><strong>cgroups v2</strong> (unified hierarchy) support stable: Enables memory QoS, improved resource accounting</li>
</ul>
<hr />
<h2 id="kubernetes-126-structured-parameter-scheduling-storage-december-2022">Kubernetes 1.26 — Structured Parameter Scheduling, Storage (December 2022)</h2>
<p>1.26 focused on the scheduler and storage:<br />
&#8211; <strong>Dynamic Resource Allocation</strong> alpha: A generalization of the device plugin API — allows requesting complex resources (GPUs, FPGAs, network adapters) with scheduling constraints. The foundation for AI/ML workload scheduling on heterogeneous hardware<br />
&#8211; <strong>CrossNamespacePVCDataSource</strong> beta: Clone a PVC across namespaces — enables namespace-based data isolation while sharing data sets<br />
&#8211; <strong>Pod scheduling readiness</strong> alpha: A pod can declare that it&#8217;s not ready to be scheduled until external conditions are met (data pre-loading complete, license validated, etc.)<br />
&#8211; <strong>Removal of in-tree cloud provider code</strong> (beta, continued): A long-running effort to move cloud-provider-specific code out of the core Kubernetes binary</p>
<p>The Dynamic Resource Allocation feature deserves emphasis: it&#8217;s the mechanism that makes Kubernetes a serious platform for GPU scheduling in AI/ML workloads. Device plugins (the prior mechanism) had limitations — a pod either got a GPU or it didn&#8217;t. DRA allows richer resource semantics: this pod needs two GPUs on the same PCIe bus, or this pod needs a specific GPU model.</p>
<hr />
<h2 id="ebpf-reshapes-kubernetes-networking">eBPF Reshapes Kubernetes Networking</h2>
<p>The most significant architectural shift in Kubernetes networking during 2022–2023 wasn&#8217;t a Kubernetes release feature. It was the adoption of eBPF-based CNI solutions — primarily Cilium — as the default networking layer in major managed Kubernetes offerings.</p>
<p><strong>The iptables problem</strong>: kube-proxy has been using iptables rules to implement Service routing since Kubernetes 1.0. Every Service adds iptables rules to every node. At 10,000 services, the iptables rule table on each node has hundreds of thousands of rules. Traversing these rules on every packet is O(n). Updating them requires locking and flushing. At scale, iptables becomes a bottleneck.</p>
<p><strong>The eBPF solution</strong>: Cilium replaces kube-proxy entirely, implementing Service routing using eBPF maps — hash tables in kernel memory. Service lookup is O(1). Rule updates don&#8217;t require locking. Network policy enforcement happens in the kernel, before packets even reach the application.</p>
<pre><code class="" data-line=""># Check if Cilium is running in kube-proxy replacement mode
cilium status | grep &quot;KubeProxy replacement&quot;
# KubeProxy replacement:    True

# eBPF-based service map — inspect directly
cilium service list
# ID   Frontend          Service Type   Backend
# 1    10.96.0.1:443     ClusterIP      10.0.0.5:6443
# 2    10.96.0.10:53     ClusterIP      10.0.1.2:53, 10.0.1.3:53
</code></pre>
<p><strong>Network policy enforcement</strong>: Cilium&#8217;s NetworkPolicy implementation enforces rules at the eBPF layer — packets that would be dropped by policy are dropped before they ever leave the kernel, before they touch the pod&#8217;s network stack. This is both faster and more secure than userspace enforcement.</p>
<p><strong>Hubble</strong>: Cilium&#8217;s observability layer — built on the same eBPF probes — provides real-time network flow visibility, HTTP layer observability (which service called which endpoint, response codes), and DNS query logging without any application changes.</p>
<p>Major adoption milestones:<br />
&#8211; GKE&#8217;s default CNI became Cilium (Dataplane V2) in 2021<br />
&#8211; Amazon EKS added Cilium support<br />
&#8211; Azure AKS enabled Cilium-based networking<br />
&#8211; Google&#8217;s Autopilot clusters use Cilium exclusively</p>
<hr />
<h2 id="kubernetes-127-graceful-failure-in-place-resize-alpha-april-2023">Kubernetes 1.27 — Graceful Failure, In-Place Resize Alpha (April 2023)</h2>
<ul>
<li><strong>In-Place Pod Vertical Scaling</strong> alpha: Change the CPU and memory resources of a running container without restarting the pod. For databases, JVM-based applications, and anything with warm caches, live resizing is a significant operational improvement</li>
</ul>
<pre><code class="" data-line=""># Resize a container&#039;s CPU without restart
kubectl patch pod database-pod --type=&#039;json&#039; \
  -p=&#039;[{&quot;op&quot;: &quot;replace&quot;, &quot;path&quot;: &quot;/spec/containers/0/resources/requests/cpu&quot;, &quot;value&quot;: &quot;2&quot;}]&#039;
</code></pre>
<ul>
<li><strong>SeccompDefault</strong> stable: Enable the default seccomp profile (RuntimeDefault) cluster-wide — a meaningful reduction in the default syscall attack surface for all pods</li>
<li><strong>Mutable scheduling directives for Jobs</strong> stable: Change node affinity and tolerations of pending (not yet running) Job pods</li>
<li><strong>ReadWriteOncePod PersistentVolume access mode</strong> stable: A volume can only be mounted by a single pod at a time — the correct semantic for databases with file-level locking requirements</li>
</ul>
<hr />
<h2 id="the-15-million-lines-removed-cloud-provider-code-migration">The 1.5 Million Lines Removed: Cloud Provider Code Migration</h2>
<p>One of the largest ongoing engineering efforts in Kubernetes 1.26–1.31 was the removal of in-tree cloud provider code. Every major cloud provider (AWS, Azure, GCP, OpenStack, vSphere) had code compiled directly into the Kubernetes control plane binaries.</p>
<p>The result: the Kubernetes API server and controller manager binaries contained code for AWS EBS volumes, GCE persistent disks, Azure managed disks, OpenStack Cinder — regardless of which cloud you were running on.</p>
<p>The migration moved this code to external Cloud Controller Managers (CCM) — separate processes that communicate with the API server like any other controller:</p>
<pre><code class="" data-line="">Before: kube-controller-manager (monolithic, includes all cloud providers)
After:  kube-controller-manager (generic) + cloud-controller-manager (cloud-specific, external)
</code></pre>
<p>By 1.31, approximately <strong>1.5 million lines of code</strong> had been removed from the core binaries, reducing binary sizes by approximately 40%. This is the largest refactor in Kubernetes history.</p>
<hr />
<h2 id="gateway-api-replacing-ingress-20222023">Gateway API: Replacing Ingress (2022–2023)</h2>
<p>The Ingress API, which graduated to stable in 1.19, has fundamental limitations:<br />
&#8211; No support for TCP/UDP routing (HTTP only)<br />
&#8211; No traffic splitting between multiple backends<br />
&#8211; No header-based routing<br />
&#8211; Vendor-specific features implemented via annotations (not portable)<br />
&#8211; No RBAC granularity within a single Ingress resource</p>
<p><strong>Gateway API</strong> (kubernetes-sigs/gateway-api) was designed as the successor, with a role-based model:</p>
<pre><code class="" data-line="">GatewayClass  → Managed by infrastructure provider (cluster admin)
Gateway       → Managed by cluster operators
HTTPRoute     → Managed by application developers
</code></pre>
<pre><code class="" data-line=""># Gateway — cluster operator configures the load balancer
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: production-gateway
spec:
  gatewayClassName: nginx
  listeners:
  - name: https
    port: 443
    protocol: HTTPS
    tls:
      mode: Terminate
      certificateRefs:
      - name: tls-cert

---
# HTTPRoute — application team configures routing
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: api-route
spec:
  parentRefs:
  - name: production-gateway
  rules:
  - matches:
    - path:
        type: PathPrefix
        value: /api/v2
    backendRefs:
    - name: api-v2-service
      port: 8080
      weight: 90
    - name: api-v3-canary
      port: 8080
      weight: 10
</code></pre>
<p>Gateway API reached GA (v1.0) in October 2023, with the core HTTPRoute, Gateway, and GatewayClass resources graduating to stable.</p>
<hr />
<h2 id="key-takeaways">Key Takeaways</h2>
<ul>
<li>Dockershim removal in 1.24 completed the CRI migration that started in 1.5 — the Kubernetes runtime interface is now clean, with containerd and CRI-O as the standard runtimes</li>
<li>PSP removal in 1.25 forced a migration that should have happened years earlier; Pod Security Admission&#8217;s simplicity is a feature, not a limitation</li>
<li>eBPF-based networking (Cilium, Dataplane V2) is now the default in GKE and increasingly in EKS and AKS — O(1) service routing and kernel-level policy enforcement replace the iptables approach that dated to Kubernetes 1.0</li>
<li>Dynamic Resource Allocation (1.26 alpha) is the foundation for AI/ML GPU scheduling — more capable than device plugins and designed for heterogeneous hardware requests</li>
<li>Gateway API reaching GA replaced the annotation-driven, non-portable Ingress API with a role-oriented, extensible routing API</li>
<li>The cloud provider code removal (1.5M lines) is the largest refactor in Kubernetes history, a prerequisite for a maintainable, leaner core</li>
</ul>
<hr />
<h2 id="whats-next">What&#8217;s Next</h2>
<p><a href="ep05-security-hardens.md">← EP05: Security Hardens</a> | <a href="ep07-platform-engineering.md">EP07: Platform Engineering Era →</a></p>
<p><em>Series: Kubernetes: From Borg to Platform Engineering | linuxcent.com</em></p>
<p><a class="a2a_button_mastodon" href="https://www.addtoany.com/add_to/mastodon?linkurl=https%3A%2F%2Flinuxcent.com%2Fkubernetes-dockershim-removal-ebpf%2F&amp;linkname=The%20Runtime%20Reckoning%3A%20Dockershim%20Out%2C%20eBPF%20In%2C%20and%20PSP%20Finally%20Dies%20%282022%E2%80%932023%29" title="Mastodon" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Flinuxcent.com%2Fkubernetes-dockershim-removal-ebpf%2F&amp;linkname=The%20Runtime%20Reckoning%3A%20Dockershim%20Out%2C%20eBPF%20In%2C%20and%20PSP%20Finally%20Dies%20%282022%E2%80%932023%29" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Flinuxcent.com%2Fkubernetes-dockershim-removal-ebpf%2F&amp;linkname=The%20Runtime%20Reckoning%3A%20Dockershim%20Out%2C%20eBPF%20In%2C%20and%20PSP%20Finally%20Dies%20%282022%E2%80%932023%29" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_reddit" href="https://www.addtoany.com/add_to/reddit?linkurl=https%3A%2F%2Flinuxcent.com%2Fkubernetes-dockershim-removal-ebpf%2F&amp;linkname=The%20Runtime%20Reckoning%3A%20Dockershim%20Out%2C%20eBPF%20In%2C%20and%20PSP%20Finally%20Dies%20%282022%E2%80%932023%29" title="Reddit" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_x" href="https://www.addtoany.com/add_to/x?linkurl=https%3A%2F%2Flinuxcent.com%2Fkubernetes-dockershim-removal-ebpf%2F&amp;linkname=The%20Runtime%20Reckoning%3A%20Dockershim%20Out%2C%20eBPF%20In%2C%20and%20PSP%20Finally%20Dies%20%282022%E2%80%932023%29" title="X" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Flinuxcent.com%2Fkubernetes-dockershim-removal-ebpf%2F&amp;linkname=The%20Runtime%20Reckoning%3A%20Dockershim%20Out%2C%20eBPF%20In%2C%20and%20PSP%20Finally%20Dies%20%282022%E2%80%932023%29" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_copy_link" href="https://www.addtoany.com/add_to/copy_link?linkurl=https%3A%2F%2Flinuxcent.com%2Fkubernetes-dockershim-removal-ebpf%2F&amp;linkname=The%20Runtime%20Reckoning%3A%20Dockershim%20Out%2C%20eBPF%20In%2C%20and%20PSP%20Finally%20Dies%20%282022%E2%80%932023%29" title="Copy Link" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Flinuxcent.com%2Fkubernetes-dockershim-removal-ebpf%2F&#038;title=The%20Runtime%20Reckoning%3A%20Dockershim%20Out%2C%20eBPF%20In%2C%20and%20PSP%20Finally%20Dies%20%282022%E2%80%932023%29" data-a2a-url="https://linuxcent.com/kubernetes-dockershim-removal-ebpf/" data-a2a-title="The Runtime Reckoning: Dockershim Out, eBPF In, and PSP Finally Dies (2022–2023)"></a></p><p>The post <a href="https://linuxcent.com/kubernetes-dockershim-removal-ebpf/">The Runtime Reckoning: Dockershim Out, eBPF In, and PSP Finally Dies (2022–2023)</a> appeared first on <a href="https://linuxcent.com">Linuxcent</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://linuxcent.com/kubernetes-dockershim-removal-ebpf/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1656</post-id>	</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

Page Caching using Disk: Enhanced 

Served from: linuxcent.com @ 2026-08-26 06:30:32 by W3 Total Cache
-->