aboutsummaryrefslogtreecommitdiff
path: root/content/posts
diff options
context:
space:
mode:
Diffstat (limited to 'content/posts')
-rw-r--r--content/posts/2021-12-26-nfs-k3s.html60
-rw-r--r--content/posts/K8S_private_gitlab_registry_using_podman.html31
2 files changed, 68 insertions, 23 deletions
diff --git a/content/posts/2021-12-26-nfs-k3s.html b/content/posts/2021-12-26-nfs-k3s.html
new file mode 100644
index 0000000..09f91e7
--- /dev/null
+++ b/content/posts/2021-12-26-nfs-k3s.html
@@ -0,0 +1,60 @@
+<section>
+ <p>
+ By default <a href="https://k3s.io/">K3S</a> comes only with <a
+ href="https://github.com/rancher/local-path-provisioner">local-path</a> storage class, and if you are
+ running
+ with more than one node in your cluster you may want to use a more &ldquo;distributed&rdquo;
+ solution. For may case I opted for NFS.
+ </p>
+ <p>
+ To check the current storage class you can run:
+ </p>
+ <pre><code>k3s kubectl get storageclasses</code></pre>
+ <p>
+ And it will print something like:
+ </p>
+ <pre><code>NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
+local-path (default) rancher.io/local-path Delete WaitForFirstConsumer false 154d</code></pre>
+ <p>
+ To start adding First you need to install <a href="https://github.com/helm/helm">helm</a> on your server. To do
+ so you may
+ run:
+ </p>
+
+ <pre><code>curl -sSL https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash</code></pre>
+ <p>
+ Be careful when running scripts directly into bash always check the source
+ Sometimes is also recommended to do not pipe directly to bash
+ </p>
+ <p>
+ Once it is installed we need to add the <a
+ href="https://kubernetes.io/docs/concepts/storage/storage-classes/#nfs">NFS storage classes</a>. It has two
+ providers, I have chose <a href="https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner">NFS Subdir
+ External Provisioner</a>.
+ </p>
+ <p>
+ Add the helm repo
+ </p>
+
+ <pre><code>helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/</code></pre>
+ <p>
+ Then we need to actually install the provider
+ </p>
+ <div class="org-src-container">
+<pre><code>helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner
+--set nfs.server=x.x.x.x
+--set nfs.path=/exported/path</code></pre>
+ </div>
+ <p>
+ Set the <code>nfs.server</code> and <code>nfs.path</code> accordingly with your setup.
+ </p>
+
+ <p>
+ After that if we run <code>k3s kubectl get storageclasses</code> it will now print another
+ NFS provider:
+ </p>
+
+ <pre><code>NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
+local-path (default) rancher.io/local-path Delete WaitForFirstConsumer false 154d
+nfs-client cluster.local/nfs-subdir-external-provisioner Delete Immediate true 76m</code></pre>
+</section>
diff --git a/content/posts/K8S_private_gitlab_registry_using_podman.html b/content/posts/K8S_private_gitlab_registry_using_podman.html
index 97b525a..06306ed 100644
--- a/content/posts/K8S_private_gitlab_registry_using_podman.html
+++ b/content/posts/K8S_private_gitlab_registry_using_podman.html
@@ -7,49 +7,34 @@
</p>
<p>
First we should take a look at podman-login man page:
- <pre>
- <code>man podman login</code>
- </pre>
+<pre><code>man podman login</code></pre>
</p>
<p>
It will give some valueable information like the location of auth.json file. Now we can login using podman:
- <pre>
- <code>podman login registry.gitlab.com</code>
- </pre>
+<pre><code>podman login registry.gitlab.com</code></pre>
</p>
<p>Then check the <code>auth.json</code> file located at <code>${XDG_RUNTIME_DIR}/containers/auth.json</code> (as described
by the manual). It will contain your auth config:
- <pre>
- <code>
-{
+<pre><code>{
"auths": {
"registry.gitlab.com": {
"auth": "..."
}
}
-}
- </code>
- </pre>
+}</code></pre>
</p>
<p>
Now copy that file over to the server and register it in k8s with the following command:
- <pre>
- <code>
+<pre><code>
kubectl create secret generic regcred \
--from-file=.dockerconfigjson=auth.json \
- --type=kubernetes.io/dockerconfigjson
-
- </code>
- </pre>
+ --type=kubernetes.io/dockerconfigjson</code></pre>
</p>
<p>
Once you have created you can list by kubectl get secret:
- <pre>
- <code>
+<pre><code>
NAME TYPE DATA AGE
-regcred kubernetes.io/dockerconfigjson 1 53s
- </code>
- </pre>
+regcred kubernetes.io/dockerconfigjson 1 53s</code></pre>
</p>
</section>