<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hetzner on Support Tools</title><link>https://support.tools/tags/hetzner/</link><description>Recent content in Hetzner on Support Tools</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Wed, 29 Jan 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://support.tools/tags/hetzner/index.xml" rel="self" type="application/rss+xml"/><item><title>Setting Up Hetzner Cloud Provider for RKE2</title><link>https://support.tools/training/rke2/hetzner-cloud-provider-rke2/</link><pubDate>Wed, 29 Jan 2025 00:00:00 +0000</pubDate><guid>https://support.tools/training/rke2/hetzner-cloud-provider-rke2/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;The Hetzner Cloud Provider for RKE2 allows seamless integration with Hetzner&amp;rsquo;s cloud infrastructure, enabling automatic provisioning of LoadBalancer services and persistent storage using Hetzner&amp;rsquo;s CSI driver.&lt;/p&gt;&#10;&lt;p&gt;This guide covers the necessary steps to set up the Hetzner Cloud Provider in an RKE2 cluster, ensuring full compatibility with Kubernetes networking and storage requirements.&lt;/p&gt;&#10;&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;&#10;&lt;p&gt;Before proceeding, ensure the following prerequisites are met:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;A Hetzner Cloud account with an active project.&lt;/li&gt;&#10;&lt;li&gt;An RKE2 cluster running on Hetzner Cloud instances.&lt;/li&gt;&#10;&lt;li&gt;API Token for Hetzner Cloud.&lt;/li&gt;&#10;&lt;li&gt;Kubernetes CLI (&lt;code&gt;kubectl&lt;/code&gt;) installed.&lt;/li&gt;&#10;&lt;li&gt;Helm installed on your local machine.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="step-1-create-an-api-token"&gt;Step 1: Create an API Token&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Log in to your Hetzner Cloud account.&lt;/li&gt;&#10;&lt;li&gt;Navigate to &lt;strong&gt;Access&lt;/strong&gt; &amp;gt; &lt;strong&gt;API Tokens&lt;/strong&gt;.&lt;/li&gt;&#10;&lt;li&gt;Click &lt;strong&gt;Generate API Token&lt;/strong&gt;.&lt;/li&gt;&#10;&lt;li&gt;Assign necessary permissions (Read &amp;amp; Write for networking and storage).&lt;/li&gt;&#10;&lt;li&gt;Copy and securely store the generated API token.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="step-2-deploy-the-hetzner-cloud-controller-manager-ccm"&gt;Step 2: Deploy the Hetzner Cloud Controller Manager (CCM)&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Add the Hetzner Helm repository:&#10;&lt;div class="code-block" data-copy-label="Copy sh code, block 1"&gt;&#10; &lt;div class="code-block-header" data-pagefind-ignore&gt;&lt;span class="code-block-lang"&gt;sh&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;helm repo add hetzner https://helm.hetzner.cloud&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;helm repo update&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Create a &lt;code&gt;values.yaml&lt;/code&gt; file for the Helm deployment:&#10;&lt;div class="code-block" data-copy-label="Copy yaml code, block 2"&gt;&#10; &lt;div class="code-block-header" data-pagefind-ignore&gt;&lt;span class="code-block-lang"&gt;yaml&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;apiToken&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;YOUR_HETZNER_API_TOKEN&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;network&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;your-network-id&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;location&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;nbg1&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Install the CCM using Helm:&#10;&lt;div class="code-block" data-copy-label="Copy sh code, block 3"&gt;&#10; &lt;div class="code-block-header" data-pagefind-ignore&gt;&lt;span class="code-block-lang"&gt;sh&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;helm install hcloud-cloud-controller hetzner/hcloud-cloud-controller-manager -n kube-system -f values.yaml&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="step-3-configure-the-hetzner-csi-driver"&gt;Step 3: Configure the Hetzner CSI Driver&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Install the CSI driver via Helm:&#10;&lt;div class="code-block" data-copy-label="Copy sh code, block 4"&gt;&#10; &lt;div class="code-block-header" data-pagefind-ignore&gt;&lt;span class="code-block-lang"&gt;sh&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;helm install hcloud-csi hetzner/hcloud-csi-driver -n kube-system&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Verify that the driver is running:&#10;&lt;div class="code-block" data-copy-label="Copy sh code, block 5"&gt;&#10; &lt;div class="code-block-header" data-pagefind-ignore&gt;&lt;span class="code-block-lang"&gt;sh&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl get pods -n kube-system &lt;span class="p"&gt;|&lt;/span&gt; grep hcloud&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="step-4-deploy-a-loadbalancer-service"&gt;Step 4: Deploy a LoadBalancer Service&lt;/h2&gt;&#10;&lt;p&gt;Create a sample LoadBalancer service:&lt;/p&gt;</description></item></channel></rss>