<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>RKE2 Deep Dive on Support Tools</title><link>https://support.tools/training/rke2/</link><description>Recent content in RKE2 Deep Dive on Support Tools</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Mon, 26 Oct 2026 00:00:00 -0500</lastBuildDate><atom:link href="https://support.tools/training/rke2/index.xml" rel="self" type="application/rss+xml"/><item><title>Setting Up the Linode (Akamai) Cloud Provider for RKE2</title><link>https://support.tools/training/rke2/linode-cloud-provider-rke2/</link><pubDate>Mon, 26 Oct 2026 00:00:00 -0500</pubDate><guid>https://support.tools/training/rke2/linode-cloud-provider-rke2/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;RKE2 runs fine on plain Linode instances, but without a cloud provider the cluster knows nothing about the platform underneath it. &lt;code&gt;Service type=LoadBalancer&lt;/code&gt; stays &lt;code&gt;&amp;lt;pending&amp;gt;&lt;/code&gt; forever, nodes have no provider ID or region labels, and there is no way to get a Block Storage Volume attached to a pod.&lt;/p&gt;&#10;&lt;p&gt;Two upstream projects fill that gap:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Linode Cloud Controller Manager (CCM)&lt;/strong&gt;: sets node addresses and region/zone labels, and turns &lt;code&gt;LoadBalancer&lt;/code&gt; services into &lt;strong&gt;NodeBalancers&lt;/strong&gt;.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Linode Block Storage CSI driver&lt;/strong&gt;: provisions, attaches and resizes &lt;strong&gt;Block Storage Volumes&lt;/strong&gt; for &lt;code&gt;PersistentVolumeClaims&lt;/code&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;This guide covers:&lt;/p&gt;</description></item><item><title>Setting Up Alibaba Cloud Provider for RKE2</title><link>https://support.tools/training/rke2/alibaba-cloud-provider-rke2/</link><pubDate>Wed, 29 Jan 2025 00:00:00 +0000</pubDate><guid>https://support.tools/training/rke2/alibaba-cloud-provider-rke2/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;Alibaba Cloud provides a Kubernetes-compatible cloud provider that integrates with RKE2 to manage cloud resources such as load balancers, networking, and persistent storage. This guide walks you through setting up the &lt;strong&gt;Alibaba Cloud Provider&lt;/strong&gt; for RKE2, installing the &lt;strong&gt;Cloud Controller Manager (CCM)&lt;/strong&gt;, and configuring the &lt;strong&gt;Alibaba Cloud CSI driver&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;&#10;&lt;p&gt;Before setting up the Alibaba Cloud Provider for RKE2, ensure you have the following:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;An &lt;strong&gt;Alibaba Cloud account&lt;/strong&gt; with permissions to create and manage resources.&lt;/li&gt;&#10;&lt;li&gt;A &lt;strong&gt;RAM user&lt;/strong&gt; with the necessary IAM policies to interact with ECS and other services.&lt;/li&gt;&#10;&lt;li&gt;An &lt;strong&gt;RKE2 cluster&lt;/strong&gt; deployed on Alibaba Cloud ECS instances.&lt;/li&gt;&#10;&lt;li&gt;The &lt;strong&gt;&lt;code&gt;aliyun&lt;/code&gt; CLI&lt;/strong&gt; installed and configured with your Alibaba Cloud credentials.&lt;/li&gt;&#10;&lt;li&gt;A Kubernetes &lt;code&gt;kubeconfig&lt;/code&gt; file for cluster access.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="step-1-configure-alibaba-cloud-iam-permissions"&gt;Step 1: Configure Alibaba Cloud IAM Permissions&lt;/h2&gt;&#10;&lt;p&gt;Alibaba Cloud&amp;rsquo;s cloud provider requires specific permissions to interact with the API. You need to create a &lt;strong&gt;RAM role&lt;/strong&gt; with the following policy:&lt;/p&gt;</description></item><item><title>Setting Up Equinix Metal Cloud Provider for RKE2</title><link>https://support.tools/training/rke2/equinix-metal-cloud-provider-rke2/</link><pubDate>Wed, 29 Jan 2025 00:00:00 +0000</pubDate><guid>https://support.tools/training/rke2/equinix-metal-cloud-provider-rke2/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;Equinix Metal (formerly Packet) provides bare-metal cloud infrastructure for running Kubernetes. RKE2 supports Equinix Metal as an &lt;strong&gt;out-of-tree&lt;/strong&gt; cloud provider, enabling integration with MetalLB for LoadBalancer services and CSI drivers for persistent storage.&lt;/p&gt;&#10;&lt;p&gt;This guide walks you through setting up the Equinix Metal Cloud Provider in RKE2.&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;An active Equinix Metal account&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;A running RKE2 cluster&lt;/strong&gt; deployed on Equinix Metal&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Equinix Metal API Key&lt;/strong&gt; for authentication&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;kubectl configured&lt;/strong&gt; to interact with your cluster&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Helm installed&lt;/strong&gt; for deploying the cloud provider&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="step-1-generate-equinix-metal-api-key"&gt;Step 1: Generate Equinix Metal API Key&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Log in to the Equinix Metal Console.&lt;/li&gt;&#10;&lt;li&gt;Navigate to &lt;strong&gt;API Keys&lt;/strong&gt;.&lt;/li&gt;&#10;&lt;li&gt;Generate a &lt;strong&gt;read-write API key&lt;/strong&gt; for Kubernetes integration.&lt;/li&gt;&#10;&lt;li&gt;Store this key securely, as it will be required for configuring the cloud provider.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="step-2-configure-the-cloud-provider"&gt;Step 2: Configure the Cloud Provider&lt;/h2&gt;&#10;&lt;p&gt;The Equinix Metal Cloud Provider requires a configuration file (&lt;code&gt;cloud-provider-config&lt;/code&gt;) to be stored as a Kubernetes Secret.&lt;/p&gt;</description></item><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><item><title>Setting Up IBM Cloud Provider for RKE2</title><link>https://support.tools/training/rke2/ibm-cloud-provider-rke2/</link><pubDate>Wed, 29 Jan 2025 00:00:00 +0000</pubDate><guid>https://support.tools/training/rke2/ibm-cloud-provider-rke2/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;The IBM Cloud Provider for RKE2 enables seamless integration between Kubernetes clusters and IBM Cloud infrastructure. This setup allows automatic provisioning of LoadBalancer services and persistent storage using IBM Cloud&amp;rsquo;s CSI driver.&lt;/p&gt;&#10;&lt;p&gt;This guide provides step-by-step instructions to set up the IBM Cloud Provider in an RKE2 cluster.&lt;/p&gt;&#10;&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;&#10;&lt;p&gt;Ensure the following requirements are met before proceeding:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;An IBM Cloud account with an active project.&lt;/li&gt;&#10;&lt;li&gt;An RKE2 cluster deployed on IBM Cloud Virtual Servers.&lt;/li&gt;&#10;&lt;li&gt;IBM Cloud API key.&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-ibm-cloud-api-key"&gt;Step 1: Create an IBM Cloud API Key&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Log in to the &lt;a href="https://cloud.ibm.com/"&gt;IBM Cloud Console&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;Navigate to &lt;strong&gt;Manage&lt;/strong&gt; &amp;gt; &lt;strong&gt;Access (IAM)&lt;/strong&gt;.&lt;/li&gt;&#10;&lt;li&gt;Click &lt;strong&gt;API Keys&lt;/strong&gt; and then &lt;strong&gt;Create API Key&lt;/strong&gt;.&lt;/li&gt;&#10;&lt;li&gt;Assign the necessary permissions.&lt;/li&gt;&#10;&lt;li&gt;Download and securely store the API key.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="step-2-deploy-the-ibm-cloud-controller-manager-ccm"&gt;Step 2: Deploy the IBM Cloud Controller Manager (CCM)&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Add the IBM 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 ibm https://icr.io/helm/charts&#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;ibmCloud&lt;/span&gt;&lt;span class="p"&gt;:&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="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;apiKey&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_IBM_CLOUD_API_KEY&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="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;clusterID&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_CLUSTER_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="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;region&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;us-south&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 ibm-cloud-controller ibm/ibm-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-install-the-ibm-cloud-csi-driver"&gt;Step 3: Install the IBM Cloud 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 ibm-csi ibm/ibm-cloud-block-storage-plugin -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 ibm&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><item><title>Setting Up Oracle Cloud Provider for RKE2</title><link>https://support.tools/training/rke2/oracle-cloud-provider-rke2/</link><pubDate>Wed, 29 Jan 2025 00:00:00 +0000</pubDate><guid>https://support.tools/training/rke2/oracle-cloud-provider-rke2/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;The Oracle Cloud Provider for RKE2 enables seamless integration with Oracle Cloud Infrastructure (OCI), allowing Kubernetes to manage cloud resources such as LoadBalancers and Persistent Volumes. This guide will walk you through setting up the Oracle Cloud Provider for an RKE2 cluster.&lt;/p&gt;&#10;&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;&#10;&lt;p&gt;Before proceeding, ensure you have:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;An Oracle Cloud Infrastructure (OCI) account.&lt;/li&gt;&#10;&lt;li&gt;An RKE2 cluster running on OCI.&lt;/li&gt;&#10;&lt;li&gt;An API key configured for authentication.&lt;/li&gt;&#10;&lt;li&gt;The Oracle Cloud CLI (&lt;code&gt;oci&lt;/code&gt;) installed.&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;kubectl&lt;/code&gt; and Helm installed.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="step-1-generate-api-credentials"&gt;Step 1: Generate API Credentials&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Log in to your Oracle Cloud account.&lt;/li&gt;&#10;&lt;li&gt;Navigate to &lt;strong&gt;Identity &amp;amp; Security&lt;/strong&gt; &amp;gt; &lt;strong&gt;Users&lt;/strong&gt;.&lt;/li&gt;&#10;&lt;li&gt;Click your user and create a new API key.&lt;/li&gt;&#10;&lt;li&gt;Download the private key and note your &lt;strong&gt;User OCID&lt;/strong&gt;, &lt;strong&gt;Tenancy OCID&lt;/strong&gt;, and &lt;strong&gt;Region&lt;/strong&gt;.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="step-2-create-a-secret-for-oci-configuration"&gt;Step 2: Create a Secret for OCI Configuration&lt;/h2&gt;&#10;&lt;p&gt;Create a Kubernetes secret to store the OCI configuration:&lt;/p&gt;</description></item><item><title>Setting Up the Amazon Cloud Provider for RKE2</title><link>https://support.tools/training/rke2/aws-cloud-provider-rke2/</link><pubDate>Wed, 29 Jan 2025 00:00:00 +0000</pubDate><guid>https://support.tools/training/rke2/aws-cloud-provider-rke2/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;Running Kubernetes clusters on &lt;strong&gt;AWS&lt;/strong&gt; requires integrating cloud services like &lt;strong&gt;Elastic Load Balancers (ELB)&lt;/strong&gt; and &lt;strong&gt;Elastic Block Storage (EBS)&lt;/strong&gt; with Kubernetes workloads. To enable this, &lt;strong&gt;Amazon provides a cloud provider integration&lt;/strong&gt; that allows RKE2 clusters to &lt;strong&gt;automatically manage cloud resources&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;p&gt;However, starting with &lt;strong&gt;Kubernetes 1.27&lt;/strong&gt;, &lt;strong&gt;in-tree AWS cloud providers have been completely removed&lt;/strong&gt;, requiring all clusters to migrate to an &lt;strong&gt;out-of-tree AWS Cloud Controller Manager (CCM)&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;p&gt;In this guide, we will cover:&lt;/p&gt;</description></item><item><title>Setting Up the Azure Cloud Provider for RKE2</title><link>https://support.tools/training/rke2/azure-cloud-provider-rke2/</link><pubDate>Wed, 29 Jan 2025 00:00:00 +0000</pubDate><guid>https://support.tools/training/rke2/azure-cloud-provider-rke2/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;Kubernetes clusters running on &lt;strong&gt;Azure&lt;/strong&gt; require integration with cloud services such as &lt;strong&gt;Azure Load Balancers, Managed Disks, and Azure Files&lt;/strong&gt; to function efficiently. &lt;strong&gt;Azure provides a cloud provider integration&lt;/strong&gt; that enables RKE2 clusters to automatically provision and manage cloud resources.&lt;/p&gt;&#10;&lt;p&gt;However, starting with &lt;strong&gt;Kubernetes 1.30&lt;/strong&gt;, &lt;strong&gt;in-tree Azure cloud providers have been removed&lt;/strong&gt;, making it mandatory to migrate to an &lt;strong&gt;out-of-tree Azure Cloud Controller Manager (CCM)&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;p&gt;In this guide, we will cover:&lt;/p&gt;</description></item><item><title>Setting Up the DigitalOcean Cloud Provider for RKE2</title><link>https://support.tools/training/rke2/digitalocean-cloud-provider-rke2/</link><pubDate>Wed, 29 Jan 2025 00:00:00 +0000</pubDate><guid>https://support.tools/training/rke2/digitalocean-cloud-provider-rke2/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;When running &lt;strong&gt;RKE2&lt;/strong&gt; on &lt;strong&gt;DigitalOcean&lt;/strong&gt;, Kubernetes requires cloud provider integration to:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Automatically provision Load Balancers&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Manage persistent storage with Block Storage&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Assign floating IPs to nodes and services&lt;/strong&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;The &lt;strong&gt;DigitalOcean Cloud Controller Manager (CCM)&lt;/strong&gt; enables Kubernetes to manage these cloud resources efficiently.&lt;/p&gt;&#10;&lt;p&gt;This guide covers:&#10;✅ &lt;strong&gt;Why the DigitalOcean cloud provider is needed&lt;/strong&gt;&lt;br&gt;&#10;✅ &lt;strong&gt;Configuring a DigitalOcean API token&lt;/strong&gt;&lt;br&gt;&#10;✅ &lt;strong&gt;Setting up networking for RKE2&lt;/strong&gt;&lt;br&gt;&#10;✅ &lt;strong&gt;Deploying the DigitalOcean Cloud Controller Manager&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Setting Up the Google Compute Engine Cloud Provider for RKE2</title><link>https://support.tools/training/rke2/gcp-cloud-provider-rke2/</link><pubDate>Wed, 29 Jan 2025 00:00:00 +0000</pubDate><guid>https://support.tools/training/rke2/gcp-cloud-provider-rke2/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;When running &lt;strong&gt;RKE2&lt;/strong&gt; on &lt;strong&gt;Google Compute Engine (GCE)&lt;/strong&gt;, Kubernetes requires cloud provider integration to:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Automatically provision Load Balancers&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Manage persistent storage&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Configure network routes between nodes&lt;/strong&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;The &lt;strong&gt;GCE Cloud Provider&lt;/strong&gt; enables this integration, allowing Kubernetes to manage GCE resources efficiently. This guide covers:&#10;✅ &lt;strong&gt;Why the GCE cloud provider is needed&lt;/strong&gt;&lt;br&gt;&#10;✅ &lt;strong&gt;Configuring a Google Cloud service account&lt;/strong&gt;&lt;br&gt;&#10;✅ &lt;strong&gt;Setting up networking for RKE2&lt;/strong&gt;&lt;br&gt;&#10;✅ &lt;strong&gt;Deploying the GCE Cloud Controller Manager&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Setting Up the In-Tree VMware vSphere Cloud Provider in RKE2</title><link>https://support.tools/training/rke2/vsphere-in-tree-cloud-provider-rke2/</link><pubDate>Wed, 29 Jan 2025 00:00:00 +0000</pubDate><guid>https://support.tools/training/rke2/vsphere-in-tree-cloud-provider-rke2/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;When running &lt;strong&gt;RKE2&lt;/strong&gt; on &lt;strong&gt;VMware vSphere&lt;/strong&gt;, Kubernetes requires cloud provider integration to:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Automatically provision PersistentVolumes (VMFS, NFS, or vSAN)&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Manage VM-based networking and load balancing&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Ensure Kubernetes can interact with the vSphere API&lt;/strong&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;VMware vSphere provides two types of cloud provider integrations:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;In-Tree vSphere Cloud Provider&lt;/strong&gt; (deprecated but still available)&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Out-of-Tree vSphere Cloud Controller Manager (recommended for Kubernetes 1.27+)&lt;/strong&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;This guide focuses on &lt;strong&gt;configuring the in-tree VMware vSphere Cloud Provider&lt;/strong&gt; in RKE2.&lt;/p&gt;</description></item><item><title>Setting Up the Out-of-Tree VMware vSphere Cloud Provider in RKE2</title><link>https://support.tools/training/rke2/vsphere-out-of-tree-cloud-provider-rke2/</link><pubDate>Wed, 29 Jan 2025 00:00:00 +0000</pubDate><guid>https://support.tools/training/rke2/vsphere-out-of-tree-cloud-provider-rke2/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;As &lt;strong&gt;Kubernetes moves away from in-tree cloud providers&lt;/strong&gt;, VMware vSphere now provides an &lt;strong&gt;out-of-tree Cloud Provider Interface (CPI)&lt;/strong&gt; and &lt;strong&gt;Cloud Storage Interface (CSI)&lt;/strong&gt; for integrating vSphere resources with Kubernetes.&lt;/p&gt;&#10;&lt;p&gt;The &lt;strong&gt;out-of-tree vSphere Cloud Provider&lt;/strong&gt; enables:&#10;✅ &lt;strong&gt;Dynamic Persistent Volume provisioning&lt;/strong&gt; using vSphere storage.&lt;br&gt;&#10;✅ &lt;strong&gt;Automated Load Balancer creation&lt;/strong&gt; for Kubernetes services.&lt;br&gt;&#10;✅ &lt;strong&gt;Better maintainability&lt;/strong&gt; with independent plugin updates.&lt;/p&gt;&#10;&lt;p&gt;This guide walks through the &lt;strong&gt;installation and configuration&lt;/strong&gt; of the &lt;strong&gt;vSphere CPI and CSI&lt;/strong&gt; in RKE2.&lt;/p&gt;</description></item><item><title/><link>https://support.tools/training/rke2/harvester-cloud-provider-rke2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://support.tools/training/rke2/harvester-cloud-provider-rke2/</guid><description>&lt;div class="code-block" data-copy-label="Copy markdown code, block 1"&gt;&#10; &lt;div class="code-block-header" data-pagefind-ignore&gt;&lt;span class="code-block-lang"&gt;markdown&lt;/span&gt;&lt;/div&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&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;title&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;Setting Up the Harvester Cloud Provider in RKE2&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;date&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="ld"&gt;2025-01-29T00:00:00&lt;/span&gt;&lt;span class="m"&gt;-00&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;00&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;draft&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&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;tags&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;kubernetes&amp;#34;&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;rke2&amp;#34;&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;harvester&amp;#34;&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;cloud provider&amp;#34;&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;cpi&amp;#34;&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;csi&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&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;categories&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;RKE2 Training&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&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;author&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;Matthew Mattox&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;description&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;A guide to setting up the Harvester Cloud Provider in RKE2, including the Cloud Provider Interface (CPI) and Cloud Storage Interface (CSI).&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;url&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;/training/rke2/setup-harvester-cloud-provider-rke2/&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;more_link&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;/categories/rke2-training/&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="nn"&gt;---&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;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Introduction&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[&lt;span class="nt"&gt;Harvester&lt;/span&gt;](&lt;span class="na"&gt;https://harvesterhci.io/&lt;/span&gt;) is a &lt;span class="gs"&gt;**Hyperconverged Infrastructure (HCI) solution**&lt;/span&gt; built on Kubernetes that allows users to manage VMs, Kubernetes, and cloud-native workloads seamlessly.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Harvester provides an &lt;span class="gs"&gt;**out-of-tree Cloud Provider Interface (CPI) and Cloud Storage Interface (CSI)**&lt;/span&gt;, enabling &lt;span class="gs"&gt;**Kubernetes clusters running on Harvester**&lt;/span&gt; to integrate seamlessly with Harvester storage and networking.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;This guide covers the &lt;span class="gs"&gt;**installation and configuration**&lt;/span&gt; of the &lt;span class="gs"&gt;**Harvester CPI and CSI**&lt;/span&gt; for &lt;span class="gs"&gt;**RKE2**&lt;/span&gt;.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;---&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Harvester Cloud Provider Overview&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;RKE1 and RKE2 clusters can be provisioned in Rancher using the built-in &lt;span class="gs"&gt;**Harvester Node Driver**&lt;/span&gt;. Harvester provides:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;✅ &lt;span class="gs"&gt;**Load Balancer Support**&lt;/span&gt; – Assigns a dedicated Harvester LoadBalancer to Kubernetes services. &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;✅ &lt;span class="gs"&gt;**Harvester Cluster Storage Passthrough**&lt;/span&gt; – Supports Longhorn-backed storage for persistent volumes. &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;### **What You Will Learn**&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;📌 How to deploy the &lt;span class="gs"&gt;**Harvester Cloud Provider**&lt;/span&gt; in both &lt;span class="gs"&gt;**RKE1**&lt;/span&gt; and &lt;span class="gs"&gt;**RKE2**&lt;/span&gt; clusters. &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;📌 How to use the &lt;span class="gs"&gt;**Harvester Load Balancer**&lt;/span&gt;. &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;---&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Backward Compatibility Notice&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;⚠ &lt;span class="gs"&gt;**Important Compatibility Issue**&lt;/span&gt; &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;If you&amp;#39;re using &lt;span class="gs"&gt;**Harvester Cloud Provider v0.2.2 or higher**&lt;/span&gt;, ensure that:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;-&lt;/span&gt; If your &lt;span class="gs"&gt;**Harvester version is below v1.2.0**&lt;/span&gt;, upgrade &lt;span class="gs"&gt;**Harvester**&lt;/span&gt; before upgrading:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;-&lt;/span&gt; **RKE2 to v1.26.6+rke2r1 or higher**&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;-&lt;/span&gt; **Harvester Cloud Provider to v0.2.2 or higher**&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Failure to upgrade &lt;span class="gs"&gt;**Harvester first**&lt;/span&gt; may lead to &lt;span class="gs"&gt;**incompatibility issues**&lt;/span&gt;. &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Refer to the [&lt;span class="nt"&gt;Harvester CCM &amp;amp; CSI Driver with RKE2 Releases&lt;/span&gt;](&lt;span class="na"&gt;https://harvesterhci.io/docs/&lt;/span&gt;) for more details.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;---&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;## Deploying the Harvester Cloud Provider&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gu"&gt;### **Prerequisites**&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;✅ &lt;span class="gs"&gt;**The Kubernetes cluster is built on top of Harvester virtual machines**&lt;/span&gt;. &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;✅ &lt;span class="gs"&gt;**Guest Kubernetes nodes run in the same Harvester namespace**&lt;/span&gt;. &#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;✅ &lt;span class="gs"&gt;**Each Harvester VM must have the `macvlan` kernel module**&lt;/span&gt; for &lt;span class="gs"&gt;**LoadBalancer DHCP IPAM mode**&lt;/span&gt;.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;To check if the module is installed, run:&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;```bash&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;lsmod | grep macvlan&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo modprobe macvlan&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;If missing, you may need to &lt;strong&gt;build custom cloud images&lt;/strong&gt; that include the module.&lt;/p&gt;</description></item></channel></rss>