{"id":482283,"date":"2022-08-08T09:02:05","date_gmt":"2022-08-08T06:02:05","guid":{"rendered":"https:\/\/en.buradabiliyorum.com\/how-to-use-k3s-to-run-a-kubernetes-cluster-on-your-development-machine\/"},"modified":"2022-08-08T09:02:05","modified_gmt":"2022-08-08T06:02:05","slug":"how-to-use-k3s-to-run-a-kubernetes-cluster-on-your-development-machine","status":"publish","type":"post","link":"https:\/\/buradabiliyorum.com\/en\/how-to-use-k3s-to-run-a-kubernetes-cluster-on-your-development-machine\/","title":{"rendered":"#How to Use K3s to Run a Kubernetes Cluster On Your Development Machine"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a383d5de54a6\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #dd3333;color:#dd3333\" 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: #dd3333;color:#dd3333\" 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><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a383d5de54a6\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-use-k3s-to-run-a-kubernetes-cluster-on-your-development-machine\/#%E2%80%9CHow_to_Use_K3s_to_Run_a_Kubernetes_Cluster_On_Your_Development_Machine%E2%80%9D\" >&#8220;How to Use K3s to Run a Kubernetes Cluster On Your Development Machine&#8221;<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-use-k3s-to-run-a-kubernetes-cluster-on-your-development-machine\/#Getting_Started_With_K3s\" >Getting Started With K3s<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-use-k3s-to-run-a-kubernetes-cluster-on-your-development-machine\/#Interacting_With_Your_Cluster\" >Interacting With Your Cluster<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-use-k3s-to-run-a-kubernetes-cluster-on-your-development-machine\/#An_Example_Workload\" >An Example Workload<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-use-k3s-to-run-a-kubernetes-cluster-on-your-development-machine\/#Setting_Kubernetes_Options\" >Setting Kubernetes Options<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-use-k3s-to-run-a-kubernetes-cluster-on-your-development-machine\/#Multi-Node_Clusters\" >Multi-Node Clusters<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-use-k3s-to-run-a-kubernetes-cluster-on-your-development-machine\/#Using_Images_In_Private_Registries\" >Using Images In Private Registries<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-use-k3s-to-run-a-kubernetes-cluster-on-your-development-machine\/#Upgrading_Your_Cluster\" >Upgrading Your Cluster<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-use-k3s-to-run-a-kubernetes-cluster-on-your-development-machine\/#Uninstalling_K3s\" >Uninstalling K3s<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-use-k3s-to-run-a-kubernetes-cluster-on-your-development-machine\/#Conclusion\" >Conclusion<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h1><span class=\"ez-toc-section\" id=\"%E2%80%9CHow_to_Use_K3s_to_Run_a_Kubernetes_Cluster_On_Your_Development_Machine%E2%80%9D\"><\/span>&#8220;How to Use K3s to Run a Kubernetes Cluster On Your Development Machine&#8221;<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<div>\n<img loading=\"lazy\" decoding=\"async\" class=\"type:primaryImage alignnone size-full wp-image-806621\" data-pagespeed-no-defer=\"\" src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/05\/K3s.jpg?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"K3s logo\" width=\"1202\" height=\"677\"\/><\/p>\n<p><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/k3s.io\">K3s<\/a> is a lightweight Kubernetes distribution ideal for development use. It\u2019s now part of the Cloud Native Computing Foundation (CNCF) but was originally developed by Rancher.<\/p>\n<p>K3s ships as a single binary with a filesize under 50 MB. Despite its diminutive <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/download-scripts-themes-apps\/\" data-internallinksmanager029f6b8e52c=\"9\" title=\"Download Scripts &amp; Themes &amp; Apps\" target=\"_blank\" rel=\"noopener\">app<\/a>earance, K3s includes everything you need to run a production-ready Kubernetes cluster. The project focuses on resource-constrained hardware where reliability and ease of maintenance are key concerns. While K3s is now commonly found at the edge on IoT devices, these qualities also make it a good contender for local use by developers.<\/p>\n<h2 id=\"getting-started-with-k3s\"><span class=\"ez-toc-section\" id=\"Getting_Started_With_K3s\"><\/span>Getting Started With K3s<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Running the K3s binary will start a Kubernetes cluster on the host machine. The main K3s process starts and manages all the Kubernetes components, including the control plane\u2019s API server, a Kubelet worker instance, and the containerd container runtime.<\/p>\n<p>In practice you\u2019ll usually want K3s to start automatically as a service. It\u2019s recommended you use the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/rancher.com\/docs\/k3s\/latest\/en\/quick-start\/#install-script\">official installation script<\/a> to quickly get K3s running on your system. This will download the binary, move it into your path, and register a systemd or openrc service as appropriate for your system. K3s will be configured to automatically restart after its process crashes or your host reboots.<\/p>\n<pre>$ curl -sfL https:\/\/get.k3s.io | sh -<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-806624\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/05\/Screenshot-from-2022-05-20-14-50-47.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"image of installing K3s\" width=\"1446\" height=\"540\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Confirm the installation succeeded by checking the status of the <code>k3s<\/code> service:<\/p>\n<pre>$ sudo service k3s status<\/pre>\n<p>You\u2019re ready to start using your cluster if <code>active (running)<\/code> is displayed in green.<\/p>\n<h2 id=\"interacting-with-your-cluster\"><span class=\"ez-toc-section\" id=\"Interacting_With_Your_Cluster\"><\/span>Interacting With Your Cluster<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>K3s bundles Kubectl if you install it using the provided script. It\u2019s nested under the <code>k3s<\/code> command:<\/p>\n<pre>$ k3s kubectl get pods&#13;\nNo resources found in default namespace.<\/pre>\n<p>You might receive an error that looks like this:<\/p>\n<pre>$ k3s kubectl get pods&#13;\nWARN[0000] Unable to read \/etc\/rancher\/k3s\/k3s.yaml, please start server with --write-kubeconfig-mode to modify kube config permissions &#13;\nerror: error loading config file \"\/etc\/rancher\/k3s\/k3s.yaml\": open \/etc\/rancher\/k3s\/k3s.yaml: permission denied<\/pre>\n<p>You can fix this by adjusting the file permissions of the referenced path:<\/p>\n<pre>$ sudo chmod 644 \/etc\/rancher\/k3s\/k3s.yaml<\/pre>\n<p>Now you should be able to run Kubectl commands without using <code>sudo<\/code>.<\/p>\n<p>You can keep using a standalone Kubectl installation if you don\u2019t want to rely on K3s\u2019 integrated version. Use the <code>KUBECONFIG<\/code> environment variable or <code>--kubeconfig<\/code> flag to reference your K3s configuration file when running the bare <code>kubectl<\/code> command:<\/p>\n<pre>$ export KUBECONFIG=\/etc\/rancher\/k3s\/k3s.yaml&#13;\n$ kubectl get pods&#13;\nNo resources found in default namespace.<\/pre>\n<h2 id=\"an-example-workload\"><span class=\"ez-toc-section\" id=\"An_Example_Workload\"><\/span>An Example Workload<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>You can test your cluster by adding a simple deployment:<\/p>\n<pre>$ k3s kubectl create deployment nginx --image=nginx:latest&#13;\ndeployment.apps\/nginx created&#13;\n$ k3s kubectl expose deployment nginx --type=LoadBalancer --port=80&#13;\nservice\/nginx exposed<\/pre>\n<p>Use Kubectl to discover the IP address of the service that\u2019s been created:<\/p>\n<pre>$ k3s kubectl get services&#13;\nNAME         TYPE           CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE&#13;\nkubernetes   ClusterIP      10.43.0.1     &lt;none&gt;        443\/TCP        35m&#13;\nnginx        LoadBalancer   10.43.49.20   &lt;pending&gt;     80:30968\/TCP   17s<\/pre>\n<p>In this example, the NGINX service is accessible at <code>10.43.49.20<\/code>. Visit this URL in your web browser to see the default NGINX landing page.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-806623\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/05\/Screenshot-from-2022-05-20-15-27-10.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"image of NGINX default page running in K3s\" width=\"1278\" height=\"718\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<h2 id=\"setting-kubernetes-options\"><span class=\"ez-toc-section\" id=\"Setting_Kubernetes_Options\"><\/span>Setting Kubernetes Options<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>You can set custom arguments for individual Kubernetes components when you run K3s. Values should be supplied as command-line flags to the K3s binary. Environment variables are also supported but the conversion from flag to variable name <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/rancher.com\/docs\/k3s\/latest\/en\/installation\/install-options\/how-to-flags\">is not always consistent<\/a>.<\/p>\n<p>Here are some commonly used flags for configuring your installation:<\/p>\n<p>Many <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/rancher.com\/docs\/k3s\/latest\/en\/installation\/install-options\/server-config\">other options<\/a> are available to customize the operation of K3s and your Kubernetes cluster. These include facilities for disabling bundled components such as the Traefik Ingress controller (<code>--disable traefik<\/code>) so you can replace them with alternative implementations.<\/p>\n<p>Besides flags and variables, K3s also supports a YAML config file that\u2019s much more maintainable. Deposit this at <code>\/etc\/rancher\/k3s\/config.yaml<\/code> to have K3s automatically use it each time it starts. The field names should be CLI arguments s<a href=\"https:\/\/buradabiliyorum.com\/en\/category\/trip-and-travel\/\" data-internallinksmanager029f6b8e52c=\"10\" title=\"Trip &amp; Travel\" target=\"_blank\" rel=\"noopener\">trip<\/a>ped of their <code>--<\/code> prefix.<\/p>\n<div class=\"wp-geshi-highlight-wrap5\">\n<div class=\"wp-geshi-highlight-wrap4\">\n<div class=\"wp-geshi-highlight-wrap3\">\n<div class=\"wp-geshi-highlight-wrap2\">\n<div class=\"wp-geshi-highlight-wrap\">\n<div class=\"wp-geshi-highlight\">\n<div class=\"yaml\">\n<pre class=\"de1\"><span class=\"co3\">node-name<\/span><span class=\"sy2\">: <\/span>first-worker<span class=\"co3\">\nbind-address<\/span><span class=\"sy2\">: <\/span>1.2.3.4<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h2 id=\"multi-node-clusters\"><span class=\"ez-toc-section\" id=\"Multi-Node_Clusters\"><\/span>Multi-Node Clusters<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>K3s has full support for multi-node clusters. You can add nodes to your cluster by setting the <code>K3S_URL<\/code> and <code>K3S_TOKEN<\/code> environment variables before you run the installation script.<\/p>\n<pre>$ curl -sfL https:\/\/get.k3s.io | K3S_URL=https:\/\/192.168.0.1:6443 K3S_TOKEN=token sh -<\/pre>\n<p>This script will install K3s and configure it as a worker node that connects to the IP address <code>192.168.0.1<\/code>. To find your token, copy the value of the <code>\/var\/lib\/rancher\/k3s\/server\/node-token<\/code> file from the machine which is running your K3s server.<\/p>\n<h2 id=\"using-images-in-private-registries\"><span class=\"ez-toc-section\" id=\"Using_Images_In_Private_Registries\"><\/span>Using Images In Private Registries<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>K3s has good integrated support for images in private registries. You can provide a special config file to inject registry credentials into your cluster. These credentials will be read when the K3s server starts. It\u2019ll automatically share them with your worker nodes.<\/p>\n<p>Create an <code>\/etc\/rancher\/k3s\/registries.yaml<\/code> file with the following content:<\/p>\n<div class=\"wp-geshi-highlight-wrap5\">\n<div class=\"wp-geshi-highlight-wrap4\">\n<div class=\"wp-geshi-highlight-wrap3\">\n<div class=\"wp-geshi-highlight-wrap2\">\n<div class=\"wp-geshi-highlight-wrap\">\n<div class=\"wp-geshi-highlight\">\n<div class=\"yaml\">\n<pre class=\"de1\"><span class=\"co4\">mirrors<\/span>:<span class=\"co4\">\n  example-registry.com<\/span>:<span class=\"co4\">\n    endpoint<\/span><span class=\"sy2\">:\n<\/span>      - <span class=\"st0\">\"https:\/\/example-registry.com:5000\"<\/span><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>This will let your cluster pull images such as <code>example-registry.com\/example-image:latest<\/code> from the server at <code>example-registry.com:5000<\/code>. You can specify multiple URLs under the <code>endpoint<\/code> field; they\u2019ll be used as fallbacks in the written order until a successful pull occurs.<\/p>\n<p>Supply user credentials for your registries using the following syntax:<\/p>\n<div class=\"wp-geshi-highlight-wrap5\">\n<div class=\"wp-geshi-highlight-wrap4\">\n<div class=\"wp-geshi-highlight-wrap3\">\n<div class=\"wp-geshi-highlight-wrap2\">\n<div class=\"wp-geshi-highlight-wrap\">\n<div class=\"wp-geshi-highlight\">\n<div class=\"yaml\">\n<pre class=\"de1\"><span class=\"co4\">mirrors<\/span>:<span class=\"co4\">\n  example-registry.com<\/span>:<span class=\"co4\">\n    endpoint<\/span><span class=\"sy2\">:\n<\/span>      - <span class=\"st0\">\"https:\/\/example-registry.com:5000\"<\/span><span class=\"co4\">\nconfigs<\/span>:<span class=\"co4\">\n  \"example-registry.com:5000\"<\/span>:<span class=\"co4\">\n    auth<\/span>:<span class=\"co3\">\n      username<\/span><span class=\"sy2\">: <\/span>&lt;username&gt;<span class=\"co3\">\n      password<\/span><span class=\"sy2\">: <\/span>&lt;password&gt;<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>Credentials are defined on a per-endpoint basis. Registries defined with multiple endpoints need individual entries in the <code>config<\/code> field for each one.<\/p>\n<p>Endpoints that use SSL need to be assigned a TLS configuration too:<\/p>\n<div class=\"wp-geshi-highlight-wrap5\">\n<div class=\"wp-geshi-highlight-wrap4\">\n<div class=\"wp-geshi-highlight-wrap3\">\n<div class=\"wp-geshi-highlight-wrap2\">\n<div class=\"wp-geshi-highlight-wrap\">\n<div class=\"wp-geshi-highlight\">\n<div class=\"yaml\">\n<pre class=\"de1\"><span class=\"co4\">configs<\/span>:<span class=\"co4\">\n  \"example-registry.com:5000\"<\/span>:<span class=\"co4\">\n    auth<\/span>:<span class=\"co3\">\n      username<\/span><span class=\"sy2\">: <\/span>&lt;username&gt;<span class=\"co3\">\n      password<\/span><span class=\"sy2\">: <\/span>&lt;password<span class=\"co4\">\n    tls<\/span>:<span class=\"co3\">\n      cert_file<\/span><span class=\"sy2\">: <\/span>\/tls\/cert<span class=\"co3\">\n      key_file<\/span><span class=\"sy2\">: <\/span>\/tls\/key<span class=\"co3\">\n      ca_file<\/span><span class=\"sy2\">: <\/span>\/tls\/ca<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>Set the <code>cert_file<\/code>, <code>key_file<\/code>, and <code>ca_file<\/code> fields to reference the correct certificate files for your registry.<\/p>\n<h2 id=\"upgrading-your-cluster\"><span class=\"ez-toc-section\" id=\"Upgrading_Your_Cluster\"><\/span>Upgrading Your Cluster<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>You can upgrade to new K3s releases by running the latest version of the installation script. This will automatically detect your existing cluster and migrate it to the new version.<\/p>\n<pre>$ curl -sfL https:\/\/get.k3s.io | sh -<\/pre>\n<p>If you customized your cluster by setting installer environment variables, repeat them when you run the upgrade command:<\/p>\n<pre>$ curl -sfL https:\/\/get.k3s.io | INSTALL_K3S_BIN_DIR=\/usr\/bin sh -<\/pre>\n<p>Multi-node clusters are upgraded using the same procedure. You should upgrade each worker node individually, after the server\u2019s running the new release.<\/p>\n<p>You can install a specific Kubernetes version by setting the <code>INSTALL_K3S_VERSION<\/code> variable before you run the script:<\/p>\n<pre>$ curl -sFL https:\/\/get.k3s.io | INSTALL_K3S_VERSION=v1.23.0 sh -<\/pre>\n<p>The <code>INSTALL_K3S_CHANNEL<\/code> version can select unstable versions and pre-release builds:<\/p>\n<pre>$ curl -sFL https:\/\/get.k3s.io | INSTALL_K3S_CHANNEL=latest sh -<\/pre>\n<p>K3s will default to running the newest stable Kubernetes release when these variables aren\u2019t set.<\/p>\n<h2 id=\"uninstalling-k3s\"><span class=\"ez-toc-section\" id=\"Uninstalling_K3s\"><\/span>Uninstalling K3s<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>As K3s is packaged as a self-contained binary, it\u2019s easy to clean up if you want to stop using it. The install process provides an uninstall script that will remove system services, delete the binary, and clear all the data created by your cluster.<\/p>\n<pre>$ \/usr\/local\/bin\/k3s-uninstall.sh<\/pre>\n<p>You should use the script at <code>\/usr\/local\/bin\/k3s-agent-uninstall.sh<\/code> instead when you\u2019re decommissioning a K3s worker node.<\/p>\n<h2 id=\"conclusion\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>K3s is a single-binary Kubernetes distribution which is light on system resources and easy to maintain. This doesn\u2019t come at the expense of capabilities: K3s is billed as production-ready and has full support for the Kubernetes API objects, <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/rancher.com\/docs\/k3s\/latest\/en\/storage\">persistent storage<\/a>, and <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/rancher.com\/docs\/k3s\/latest\/en\/networking\">load balanced networking<\/a>.<\/p>\n<p>K3s is a good alternative to other developer-oriented Kubernetes flavors such as <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/kubernetes\/minikube\">Minikube<\/a> and MicroK8s. You don\u2019t need to run virtual machines, install other software, or perform any advanced configuration to set up your cluster. It\u2019s particularly well-suited when you\u2019re already running K3s in production, letting you iron out disparities between your environments.<\/p>\n<\/div>\n<p><script>\n setTimeout(function(){\n  !function(f,b,e,v,n,t,s)\n  {if(f.fbq)return;n=f.fbq=function(){n.callMethod?\n  n.callMethod.apply(n,arguments):n.queue.push(arguments)};\n  if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\n  n.queue=[];t=b.createElement(e);t.async=!0;\n  t.src=v;s=b.getElementsByTagName(e)[0];\n  s.parentNode.insertBefore(t,s) } (window, document,'script',\n  'https:\/\/connect.facebook.net\/en_US\/fbevents.js');\n   fbq('init', '335401813750447');\n   fbq('track', 'PageView');\n  },3000);\n<\/script><\/p>\n<blockquote><p><strong><span style=\"color: #ff6600;\">If you liked the article, do not forget to share it with your friends. Follow us on\u00a0<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/news.google.com\/publications\/CAAqBwgKMLG0nwswvr63Aw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Google News<\/a><\/span>\u00a0too, click on the star and choose us from your favorites.<\/span><\/strong><\/p><\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\">For forums sites go to <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/forum.buradabiliyorum.com\/\" target=\"_blank\" rel=\"noopener\">Forum.BuradaBiliyorum.Com<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\"><strong>If you want to read more like this article, you can visit our <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/en.buradabiliyorum.com\/technology\/\" target=\"_blank\" rel=\"noopener\">Technology category.<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<p><span style=\"color: black;\"><a style=\"color: #ff9900;\" href=\"https:\/\/www.howtogeek.com\/devops\/how-to-use-k3s-to-run-a-kubernetes-cluster-on-your-development-machine\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;How to Use K3s to Run a Kubernetes Cluster On Your Development Machine&#8221; K3s is a lightweight Kubernetes distribution ideal for development use. It\u2019s now part of the Cloud Native Computing Foundation (CNCF) but was originally developed by Rancher. K3s ships as a single binary with a filesize under 50 MB. Despite its diminutive appearance,&#8230;<\/p>\n","protected":false},"author":1,"featured_media":482284,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/05\/K3s.jpg?height=200p&trim=2,2,2,2","fifu_image_alt":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-482283","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/482283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/comments?post=482283"}],"version-history":[{"count":0,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/482283\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media\/482284"}],"wp:attachment":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media?parent=482283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/categories?post=482283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/tags?post=482283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}