diff options
Diffstat (limited to 'content/posts')
-rw-r--r-- | content/posts/2021-12-26-nfs-k3s.html | 60 | ||||
-rw-r--r-- | content/posts/K8S_private_gitlab_registry_using_podman.html | 31 |
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 “distributed” + 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> |