{"id":1976,"date":"2022-03-25T05:11:11","date_gmt":"2022-03-25T13:11:11","guid":{"rendered":"https:\/\/tungle.ca\/?p=1976"},"modified":"2022-12-04T19:11:36","modified_gmt":"2022-12-05T03:11:36","slug":"build-kubernetes-cluster-with-microk8s","status":"publish","type":"post","link":"https:\/\/tungle.ca\/?p=1976","title":{"rendered":"\u00a0Build Kubernetes cluster with MicroK8s"},"content":{"rendered":"\n<p>Below is a process to install the Kubernetes cluster on three nodes. with MicroK8s.<\/p>\n\n\n\n<p>+ Deploying MicroK8s on node 1, node 2, and node 3<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"206\" src=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-39-1024x206.png\" alt=\"\" class=\"wp-image-1977\" srcset=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-39-1024x206.png 1024w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-39-300x60.png 300w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-39-768x155.png 768w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-39-200x40.png 200w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-39.png 1260w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Install MicroK8s directly from the&nbsp;snap store.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo apt install snapd<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"651\" height=\"132\" src=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-40.png\" alt=\"\" class=\"wp-image-1978\" srcset=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-40.png 651w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-40-300x61.png 300w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-40-200x41.png 200w\" sizes=\"auto, (max-width: 651px) 100vw, 651px\" \/><\/figure>\n\n\n\n<p>To follow a specific upstream release series it\u2019s possible to select a&nbsp;channel&nbsp;during installation, for example, v1.18 series.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo snap install microk8s --classic --channel=1.18\/stable<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"143\" src=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-41.png\" alt=\"\" class=\"wp-image-1979\" srcset=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-41.png 975w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-41-300x44.png 300w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-41-768x113.png 768w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-41-200x29.png 200w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n\n\n\n<p>Configure your firewall to allow pod-to-pod and pod-to-internet communication.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo ufw allow in on cni0 &amp;&amp; sudo ufw allow out on cni0<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo ufw default allow routed<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"222\" src=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-42.png\" alt=\"\" class=\"wp-image-1980\" srcset=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-42.png 975w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-42-300x68.png 300w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-42-768x175.png 768w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-42-200x46.png 200w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n\n\n\n<p>Dashboard, core-dns, or local storage can be enabled by running the&nbsp;<code>microk8s enable<\/code>&nbsp;command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">microk8s enable dns dashboard storage<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">sudo usermod -a -G microk8s tung\nsudo chown -f -R tung ~\/.kube\nnewgrp microk8s<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"534\" src=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-43.png\" alt=\"\" class=\"wp-image-1981\" srcset=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-43.png 975w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-43-300x164.png 300w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-43-768x421.png 768w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-43-200x110.png 200w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"913\" height=\"1024\" src=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-44-913x1024.png\" alt=\"\" class=\"wp-image-1982\" srcset=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-44-913x1024.png 913w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-44-267x300.png 267w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-44-768x862.png 768w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-44-178x200.png 178w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-44.png 975w\" sizes=\"auto, (max-width: 913px) 100vw, 913px\" \/><\/figure>\n\n\n\n<p>Get the output of the first node.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"779\" src=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-45.png\" alt=\"\" class=\"wp-image-1983\" srcset=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-45.png 975w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-45-300x240.png 300w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-45-768x614.png 768w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-45-200x160.png 200w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n\n\n\n<p>Get token.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"496\" src=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-46.png\" alt=\"\" class=\"wp-image-1984\" srcset=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-46.png 975w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-46-300x153.png 300w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-46-768x391.png 768w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-46-200x102.png 200w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n\n\n\n<p>Copy and paste the token on the following screenshot.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"853\" src=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-47.png\" alt=\"\" class=\"wp-image-1985\" srcset=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-47.png 975w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-47-300x262.png 300w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-47-768x672.png 768w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-47-200x175.png 200w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n\n\n\n<p>Kubernetes dashboard.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"950\" height=\"1024\" src=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-48-950x1024.png\" alt=\"\" class=\"wp-image-1986\" srcset=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-48-950x1024.png 950w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-48-278x300.png 278w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-48-768x828.png 768w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-48-186x200.png 186w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-48.png 975w\" sizes=\"auto, (max-width: 950px) 100vw, 950px\" \/><\/figure>\n\n\n\n<p>Get status of mircok8s service.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"789\" src=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-49.png\" alt=\"\" class=\"wp-image-1987\" srcset=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-49.png 975w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-49-300x243.png 300w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-49-768x621.png 768w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-49-200x162.png 200w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n\n\n\n<p>Do previous steps on node 2 and node 3. We do not need to install dashboard service on node 2 and node 3.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"411\" src=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-50.png\" alt=\"\" class=\"wp-image-1988\" srcset=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-50.png 975w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-50-300x126.png 300w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-50-768x324.png 768w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-50-200x84.png 200w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"405\" src=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-52.png\" alt=\"\" class=\"wp-image-1990\" srcset=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-52.png 975w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-52-300x125.png 300w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-52-768x319.png 768w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-52-200x83.png 200w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n\n\n\n<p>+ Create a MicroK8s multi-node cluster.<\/p>\n\n\n\n<p>Now let\u2019s focus on creating the Kubernetes cluster. On the first node run a command below.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">microk8s add-node<\/code><\/pre>\n\n\n\n<p>This command will give you the following output:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"428\" src=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-53.png\" alt=\"\" class=\"wp-image-1991\" srcset=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-53.png 975w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-53-300x132.png 300w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-53-768x337.png 768w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-53-200x88.png 200w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n\n\n\n<p>On node 2, join the cluster.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"285\" src=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-54.png\" alt=\"\" class=\"wp-image-1992\" srcset=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-54.png 975w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-54-300x88.png 300w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-54-768x224.png 768w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-54-200x58.png 200w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n\n\n\n<p>Repeat this process (including generating a token, run it from the joining node) for the third node.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"510\" src=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-55.png\" alt=\"\" class=\"wp-image-1993\" srcset=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-55.png 975w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-55-300x157.png 300w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-55-768x402.png 768w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-55-200x105.png 200w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"299\" src=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-56.png\" alt=\"\" class=\"wp-image-1994\" srcset=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-56.png 975w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-56-300x92.png 300w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-56-768x236.png 768w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-56-200x61.png 200w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n\n\n\n<p>+ Deploy a sample containerized application<\/p>\n\n\n\n<p>Let\u2019s now create a microbot deployment with three pods via the kubectl cli. Run this on any of the control plane nodes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">microk8s kubectl create deployment microbot --image=dontrebootme\/microbot:v1<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">microk8s kubectl scale deployment microbot --replicas=3<\/code><\/pre>\n\n\n\n<p>To expose our deployment we need to create a service:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">microk8s kubectl expose deployment microbot --type=NodePort --port=80 --name=microbot-service<\/code><\/pre>\n\n\n\n<p>After a few minutes, check your cluster.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"908\" height=\"1024\" src=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-57-908x1024.png\" alt=\"\" class=\"wp-image-1995\" srcset=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-57-908x1024.png 908w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-57-266x300.png 266w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-57-768x866.png 768w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-57-177x200.png 177w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-57.png 975w\" sizes=\"auto, (max-width: 908px) 100vw, 908px\" \/><\/figure>\n\n\n\n<p>Check IP address of the K8S node.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"912\" height=\"1024\" src=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-58-912x1024.png\" alt=\"\" class=\"wp-image-1996\" srcset=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-58-912x1024.png 912w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-58-267x300.png 267w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-58-768x863.png 768w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-58-178x200.png 178w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-58.png 975w\" sizes=\"auto, (max-width: 912px) 100vw, 912px\" \/><\/figure>\n\n\n\n<p>Access micro-bot service via the port 30711. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"662\" src=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-59.png\" alt=\"\" class=\"wp-image-1997\" srcset=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-59.png 975w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-59-300x204.png 300w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-59-768x521.png 768w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-59-200x136.png 200w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n\n\n\n<p>Kubernetes dashboard.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"975\" height=\"502\" src=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-60.png\" alt=\"\" class=\"wp-image-1998\" srcset=\"https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-60.png 975w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-60-300x154.png 300w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-60-768x395.png 768w, https:\/\/tungle.ca\/wp-content\/uploads\/2022\/03\/image-60-200x103.png 200w\" sizes=\"auto, (max-width: 975px) 100vw, 975px\" \/><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Below is a process to install the Kubernetes cluster on three nodes. with MicroK8s. + Deploying MicroK8s on node 1, node 2, and node 3 Install MicroK8s directly from the&nbsp;snap store. To follow a specific upstream release series it\u2019s possible to select a&nbsp;channel&nbsp;during installation, for example, v1.18 series. Configure your firewall to allow pod-to-pod and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[30,6],"tags":[24,8],"class_list":["post-1976","post","type-post","status-publish","format-standard","hentry","category-kubernetes","category-linux","tag-kubernetes","tag-linux"],"_links":{"self":[{"href":"https:\/\/tungle.ca\/index.php?rest_route=\/wp\/v2\/posts\/1976","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tungle.ca\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tungle.ca\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tungle.ca\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tungle.ca\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1976"}],"version-history":[{"count":2,"href":"https:\/\/tungle.ca\/index.php?rest_route=\/wp\/v2\/posts\/1976\/revisions"}],"predecessor-version":[{"id":4437,"href":"https:\/\/tungle.ca\/index.php?rest_route=\/wp\/v2\/posts\/1976\/revisions\/4437"}],"wp:attachment":[{"href":"https:\/\/tungle.ca\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1976"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tungle.ca\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1976"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tungle.ca\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1976"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}