<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Guides on Documentation</title>
    <link>/docs/kubernetes/guides/</link>
    <description>Recent content in Guides on Documentation</description>
    <generator>Hugo</generator>
    <language>en</language>
    <atom:link href="/docs/kubernetes/guides/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Auto Healing</title>
      <link>/docs/kubernetes/guides/autohealing/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/kubernetes/guides/autohealing/</guid>
      <description>&lt;p&gt;In our Kubernetes Services, we have implemented a robust auto-healing mechanism to ensure the high availability and reliability of our infrastructure. This system is designed to automatically manage and replace unhealthy nodes, thereby minimizing downtime and maintaining the stability of our services.&lt;/p&gt;&#xA;&lt;h2 id=&#34;auto-healing-mechanism&#34;&gt;Auto-Healing Mechanism&lt;/h2&gt;&#xA;&lt;h3 id=&#34;triggers&#34;&gt;Triggers&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Unready Node Detection&lt;/strong&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The auto-healing process is triggered when a node remains in an &amp;ldquo;not ready&amp;rdquo; or &amp;ldquo;unknown&amp;rdquo; state for 15 minutes.&lt;/li&gt;&#xA;&lt;li&gt;This delay allows for transient issues to resolve themselves without unnecessary node replacements.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Node Creation Failure&lt;/strong&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Auto Scaling</title>
      <link>/docs/kubernetes/guides/autoscaling/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/kubernetes/guides/autoscaling/</guid>
      <description>&lt;p&gt;We now offer autoscaling of nodes.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-is-a-nodegroup&#34;&gt;What is a nodegroup?&lt;/h2&gt;&#xA;&lt;p&gt;In order to simplify node management we now have nodegroup.&lt;/p&gt;&#xA;&lt;p&gt;A nodegroup is a set of nodes, They span over all 3 of our availability zones.&#xA;All nodes in a nodegroup are using the same flavour. This means if you want to mix flavours in your cluster there will be at least one nodegroup per flavor. We can also create custom nodegroups upon requests meaning you can have 2 nodegroups with the same flavour.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cert-manager and Cloudflare demo</title>
      <link>/docs/kubernetes/guides/cert-manager/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/kubernetes/guides/cert-manager/</guid>
      <description>&lt;p&gt;In this guide we will use a Cloudflare managed domain and a our own cert-manager to provide LetsEncrypt certificates for a test deployment.&lt;/p&gt;&#xA;&lt;p&gt;The guide is suitable if you have a domain connected to a single cluster, and would like a to issue/manage certificates from within kubernetes. The setup below becomes Clusterwider, meaning it will deploy certificates to any namespace specifed.&lt;/p&gt;&#xA;&lt;h3 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;DNS managed on Cloudflare&lt;/li&gt;&#xA;&lt;li&gt;Cloudflare API token&lt;/li&gt;&#xA;&lt;li&gt;Installed cert-manager. &lt;a href=&#34;../install-certmanager/&#34;&gt;See our guide here&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Installed IngressController. &lt;a href=&#34;../install-ingress/&#34;&gt;See our guide here&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;setup-clusterissuer&#34;&gt;Setup ClusterIssuer&lt;/h3&gt;&#xA;&lt;p&gt;Create a file to hold the secret of your &lt;em&gt;api token&lt;/em&gt; for your Cloudflare DNS. Then create the &lt;code&gt;ClusterIssuer&lt;/code&gt; configuration file adapted for Cloudflare.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Change PV StorageClass</title>
      <link>/docs/kubernetes/guides/change_storageclass/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/kubernetes/guides/change_storageclass/</guid>
      <description>&lt;p&gt;This guide details all steps to change storage class of a volume. The instruction can be used to migrate from one storage class to another, while retaining data. For example from &lt;code&gt;8k&lt;/code&gt;to &lt;code&gt;v2-4k&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Access to the kubernetes cluster&lt;/li&gt;&#xA;&lt;li&gt;Access to Openstack kubernetes Project&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;preparation-steps&#34;&gt;Preparation steps&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Populate variables&lt;/p&gt;&#xA;&lt;p&gt;Complete with relevant names for your setup. Then copy/paste them into the terminal to set them as environment variables that will be used throughout the guide.&#xA;PVC is the&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ingress and cert-manager</title>
      <link>/docs/kubernetes/guides/ingress/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/kubernetes/guides/ingress/</guid>
      <description>&lt;h2 id=&#34;follow-along-demo&#34;&gt;Follow along demo&lt;/h2&gt;&#xA;&lt;p&gt;In this piece, we show all steps to expose a web service using an Ingress resource. Additionally, we demonstrate how to enable TLS, by using cert-manager to request a Let&amp;rsquo;s Encrypt certificate.&lt;/p&gt;&#xA;&lt;h3 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;A DNS record pointing at the public IP address of your worker nodes. In the examples all references to the domain &lt;em&gt;example.ltd&lt;/em&gt; must be replaced by the domain you wish to issue certificates for. Configuring DNS is out of scope for this documentation.&lt;/li&gt;&#xA;&lt;li&gt;For clusters created on or after Kubernetes 1.26 you need to ensure there is a Ingress controller and cert-manager installed.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;../install-ingress/&#34;&gt;Our guide to ingress-nginx can be found here&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;../install-certmanager/&#34;&gt;Our guide to installing cert-manager can be found here&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://kubernetes.github.io/ingress-nginx/&#34;&gt;Upstream documentation: NGINX Ingress Controller&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://cert-manager.io/docs/&#34;&gt;Upstream documentation: cert-manager&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;create-resources&#34;&gt;Create resources&lt;/h3&gt;&#xA;&lt;p&gt;Create a file called &lt;code&gt;ingress.yaml&lt;/code&gt; with the following content:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Install and upgrade cert-manager</title>
      <link>/docs/kubernetes/guides/install-certmanager/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/kubernetes/guides/install-certmanager/</guid>
      <description>&lt;p&gt;Starting at Kubernetes version v1.26, our default configured clusters are delivered without cert-manager.&lt;/p&gt;&#xA;&lt;p&gt;This guide will assist you get a working up to date cert-manager and provide instructions for how to upgrade and delete it. Running your own is useful if you want to have full control.&lt;/p&gt;&#xA;&lt;p&gt;The guide is based on cert-manager Helm chart, &lt;a href=&#34;https://cert-manager.io/docs/installation/helm/&#34;&gt;found here&lt;/a&gt;. We draw advantage of the option to install CRDs with kubectl, as recommended for a production setup.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Install and upgrade ingress-nginx</title>
      <link>/docs/kubernetes/guides/install-ingress/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/kubernetes/guides/install-ingress/</guid>
      <description>&lt;p&gt;This guide will assist you get a working up to date ingress controller and provide instructions for how to upgrade and delete it. Running your own is useful if you want to have full control.&lt;/p&gt;&#xA;&lt;p&gt;The guide is based on on ingress-nginx Helm chart, &lt;a href=&#34;https://github.com/kubernetes/ingress-nginx/tree/main/charts/ingress-nginx&#34;&gt;found here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h3&gt;&#xA;&lt;p&gt;Helm needs to be provided with the correct repository:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Setup helm repo&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Make sure to update repo cache&lt;/p&gt;</description>
    </item>
    <item>
      <title>Load balancers</title>
      <link>/docs/kubernetes/guides/loadbalancer/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/kubernetes/guides/loadbalancer/</guid>
      <description>&lt;p&gt;Load balancers in our Elastx Kubernetes CaaS service are provided by &lt;a href=&#34;https://docs.openstack.org/octavia/wallaby/reference/introduction.html&#34;&gt;OpenStack&#xA;Octavia&lt;/a&gt;&#xA;in collaboration with the &lt;a href=&#34;https://github.com/kubernetes/cloud-provider-openstack&#34;&gt;Kubernetes Cloud Provider&#xA;OpenStack&lt;/a&gt;. This article&#xA;will introduce some of the basics of how to use services of &lt;em&gt;service&lt;/em&gt; type&#xA;&lt;em&gt;LoadBalancer&lt;/em&gt; to expose service using OpenStack Octavia load balancers. For&#xA;more advanced use cases you are encouraged to read the official documentation of&#xA;each project or contacting our support for assistance.&lt;/p&gt;&#xA;&lt;h3 id=&#34;a-quick-example&#34;&gt;A quick example&lt;/h3&gt;&#xA;&lt;p&gt;Exposing services using a &lt;em&gt;service&lt;/em&gt; with type &lt;em&gt;LoadBalancer&lt;/em&gt; will give you an&#xA;unique public IP backed by an OpenStack Octavia load balancer. This example will&#xA;take you through the steps for creating such a service.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Persistent volumes</title>
      <link>/docs/kubernetes/guides/persistent-volumes/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/kubernetes/guides/persistent-volumes/</guid>
      <description>&lt;p&gt;Persistent volumes in our Elastx Kubernetes CaaS service are provided by &lt;a href=&#34;https://docs.openstack.org/cinder/wallaby/&#34;&gt;OpenStack&#xA;Cinder&lt;/a&gt;. Volumes are dynamically&#xA;provisioned by &lt;a href=&#34;https://github.com/kubernetes/cloud-provider-openstack/&#34;&gt;Kubernetes Cloud Provider&#xA;OpenStack&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;storage-classes&#34;&gt;Storage classes&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;8k&lt;/code&gt; refers to 8000 IOPS.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;See our &lt;a href=&#34;https://elastx.se/en/openstack/pricing&#34;&gt;pricing page&lt;/a&gt;  under the table &lt;em&gt;Storage&lt;/em&gt; to calculate your costs.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Below is the list of storage classes provided in newly created clusters.&#xA;In case you see other storageclasses in your cluster, consider these legacy and please migrate data away from them.&#xA;We provide a guide to &lt;a href=&#34;https://docs.elastx.cloud/docs/kubernetes/guides/change_storageclass/&#34;&gt;Change  PV StorageClass&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kubernetes API whitelist</title>
      <link>/docs/kubernetes/guides/apiwhitelist/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/kubernetes/guides/apiwhitelist/</guid>
      <description>&lt;p&gt;In our Kubernetes Services, we rely on Openstack loadbalancers in front of the control planes to ensure traffic will be sent to a functional node. Whitelisting of access to the API server is now controlled in the loadbalancer in front of the API.&#xA;Currently, managing the IP-range whitelist requires a &lt;a href=&#34;https://support.elastx.se/hc/en-us&#34;&gt;support ticket here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Please submit a ticket with CIDR/ranges for the ip&amp;rsquo;s you wish to whitelist.&#xA;We are happy to help you ASAP.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Migration to Kubernetes CaaS v2</title>
      <link>/docs/kubernetes/guides/migration-to-caasv2/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/kubernetes/guides/migration-to-caasv2/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;** Please note this document was updated 20240305.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;This document will guide through all new changes introduced when migrating to our new kubernetes deployment backend. All customers with a Kubernetes cluster created on Kubernetes 1.25 and earlier are affected.&lt;/p&gt;&#xA;&lt;p&gt;We have received, and acted upon, customer feedback since our main announcement 2023Q4.&#xA;We provide two additional paths to reach v1.26:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;We&amp;rsquo;ve reverted to continue providing Ingress/Certmanager.&lt;/li&gt;&#xA;&lt;li&gt;To assist with your transition we can offer you an additional cluster (v1.26 or latest version) up to 30 days at no extra charge.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img src=&#34;/img/kubernetes/capi-migration/upgradepathv5.png&#34; alt=&#34;Show-Details&#34;&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
