<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title>Kubernetes - Tag - Gene.Tech</title>
        <link>https://geneliu.itaghome.win/tags/kubernetes/</link>
        <description>Kubernetes - Tag - Gene.Tech</description>
        <generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>gene.liu@live.com (Gene Liu)</managingEditor>
            <webMaster>gene.liu@live.com (Gene Liu)</webMaster><copyright>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.</copyright><lastBuildDate>Sun, 08 May 2022 00:00:00 &#43;0000</lastBuildDate><atom:link href="https://geneliu.itaghome.win/tags/kubernetes/" rel="self" type="application/rss+xml" /><item>
    <title>Kubernetes Cluster Installation</title>
    <link>https://geneliu.itaghome.win/2022-05-08-k8s-cka/</link>
    <pubDate>Sun, 08 May 2022 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/2022-05-08-k8s-cka/</guid>
    <description><![CDATA[<p>To learn some of the details about the <code>kubeadm</code> toolbox, the best way is to use it to manage a k8s cluster. This includes the whole life cycle management: new installation (HA), scale up/down, and upgrade. All information was current as of May 2022.</p>
<h2 id="preparations">Preparations</h2>
<p>You will need these preparations on all of your nodes.</p>
<ol>
<li>
<p><a href="https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#before-you-begin" target="_blank" rel="noopener noreffer ">https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#before-you-begin</a>
I use <code>terraform</code> to setup 5 Ubuntu 20.04 nodes (2 vCPU, 6Gi RAM).</p>]]></description>
</item>
<item>
    <title>Kubernetes (k3s) Certs Expired</title>
    <link>https://geneliu.itaghome.win/2022-04-19-k3s-certs-expire/</link>
    <pubDate>Tue, 19 Apr 2022 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/2022-04-19-k3s-certs-expire/</guid>
    <description><![CDATA[<p>There is a bug in some older k3s releases that causes certificate auto-renewal to fail.</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">kubectl --insecure-skip-tls-verify<span class="o">=</span><span class="nb">true</span> delete secret -n kube-system k3s-serving
</span></span><span class="line"><span class="cl">stop k3s
</span></span><span class="line"><span class="cl">remove/backup /var/lib/rancher/k3s/server/tls/dynamic-cert.json
</span></span><span class="line"><span class="cl">remove/backup /etc/rancher/k3s/k3s.yaml
</span></span><span class="line"><span class="cl">restart k3s</span></span></code></pre></div></div>]]></description>
</item>
<item>
    <title>Add Missing Indices After Nextcloud Upgrade</title>
    <link>https://geneliu.itaghome.win/2022-03-26-nextcloud/</link>
    <pubDate>Sat, 26 Mar 2022 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/2022-03-26-nextcloud/</guid>
    <description><![CDATA[<h3 id="upgrade-nextcloud">Upgrade Nextcloud</h3>
<ol>
<li>Remove all other folders except <code>/config</code> and <code>/data</code> (due to an unsuccessful major version jump upgrade).</li>
<li>Upgrade one major version at a time (cannot jump upgrade two major versions).</li>
</ol>
<h3 id="system-warning-about-missing-indices">System Warning About Missing Indices</h3>
<div class="code-block code-line-numbers" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">kubectl <span class="nb">exec</span> -it -n nextcloud nextcloud-6864c47cf4-58vrl -- /bin/sh
</span></span><span class="line"><span class="cl"><span class="c1"># sudo -u www-data php occ db:add-missing-indices</span>
</span></span><span class="line"><span class="cl">/bin/sh: 1: sudo: not found
</span></span><span class="line"><span class="cl"><span class="c1"># su www-data</span>
</span></span><span class="line"><span class="cl">This account is currently not available.
</span></span><span class="line"><span class="cl"><span class="c1"># id</span>
</span></span><span class="line"><span class="cl"><span class="nv">uid</span><span class="o">=</span>0<span class="o">(</span>root<span class="o">)</span> <span class="nv">gid</span><span class="o">=</span>0<span class="o">(</span>root<span class="o">)</span> <span class="nv">groups</span><span class="o">=</span>0<span class="o">(</span>root<span class="o">)</span>,33<span class="o">(</span>www-data<span class="o">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># su www-data -s /bin/sh</span>
</span></span><span class="line"><span class="cl">$ php occ db:add-missing-indices
</span></span><span class="line"><span class="cl">Check indices of the share table.
</span></span><span class="line"><span class="cl">Check indices of the filecache table.
</span></span><span class="line"><span class="cl">Adding additional size index to the filecache table, this can take some time...
</span></span><span class="line"><span class="cl">Filecache table updated successfully.
</span></span><span class="line"><span class="cl">Adding additional size index to the filecache table, this can take some time...
</span></span><span class="line"><span class="cl">Filecache table updated successfully.
</span></span><span class="line"><span class="cl">Adding additional path index to the filecache table, this can take some time...
</span></span><span class="line"><span class="cl">Filecache table updated successfully.
</span></span><span class="line"><span class="cl">Check indices of the twofactor_providers table.
</span></span><span class="line"><span class="cl">Check indices of the login_flow_v2 table.
</span></span><span class="line"><span class="cl">Check indices of the whats_new table.
</span></span><span class="line"><span class="cl">Check indices of the cards table.
</span></span><span class="line"><span class="cl">Adding cards_abiduri index to the cards table, this can take some time...
</span></span><span class="line"><span class="cl">cards table updated successfully.
</span></span><span class="line"><span class="cl">Check indices of the cards_properties table.
</span></span><span class="line"><span class="cl">Check indices of the calendarobjects_props table.
</span></span><span class="line"><span class="cl">Check indices of the schedulingobjects table.
</span></span><span class="line"><span class="cl">Check indices of the oc_properties table.
</span></span><span class="line"><span class="cl">Adding properties_pathonly_index index to the oc_properties table, this can take some time...
</span></span><span class="line"><span class="cl">oc_properties table updated successfully.
</span></span><span class="line"><span class="cl">Check indices of the oc_jobs table.
</span></span><span class="line"><span class="cl">Adding job_lastcheck_reserved index to the oc_jobs table, this can take some time...
</span></span><span class="line"><span class="cl">oc_properties table updated successfully.
</span></span><span class="line"><span class="cl">$ <span class="nb">exit</span>
</span></span><span class="line"><span class="cl"><span class="c1"># exit</span></span></span></code></pre></div></div>]]></description>
</item>
<item>
    <title>About SELinux</title>
    <link>https://geneliu.itaghome.win/2022-1-16-selinux/</link>
    <pubDate>Mon, 17 Jan 2022 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/2022-1-16-selinux/</guid>
    <description><![CDATA[<p>A few readings from the internet.</p>
<h2 id="docker-default-security-option">Docker Default Security Option</h2>
<p><a href="https://docs.docker.com/engine/security/seccomp/" target="_blank" rel="noopener noreffer ">https://docs.docker.com/engine/security/seccomp/</a></p>
<div class="code-block code-line-numbers" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># docker info</span>
</span></span><span class="line"><span class="cl">Client:
</span></span><span class="line"><span class="cl"> Context:    default
</span></span><span class="line"><span class="cl"> Debug Mode: <span class="nb">false</span>
</span></span><span class="line"><span class="cl"> Plugins:
</span></span><span class="line"><span class="cl">  app: Docker App <span class="o">(</span>Docker Inc., v0.9.1-beta3<span class="o">)</span>
</span></span><span class="line"><span class="cl">  buildx: Build with BuildKit <span class="o">(</span>Docker Inc., v0.6.1-docker<span class="o">)</span>
</span></span><span class="line"><span class="cl">  scan: Docker Scan <span class="o">(</span>Docker Inc., v0.8.0<span class="o">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Server:
</span></span><span class="line"><span class="cl"> Containers: <span class="m">17</span>
</span></span><span class="line"><span class="cl">  Running: <span class="m">15</span>
</span></span><span class="line"><span class="cl">  Paused: <span class="m">0</span>
</span></span><span class="line"><span class="cl">  Stopped: <span class="m">2</span>
</span></span><span class="line"><span class="cl"> Images: <span class="m">16</span>
</span></span><span class="line"><span class="cl"> Server Version: 20.10.8
</span></span><span class="line"><span class="cl"> Storage Driver: overlay2
</span></span><span class="line"><span class="cl">  Backing Filesystem: extfs
</span></span><span class="line"><span class="cl">  Supports d_type: <span class="nb">true</span>
</span></span><span class="line"><span class="cl">  Native Overlay Diff: <span class="nb">true</span>
</span></span><span class="line"><span class="cl">  userxattr: <span class="nb">false</span>
</span></span><span class="line"><span class="cl"> Logging Driver: json-file
</span></span><span class="line"><span class="cl"> Cgroup Driver: systemd
</span></span><span class="line"><span class="cl"> Cgroup Version: <span class="m">1</span>
</span></span><span class="line"><span class="cl"> Plugins:
</span></span><span class="line"><span class="cl">  Volume: <span class="nb">local</span>
</span></span><span class="line"><span class="cl">  Network: bridge host ipvlan macvlan null overlay
</span></span><span class="line"><span class="cl">  Log: awslogs fluentd gcplogs gelf journald json-file <span class="nb">local</span> logentries splunk syslog
</span></span><span class="line"><span class="cl"> Swarm: inactive
</span></span><span class="line"><span class="cl"> Runtimes: runc io.containerd.runc.v2 io.containerd.runtime.v1.linux
</span></span><span class="line"><span class="cl"> Default Runtime: runc
</span></span><span class="line"><span class="cl"> Init Binary: docker-init
</span></span><span class="line"><span class="cl"> containerd version: e25210fe30a0a703442421b0f60afac609f950a3
</span></span><span class="line"><span class="cl"> runc version: v1.0.1-0-g4144b63
</span></span><span class="line"><span class="cl"> init version: de40ad0
</span></span><span class="line"><span class="cl"> Security Options:
</span></span><span class="line"><span class="cl">  seccomp
</span></span><span class="line"><span class="cl">   Profile: default
</span></span><span class="line"><span class="cl"> Kernel Version: 3.10.0-1160.42.2.el7.x86_64
</span></span><span class="line"><span class="cl"> Operating System: Red Hat Enterprise Linux Server 7.9 <span class="o">(</span>Maipo<span class="o">)</span>
</span></span><span class="line"><span class="cl"> OSType: linux
</span></span><span class="line"><span class="cl"> Architecture: x86_64
</span></span><span class="line"><span class="cl"> CPUs: <span class="m">8</span>
</span></span><span class="line"><span class="cl"> Total Memory: 23.39GiB
</span></span><span class="line"><span class="cl"> Name: gene-k8s-k8sc-node1
</span></span><span class="line"><span class="cl"> ID: VGBN:P5LX:RTQG:OX67:INYM:ZUHD:W6NQ:FWWL:KUV5:NZ6N:2DKH:ZIYL
</span></span><span class="line"><span class="cl"> Docker Root Dir: /opt/nsp/docker
</span></span><span class="line"><span class="cl"> Debug Mode: <span class="nb">false</span>
</span></span><span class="line"><span class="cl">  Registry: https://index.docker.io/v1/
</span></span><span class="line"><span class="cl"> Labels:
</span></span><span class="line"><span class="cl"> Experimental: <span class="nb">false</span>
</span></span><span class="line"><span class="cl"> Insecure Registries:
</span></span><span class="line"><span class="cl">   127.0.0.0/8
</span></span><span class="line"><span class="cl"> Live Restore Enabled: <span class="nb">false</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">WARNING: API is accessible on http://0.0.0.0:2375 without encryption.
</span></span><span class="line"><span class="cl">         Access to the remote API is equivalent to root access on the host. Refer
</span></span><span class="line"><span class="cl">         to the <span class="s1">&#39;Docker daemon attack surface&#39;</span> section in the documentation <span class="k">for</span>
</span></span><span class="line"><span class="cl">         more information: https://docs.docker.com/go/attack-surface/
</span></span><span class="line"><span class="cl"><span class="o">[</span>root@gene-k8s-k8sc-node1 ~<span class="o">]</span><span class="c1"># sestatus </span>
</span></span><span class="line"><span class="cl">SELinux status:                 enabled
</span></span><span class="line"><span class="cl">SELinuxfs mount:                /sys/fs/selinux
</span></span><span class="line"><span class="cl">SELinux root directory:         /etc/selinux
</span></span><span class="line"><span class="cl">Loaded policy name:             targeted
</span></span><span class="line"><span class="cl">Current mode:                   permissive
</span></span><span class="line"><span class="cl">Mode from config file:          permissive
</span></span><span class="line"><span class="cl">Policy MLS status:              enabled
</span></span><span class="line"><span class="cl">Policy deny_unknown status:     allowed
</span></span><span class="line"><span class="cl">Max kernel policy version:      <span class="m">31</span>
</span></span><span class="line"><span class="cl"><span class="o">[</span>root@gene-k8s-k8sc-node1 ~<span class="o">]</span><span class="c1"># ps -eZ | grep docker</span>
</span></span><span class="line"><span class="cl">system_u:system_r:unconfined_service_t:s0 <span class="m">1254</span> ? 00:00:00 docker
</span></span><span class="line"><span class="cl">system_u:system_r:container_runtime_t:s0 <span class="m">30862</span> ? 00:02:10 dockerd
</span></span><span class="line"><span class="cl">system_u:system_r:container_runtime_t:s0 <span class="m">30976</span> ? 00:00:00 docker
</span></span><span class="line"><span class="cl"><span class="o">[</span>root@gene-k8s-k8sc-node1 ~<span class="o">]</span><span class="c1"># docker context ls</span>
</span></span><span class="line"><span class="cl">NAME        DESCRIPTION                               DOCKER ENDPOINT               KUBERNETES ENDPOINT                ORCHESTRATOR
</span></span><span class="line"><span class="cl">default *   Current DOCKER_HOST based configuration   unix:///var/run/docker.sock   https://127.0.0.1:6443 <span class="o">(</span>default<span class="o">)</span>   swarm</span></span></code></pre></div></div>
<p><a href="https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html" target="_blank" rel="noopener noreffer ">https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html</a></p>]]></description>
</item>
<item>
    <title>Upgrade/Update a Helm Chart</title>
    <link>https://geneliu.itaghome.win/2021-02-27-15-how-to-upgrade-update-helm/</link>
    <pubDate>Sat, 27 Feb 2021 14:55:56 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/2021-02-27-15-how-to-upgrade-update-helm/</guid>
    <description><![CDATA[<p>I have installed a few charts from ChartCenter, but I would like to switch to each chart&rsquo;s original repo later on, in case ChartCenter becomes unavailable.</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">helm list -n hass
</span></span><span class="line"><span class="cl">WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /etc/rancher/k3s/k3s.yaml
</span></span><span class="line"><span class="cl">WARNING: Kubernetes configuration file is world-readable. This is insecure. Location: /etc/rancher/k3s/k3s.yaml
</span></span><span class="line"><span class="cl">NAME     	NAMESPACE	REVISION	UPDATED                                	STATUS  	CHART               	APP VERSION
</span></span><span class="line"><span class="cl">hass     	hass     	<span class="m">1</span>       	2021-01-22 16:01:56.958870812 -0500 EST	deployed	home-assistant-5.4.1	2020.12.1
</span></span><span class="line"><span class="cl">mosquitto	hass     	<span class="m">1</span>       	2021-01-22 14:37:06.899630717 -0500 EST	deployed	mosquitto-0.7.0     	2.0.4
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">helm upgrade -n hass hass home-assistant --repo https://k8s-at-home.com/charts/ -f hass/hass-values.yml</span></span></code></pre></div></div>]]></description>
</item>
<item>
    <title>Upgrade Home Assistant</title>
    <link>https://geneliu.itaghome.win/2020-02-05-upgrade-hass/</link>
    <pubDate>Wed, 05 Feb 2020 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/2020-02-05-upgrade-hass/</guid>
    <description><![CDATA[<p>Upgrade Home Assistant to use the latest chart and application version.</p>
<h3 id="check-existing-chart">Check Existing Chart</h3>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">helm list
</span></span><span class="line"><span class="cl">NAME     	NAMESPACE	REVISION	UPDATED                                	STATUS  	CHART                	APP VERSION
</span></span><span class="line"><span class="cl">emqx     	default  	<span class="m">1</span>       	2020-01-15 09:50:07.876751946 -0500 EST	deployed	emqx-v4.0.0          	v4.0.0     
</span></span><span class="line"><span class="cl">hass     	default  	<span class="m">3</span>       	2020-01-22 14:40:55.119051419 -0500 EST	deployed	home-assistant-0.9.11	0.101.2    
</span></span><span class="line"><span class="cl">nextcloud	default  	<span class="m">1</span>       	2019-12-24 16:39:19.78369805 -0500 EST 	deployed	nextcloud-1.9.1      	17.0.0</span></span></code></pre></div></div>
<h3 id="update-helm-repo">Update Helm Repo</h3>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-shell">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">helm repo update
</span></span><span class="line"><span class="cl">Hang tight <span class="k">while</span> we grab the latest from your chart repositories...
</span></span><span class="line"><span class="cl">...Successfully got an update from the <span class="s2">&#34;geneliu&#34;</span> chart repository
</span></span><span class="line"><span class="cl">...Successfully got an update from the <span class="s2">&#34;emqx&#34;</span> chart repository
</span></span><span class="line"><span class="cl">...Successfully got an update from the <span class="s2">&#34;stable&#34;</span> chart repository
</span></span><span class="line"><span class="cl">Update Complete. ⎈ Happy Helming!⎈ </span></span></code></pre></div></div>
<h3 id="upgrade-home-assistant-chart">Upgrade Home Assistant Chart</h3>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">helm upgrade hass stable/home-assistant -f ./hass.yaml 
</span></span><span class="line"><span class="cl">Release <span class="s2">&#34;hass&#34;</span> has been upgraded. Happy Helming!
</span></span><span class="line"><span class="cl">NAME: hass
</span></span><span class="line"><span class="cl">LAST DEPLOYED: Wed Feb  <span class="m">5</span> 13:10:39 <span class="m">2020</span>
</span></span><span class="line"><span class="cl">NAMESPACE: default
</span></span><span class="line"><span class="cl">STATUS: deployed
</span></span><span class="line"><span class="cl">REVISION: <span class="m">4</span>
</span></span><span class="line"><span class="cl">TEST SUITE: None
</span></span><span class="line"><span class="cl">NOTES:
</span></span><span class="line"><span class="cl">1. Get the application URL by running these commands:
</span></span><span class="line"><span class="cl">  http://myhome.example.com/</span></span></code></pre></div></div>]]></description>
</item>
<item>
    <title>Kubernetes as IoT Base (for Home Assistant, etc.)</title>
    <link>https://geneliu.itaghome.win/2020-02-04-k3s-iot-base/</link>
    <pubDate>Tue, 04 Feb 2020 00:00:00 &#43;0000</pubDate>
    <author>gene.liu@live.com (Gene Liu)</author>
    <guid>https://geneliu.itaghome.win/2020-02-04-k3s-iot-base/</guid>
    <description><![CDATA[<p>I have quite a few applications that are already containerized and managed by Docker Compose. Maintaining the application-level Docker Compose YAML files is a minor task. However, there are a few small pieces of the puzzle that still require manual updates or upgrades from time to time. So, I&rsquo;ve made the decision to migrate, and this is my first blog post documenting the process.</p>
<hr>
<h3 id="install-k3s">Install k3s</h3>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-shell">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">curl -sfL https://get.k3s.io <span class="p">|</span> sh -s - --no-deploy<span class="o">=</span>traefik --default-local-storage-path<span class="o">=</span>/opt/k3s
</span></span><span class="line"><span class="cl"><span class="c1"># setup kubectl autocompletion</span>
</span></span><span class="line"><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;source &lt;(kubectl completion bash)&#34;</span> &gt;&gt; ~/.bashrc</span></span></code></pre></div></div>
<p>I have enabled only the minimum services:</p>]]></description>
</item>
</channel>
</rss>
