<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Cloudflared on DevOps von UCLAB</title>
    <link>https://uclab.dev/tags/cloudflared/</link>
    <description>Recent content in Cloudflared on DevOps von UCLAB</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Fri, 06 Mar 2026 08:03:36 +0000</lastBuildDate>
    <atom:link href="https://uclab.dev/tags/cloudflared/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Cloudflare Tunnels to Securely Expose Kubernetes Services</title>
      <link>https://uclab.dev/posts/cloudflare-tunnels/</link>
      <pubDate>Fri, 06 Mar 2026 08:03:36 +0000</pubDate>
      <guid>https://uclab.dev/posts/cloudflare-tunnels/</guid>
      <description>&lt;p&gt;If you&amp;rsquo;re running a homelab Kubernetes cluster — like my Raspberry Pi 5 cluster — you&amp;rsquo;ve probably hit the same wall: you want to expose a service to the internet, but you don&amp;rsquo;t want to poke holes in your firewall or deal with dynamic IP headaches. Cloudflare Tunnels solve this elegantly. Here&amp;rsquo;s how I wired it all up with &lt;code&gt;cloudflared&lt;/code&gt;, HashiCorp Vault, ExternalSecrets, and FluxCD.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://uclab.dev/posts/cloudflare-tunnels/images/gemini9.png&#34;&#xA;    alt=&#34;cloudflared-tunnel&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;h2 id=&#34;how-it-works&#34;&gt;How It Works&lt;/h2&gt;&#xA;&lt;p&gt;Cloudflare Tunnels work by running a lightweight daemon (&lt;code&gt;cloudflared&lt;/code&gt;) inside your cluster. This daemon opens an outbound connection to Cloudflare&amp;rsquo;s edge — so no inbound ports need to be opened. Traffic hits &lt;code&gt;yourdomain.com&lt;/code&gt;, Cloudflare routes it through the tunnel, and &lt;code&gt;cloudflared&lt;/code&gt; forwards it to your internal service.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
