{"id":3373,"date":"2023-05-22T13:28:38","date_gmt":"2023-05-22T10:28:38","guid":{"rendered":"https:\/\/www.virtono.com\/community\/?p=3373"},"modified":"2023-05-20T14:35:03","modified_gmt":"2023-05-20T11:35:03","slug":"how-to-install-mayastor-add-on-on-microk8s","status":"publish","type":"post","link":"https:\/\/www.virtono.com\/community\/tutorial-how-to\/how-to-install-mayastor-add-on-on-microk8s\/","title":{"rendered":"How to install Mayastor Add-on on MicroK8s"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">In this article, we will guide you through the step-by-step process of installing the Mayastor Add-on. <a href=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/how-to-install-a-local-kubernetes-with-microk8s\/\">MicroK8s<\/a>, a lightweight Kubernetes distribution, offers a convenient way to deploy Kubernetes clusters for development and testing purposes. If you&#8217;re looking to leverage containerized storage in your MicroK8s cluster, the Mayastor add-on can be a valuable addition. Mayastor provides high-performance, scalable, and persistent storage for containerized environments.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"3374\" data-permalink=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/how-to-install-mayastor-add-on-on-microk8s\/attachment\/defaultimage\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2023\/05\/defaultImage.png?fit=1042%2C625&amp;ssl=1\" data-orig-size=\"1042,625\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"defaultImage\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2023\/05\/defaultImage.png?fit=750%2C450&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2023\/05\/defaultImage.png?resize=535%2C320&#038;ssl=1\" alt=\"How to install Mayastor Add-on on MicroK8s\" class=\"wp-image-3374\" width=\"535\" height=\"320\" srcset=\"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2023\/05\/defaultImage.png?resize=1024%2C614&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2023\/05\/defaultImage.png?resize=300%2C180&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2023\/05\/defaultImage.png?resize=768%2C461&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2023\/05\/defaultImage.png?w=1042&amp;ssl=1 1042w\" sizes=\"auto, (max-width: 535px) 100vw, 535px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Please note that the following requirements are applicable to all nodes in a MicroK8s cluster. Make sure to execute the commands on each individual node.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To enable Mayastor Add-on, it is necessary to have HugePages enabled, with a minimum requirement of 1024 4MB HugePages. This can be accomplished by running the following commands on each host:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code>sudo sysctl vm.nr_hugepages=1024\necho 'vm.nr_hugepages=1024' | sudo tee -a \/etc\/sysctl.conf<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Additionally, the nvme_fabrics and nvme_tcp modules must be installed and enabled on all hosts. Use the following commands for installation:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code>sudo apt install -y linux-modules-extra-$(uname -r)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">And enable the modules with:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code>sudo modprobe nvme_tcp\necho 'nvme-tcp' | sudo tee -a \/etc\/modules-load.d\/microk8s-mayastor.conf<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If MicroK8s is already installed, it is advised to restart MicroK8s at this point:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code>microk8s stop\nmicrok8s start<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">MicroK8s DNS and Helm3 addons are required and will be automatically installed if missing.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_73 counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/how-to-install-mayastor-add-on-on-microk8s\/#Install_Mayastor_Add-on\" title=\"Install Mayastor Add-on\">Install Mayastor Add-on<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/how-to-install-mayastor-add-on-on-microk8s\/#Troubleshooting\" title=\"Troubleshooting\">Troubleshooting<\/a><\/li><\/ul><\/nav><\/div>\n<h3 class=\"wp-block-heading has-accent-color has-text-color\"><span class=\"ez-toc-section\" id=\"Install_Mayastor_Add-on\"><\/span>Install Mayastor Add-on<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Assuming that the cluster has been configured as mentioned above, you can now enable Mayastor Add-on by following these steps:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Enable the Mayastor add-on:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code>sudo microk8s enable core\/mayastor --default-pool-size 20G<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Wait for the Mayastor Add-on control plane and data plane pods to start:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code>microk8s kubectl get pod -n mayastor<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Mayastor Add-on will automatically create one DiskPool per node in the MicroK8s cluster, with each pool backed by a sparse image file. For information on using existing block devices, refer to the Mayastor documentation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To verify that all disk pools are operational, use the following command:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code>microk8s kubectl get diskpool -n mayastor<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><span style=\"font-size: revert; color: initial; font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen-Sans, Ubuntu, Cantarell, &quot;Helvetica Neue&quot;, sans-serif;\">In a 3-node cluster, the output should resemble the following:<\/span><\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code>NAME               NODE   STATUS   CAPACITY      USED   AVAILABLE\nmicrok8s-m2-pool   m2     Online   21449670656   0      21449670656\nmicrok8s-m1-pool   m1     Online   21449670656   0      21449670656\nmicrok8s-m3-pool   m3     Online   21449670656   0      21449670656<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Mayastor Add-on is now successfully deployed!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To deploy a test workload, the Mayastor addon provides two storage classes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>mayastor<\/code>: Suitable for single-node clusters.<\/li>\n\n\n\n<li><code>mayastor-3<\/code>: Requires a minimum of 3 cluster nodes and replicates volume data across 3 storage pools to ensure data redundancy.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">To create a pod using the <code>mayastor<\/code> storage class, use the provided YAML file (<code>pod-with-pvc.yaml<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code># pod-with-pvc.yaml\n---\napiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: test-pvc\nspec:\n  storageClassName: mayastor\n  accessModes: &#91;ReadWriteOnce]\n  resources: { requests: { storage: 5Gi } }\n---\napiVersion: v1\nkind: Pod\nmetadata:\n  name: test-nginx\nspec:\n  volumes:\n    - name: pvc\n      persistentVolumeClaim:\n        claimName: test-pvc\n  containers:\n    - name: nginx\n      image: nginx\n      ports:\n        - containerPort: 80\n      volumeMounts:\n        - name: pvc\n          mountPath: \/usr\/share\/nginx\/html<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Create the pod using the following command:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code>microk8s kubectl create -f pod-with-pvc.yaml<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Verify the creation of the PVC and pod with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code>microk8s kubectl get pod,pvc<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">To configure custom storage classes for advanced use cases, such as defining the number of replicas and the underlying protocol, use the provided example command:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code>microk8s kubectl apply -f - &lt;&lt;EOF\nkind: StorageClass\napiVersion: storage.k8s.io\/v1\nmetadata:\n  name: mayastor-2\nparameters:\n  repl: '2'\n  protocol: 'nvmf'\n  ioTimeout: '60'\n  local: 'true'\nprovisioner: io.openebs.csi-mayastor\nvolumeBindingMode: WaitForFirstConsumer\nEOF<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">For more information, refer to the documentation on creating Mayastor StorageClass(es).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To configure MayaStor pools, it is recommended to use designated disks instead of the default local image file per node. A helper script, accessible as <code>microk8s mayastor-pools<\/code>, is provided for easy creation, listing, and deletion of Mayastor pools within the cluster.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, the following commands demonstrate various pool operations:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code># Get help\nmicrok8s mayastor-pools --help\n\n# Create a Mayastor pool using `\/dev\/sdb` on node `uk8s-1`\nmicrok8s mayastor-pools add --node uk8s-1 --device \/dev\/sdb\n\n# Create a Mayastor pool of 100GB using a sparse image file on node `uk8s-1`. The image file will be placed under `\/var\/snap\/microk8s\/common\/mayastor\/data`.\nmicrok8s mayastor-pools add --node uk8s-1 --size 100GB\n\n# List Mayastor pools\nmicrok8s mayastor-pools list\n\n# Delete a Mayastor pool. The --force flag removes the pool even if it is in use, while --purge removes the backing image file. The mayastor pool name is required as it appears in the output of the list command.\nmicrok8s mayastor-pools remove microk8s-uk8s-1-pool --force --purge<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">For additional information, consult the documentation on creating Mayastor Pool(s).<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-accent-color has-text-color\"><span class=\"ez-toc-section\" id=\"Troubleshooting\"><\/span>Troubleshooting<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If you encounter difficulties starting the Mayastor data plane, and the mayastor data plane pods are stuck in the CrashLoopBackOff state, it may be due to a failure in initializing EAL. To verify this, check the logs of the <code>mayastor<\/code> daemonset using the following command:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code>microk8s kubectl logs -n mayastor daemonset\/mayastor<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If the logs contain an error message similar to the following, indicating IOVA exceeding limits or failed EAL initialization, follow the solution steps:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code>EAL: alloc_pages_on_heap(): couldn't allocate memory due to IOVA exceeding limits of current DMA mask\nEAL: alloc_pages_on_heap(): Please try initializing EAL with --iova-mode=pa parameter\nEAL: error allocating rte services array\nEAL: FATAL: rte_service_init() failed\nEAL: rte_service_init() failed\nthread 'main' panicked at 'Failed to init EAL', mayastor\/src\/core\/env.rs:543:13<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">To resolve the issue, edit the manifest of the <code>mayastor<\/code> daemonset using the following command:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background\"><code>microk8s kubectl edit -n mayastor daemonset mayastor<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Then, add the argument <code>--env-context=--iova-mode=pa<\/code> to the command line of the <code>mayastor<\/code> pod. Save and exit the editor to apply the changes, and wait for the <code>mayastor<\/code> pods to restart.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this article, we will guide you through the step-by-step process of installing the Mayastor Add-on. MicroK8s, a lightweight Kubernetes distribution, offers a convenient way to deploy Kubernetes clusters for development and testing purposes. If you&#8217;re looking to leverage containerized storage in your MicroK8s cluster, the Mayastor add-on can be<\/p>\n","protected":false},"author":8,"featured_media":3375,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[3],"tags":[392,389,383,388,391,390],"class_list":["post-3373","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorial-how-to","tag-deploy-mayastor","tag-install-mayastor","tag-mayastor","tag-mayastor-add-on","tag-mayastor-microk8s","tag-mayastor-ubuntu"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2023\/05\/How-to-install-Mayastor-Add-on-on-MicroK8s.png?fit=600%2C330&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p7ISfL-Sp","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":3641,"url":"https:\/\/www.virtono.com\/community\/tutorial-how-to\/how-to-deploy-redis-on-kubernetes\/","url_meta":{"origin":3373,"position":0},"title":"How to Deploy Redis on Kubernetes","author":"George B.","date":"July 25, 2023","format":false,"excerpt":"This article provides a detailed guide on how to install Redis on Kubernetes, covering everything from configuring the Kubernetes environment to installing and administering Redis. The demand for effective, scalable, and trustworthy data storage solutions has increased as the world transitions to microservices and containerized applications. Redis, a high-performance in-memory\u2026","rel":"","context":"In &quot;Tutorials&quot;","block_context":{"text":"Tutorials","link":"https:\/\/www.virtono.com\/community\/category\/tutorial-how-to\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2023\/07\/How-to-Deploy-Redis-on-Kubernetes.png?fit=360%2C240&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":3357,"url":"https:\/\/www.virtono.com\/community\/tutorial-how-to\/how-to-install-a-local-kubernetes-with-microk8s\/","url_meta":{"origin":3373,"position":1},"title":"How to install a local Kubernetes with MicroK8s","author":"George B.","date":"May 20, 2023","format":false,"excerpt":"Fortunately, MicroK8s offers a lightweight and straightforward solution for running Kubernetes on your local machine, or on a single VPS. In this guide, we'll walk you through the step-by-step process of installing MicroK8s and getting started with local Kubernetes development. Kubernetes has become the de facto standard for container orchestration,\u2026","rel":"","context":"In &quot;Tutorials&quot;","block_context":{"text":"Tutorials","link":"https:\/\/www.virtono.com\/community\/category\/tutorial-how-to\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2023\/05\/How-to-install-a-local-Kubernetes-with-MicroK8s.png?fit=600%2C330&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2023\/05\/How-to-install-a-local-Kubernetes-with-MicroK8s.png?fit=600%2C330&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2023\/05\/How-to-install-a-local-Kubernetes-with-MicroK8s.png?fit=600%2C330&ssl=1&resize=525%2C300 1.5x"},"classes":[]},{"id":3821,"url":"https:\/\/www.virtono.com\/community\/tutorial-how-to\/how-to-deploy-zipkin-on-kubernetes\/","url_meta":{"origin":3373,"position":2},"title":"How to Deploy Zipkin on Kubernetes","author":"George B.","date":"September 6, 2023","format":false,"excerpt":"This tutorial will walk you through setting up Zipkin on Kubernetes, assuming that you already have K3s and Helm set up. Microservices have become a key element in the quickly changing world of software development. Distributed tracing systems like Zipkin have become very popular in tandem with this explosion in\u2026","rel":"","context":"In &quot;Tutorials&quot;","block_context":{"text":"Tutorials","link":"https:\/\/www.virtono.com\/community\/category\/tutorial-how-to\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2023\/09\/How-to-Deploy-Zipkin-on-k3s.png?fit=360%2C240&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":3413,"url":"https:\/\/www.virtono.com\/community\/tutorial-how-to\/how-to-install-and-configure-kubernetes-on-ubuntu-22-04\/","url_meta":{"origin":3373,"position":3},"title":"How to install and configure Kubernetes on Ubuntu 22.04","author":"George B.","date":"May 28, 2023","format":false,"excerpt":"Welcome to our comprehensive guide on installing and configuring Kubernetes on Ubuntu 22. In this tutorial, we will walk you through the process of setting up a Kubernetes cluster on your Ubuntu 22 machine. Whether you are a beginner or an experienced user, this guide will provide you with detailed\u2026","rel":"","context":"In &quot;Tutorials&quot;","block_context":{"text":"Tutorials","link":"https:\/\/www.virtono.com\/community\/category\/tutorial-how-to\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2023\/05\/How-to-install-and-configure-Kubernetes-on-Ubuntu-22.04.png?fit=600%2C330&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2023\/05\/How-to-install-and-configure-Kubernetes-on-Ubuntu-22.04.png?fit=600%2C330&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2023\/05\/How-to-install-and-configure-Kubernetes-on-Ubuntu-22.04.png?fit=600%2C330&ssl=1&resize=525%2C300 1.5x"},"classes":[]},{"id":3761,"url":"https:\/\/www.virtono.com\/community\/tutorial-how-to\/how-to-deploy-grafana-on-kubernetes\/","url_meta":{"origin":3373,"position":4},"title":"How to Deploy Grafana on Kubernetes","author":"George B.","date":"August 24, 2023","format":false,"excerpt":"This article will walk you through the process of deploying Grafana on Kubernetes, specifically using k3s and Helm, and making it accessible via a NodePort on your VPS (Virtual Private Server). We'll assume you have k3s and Helm already installed. If not, please refer to their respective official documentation to\u2026","rel":"","context":"In &quot;Tutorials&quot;","block_context":{"text":"Tutorials","link":"https:\/\/www.virtono.com\/community\/category\/tutorial-how-to\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2023\/08\/How-to-Deploy-Grafana-on-Kubernetes.png?fit=360%2C240&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":3767,"url":"https:\/\/www.virtono.com\/community\/tutorial-how-to\/how-to-deploy-minio-on-kubernetes\/","url_meta":{"origin":3373,"position":5},"title":"How to Deploy MinIO on Kubernetes","author":"George B.","date":"August 23, 2023","format":false,"excerpt":"We will examine how to deploy MinIO on Kubernetes in this article. We're assuming that K3S and Helm are already set up on your VM. Let's get going! In the digital world, data is the new oil. Having effective and scalable storage solutions is essential as data volume increases exponentially.\u2026","rel":"","context":"In &quot;Tutorials&quot;","block_context":{"text":"Tutorials","link":"https:\/\/www.virtono.com\/community\/category\/tutorial-how-to\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2023\/08\/How-to-Deploy-MinIO-on-Kubernetes.png?fit=360%2C240&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/posts\/3373","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/comments?post=3373"}],"version-history":[{"count":1,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/posts\/3373\/revisions"}],"predecessor-version":[{"id":3376,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/posts\/3373\/revisions\/3376"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/media\/3375"}],"wp:attachment":[{"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/media?parent=3373"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/categories?post=3373"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/tags?post=3373"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}