<?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>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>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>
    <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>Your first deployment</title>
      <link>/docs/kubernetes/guides/example-deployment/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/kubernetes/guides/example-deployment/</guid>
      <description>&lt;p&gt;This page will help you getting a deployment up and running and exposed as a load balancer.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This guide is optional and only here to help new Kubernetes users with an example deployment.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;You can verify access by running &lt;code&gt;kubectl get nodes&lt;/code&gt; and if the output is similar to the example below you are set to go.&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;❯ kubectl get nodes&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;NAME                           STATUS   ROLES           AGE     VERSION&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hux-lab1-control-plane-c9bmm   Ready    control-plane   2d18h   v1.27.3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hux-lab1-control-plane-j5p42   Ready    control-plane   2d18h   v1.27.3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hux-lab1-control-plane-wlwr8   Ready    control-plane   2d18h   v1.27.3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hux-lab1-worker-447sn          Ready    &amp;lt;none&amp;gt;          2d18h   v1.27.3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hux-lab1-worker-9ltbp          Ready    &amp;lt;none&amp;gt;          2d18h   v1.27.3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hux-lab1-worker-htfbp          Ready    &amp;lt;none&amp;gt;          15h     v1.27.3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hux-lab1-worker-k56hn          Ready    &amp;lt;none&amp;gt;          16h     v1.27.3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;creating-an-example-deployment&#34;&gt;Creating an example deployment&lt;/h2&gt;&#xA;&lt;p&gt;To get started we need a deployment to deploy.&#xA;Below we have a deployment called &lt;code&gt;echoserver&lt;/code&gt; we can use for this example.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
