{"id":4859,"date":"2026-03-01T10:23:37","date_gmt":"2026-03-01T01:23:37","guid":{"rendered":"https:\/\/www.freelifemakers.org\/wordpress\/?p=4859"},"modified":"2026-03-01T13:35:14","modified_gmt":"2026-03-01T04:35:14","slug":"linuxmacos-kubernetes-2","status":"publish","type":"post","link":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/2026\/03\/01\/linuxmacos-kubernetes-2\/","title":{"rendered":"[Linux,MacOS]\ucfe0\ubc84\ub124\ud2f0\uc2a4 \/ Kubernetes-2"},"content":{"rendered":"\n<p>\ud83d\udc49\ud83c\udffb \uc774\uc804 \ud3ec\uc2a4\ud2b8 \uc0c1\ud0dc\ub97c \uadf8\ub300\ub85c \ub450\uace0 \uc9c4\ud589\ud558\uba74\ub429\ub2c8\ub2e4.<br>You can proceed by leaving the previous post status as is.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-freelifemakers-org wp-block-embed-freelifemakers-org\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"t55e61Hwc6\"><a href=\"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/2026\/02\/27\/linux-kubernetes\/\">[Linux,MacOS]\ucfe0\ubc84\ub124\ud2f0\uc2a4 \/ Kubernetes<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;[Linux,MacOS]\ucfe0\ubc84\ub124\ud2f0\uc2a4 \/ Kubernetes&#8221; &#8212; freelifemakers.org\" src=\"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/2026\/02\/27\/linux-kubernetes\/embed\/#?secret=lNO1L8OONK#?secret=t55e61Hwc6\" data-secret=\"t55e61Hwc6\" width=\"560\" height=\"315\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>\ud83d\udc49\ud83c\udffb \ucfe0\ubc84\ub124\ud2f0\uc2a4 \uac04\ub2e8\ud55c \uac1c\ub150 \/ Simple Kubernetes Concepts<\/p>\n\n\n\n<p>1. Cluster (\ud074\ub7ec\uc2a4\ud130)  : \ucef4\ud4e8\ud130(\ub610\ub294 \uac00\uc0c1 \uba38\uc2e0)\ub4e4\uc758 \ubaa8\uc784<br>Cluster: A group of computers (or virtual machines)<\/p>\n\n\n\n<p>2. Nodes (\ub178\ub4dc)  : \ucef4\ud4e8\ud130\ub098 \uac00\uc0c1\uba38\uc2e0 \uc790\uccb4<br>Nodes: The computer or virtual machine itself<\/p>\n\n\n\n<p>3. Pods (\ud30c\ub4dc)  : \ucee8\ud14c\uc774\ub108\ub4e4\uc758 \ubb36\uc74c \ub2e8\uc704<br>Pods: A group of containers<\/p>\n\n\n\n<p>4. Deployments (\ub514\ud50c\ub85c\uc774\uba3c\ud2b8) : <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-black-color\">\ud30c\ub4dc\ub97c \uc790\ub3d9\uc73c\ub85c \uc0dd\uc131\u00b7\uc720\uc9c0\u00b7\uc5c5\ub370\uc774\ud2b8\u00b7\uc0ad\uc81c\ud574\uc8fc\ub294 \uad00\ub9ac \ub3c4\uad6c<\/mark><br>Deployments: A management tool that automatically creates, maintains, updates, and deletes pods.<\/p>\n\n\n\n<p>5. Services (\uc11c\ube44\uc2a4) :<\/p>\n\n\n\n<p>-\ub3c4\ucee4\ucef4\ud3ec\uc988 \ub0b4\uc758 service\uc640 \ubd80\ubd84\uc801\uc73c\ub85c \uc720\uc0ac\ud568<br>Partially similar to a service in Docker Compose<\/p>\n\n\n\n<p>-Pod \uadf8\ub8f9\uc5d0\uac8c \uc548\uc815\uc801\uc778 \ub124\ud2b8\uc6cc\ud06c \uc8fc\uc18c(IP + DNS \uc774\ub984 + \ud3ec\ud2b8)\ub97c \uc8fc\ub294 \ucd94\uc0c1\ud654 \ub808\uc774\uc5b4<br>An abstraction layer that gives a group of Pods a stable network address (IP + DNS name + port).<\/p>\n\n\n\n<p>-\uc8fc\ub85c IP \uc8fc\uc18c \uae30\ubc18 (IP + \ud3ec\ud2b8\ub85c \uc811\uadfc)<br>Primarily IP address based (access via IP + port)<\/p>\n\n\n\n<p>6. Ingresses (\uc778\uadf8\ub808\uc2a4) : <\/p>\n\n\n\n<p>-\ub3c4\uba54\uc778(\ud638\uc2a4\ud2b8) \uae30\ubc18 + \uacbd\ub85c \uae30\ubc18 \ub77c\uc6b0\ud305 (HTTP\/HTTPS\uc5d0 \ud2b9\ud654)\uc744 \uac00\ub2a5\ud558\uac8c \ud574\uc90c<br>Enables domain (host)-based + path-based routing (specific for HTTP\/HTTPS)<\/p>\n\n\n\n<p>-\ub3c4\uba54\uc778\uc744 \ubcf4\uace0 \uc694\uccad\uc744 service\ub85c \ubcf4\ub0b4\ub294 \uc5ed\ud560<br>Role of reporting domains and sending requests to services<\/p>\n\n\n\n<p>7. ConfigMaps and Secrets (\ucee8\ud53c\uadf8\ub9f5\uacfc \uc2dc\ud06c\ub9bf)  :  .env\uc640 \uc720\uc0ac\ud55c \uac1c\ub150<br>ConfigMaps and Secrets: Similar concepts to .env<\/p>\n\n\n\n<p>8. Jobs and CronJobs (\uc7a1\uacfc \ud06c\ub860\uc7a1)  : \ub9ac\ub205\uc2a4 crontab\uacfc \uc720\uc0ac\ud55c \uac1c\ub150<br>Jobs and CronJobs: Similar concepts to Linux crontab<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\u2b50\ufe0f \ud14c\uc2a4\ud2b8\ud560\ub54c \ub3c4\ucee4 \ub370\uc2a4\ud06c\ud0d1\uc744 \ubcf4\uba74\uc11c \ud14c\uc2a4\ud2b8\ud558\uba74 \ud3b8\ud569\ub2c8\ub2e4.<br>It is convenient to test while looking at the Docker desktop.<\/p>\n\n\n\n<p>\ud83d\udc49\ud83c\udffb \ub85c\uceec \ud638\uc2a4\ud2b8 \ud3ec\ud2b8 \ubcc0\uacbd<br>Change localhost port<\/p>\n\n\n\n<p>\u2714\ufe0f pod \uc815\ubcf4 \ubcf4\uae30 \/ View pod information<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl get pods<\/code><\/pre>\n\n\n\n<p>\u2714\ufe0f 8080\uc744 80\ubc88 \ud3ec\ud2b8\ub85c \ud3ec\uc6cc\ub529  \/ Forward 8080 to port 80<\/p>\n\n\n\n<p>&#8212;  \ub85c\uceec \uc811\uc18d : \u2b50\ufe0f8080\uc73c\ub85c \uc811\uc18d\ub418\uc9c0 \uc54a\uc73c\uba74 \ud3ec\ud2b8\ubc88\ud638\ub97c \ubc14\uafc9\ub2c8\ub2e4.<br>Local connection: \u2b50\ufe0fIf you can&#8217;t connect to 8080, change the port number.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl port-forward deployment\/nginx-test 8080:80<\/code><\/pre>\n\n\n\n<p>&#8212; \ub2e4\ub978 \uae30\uae30\uc5d0\uc11c\ub3c4 \uc811\uc18d \/ Access from other devices<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl port-forward deployment\/nginx-test 8080:80 --address 0.0.0.0<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>\n\n# Pod \uc774\ub984 \ud655\uc778 \/ Check Pod Name\n% kubectl get pods\nNAME                         READY   STATUS    RESTARTS   AGE\nnginx-test-b548755db-hwmfq   1\/1     Running   0          12m\n\n# -----------------------\n\n# TEST1 - 8080\ud3ec\ud2b8\ub85c \ub85c\uceec \ud638\uc2a4\ud2b8\uc5d0\uc11c \uc811\uc18d\n# TEST1 - Connect to local host via port 8080\n% kubectl port-forward deployment\/nginx-test 8080:80\n\n# \uc2e4\ud589\uacb0\uacfc \/ Execution result\nForwarding from 127.0.0.1:8080 -&gt; 80\nForwarding from &#91;::1]:8080 -&gt; 80\n\n\n# \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \ud14c\uc2a4\ud2b8 \ud560\uacbd\uc6b0 http:\/\/localhost:8080\n# \ub610\ub294 http:\/\/127.0.0.1:8080\n\n# If you want to test in a browser, go to http:\/\/localhost:8080\n# or http:\/\/127.0.0.1:8080\n\n# \ud130\ubbf8\ub110\uc5d0\uc11c \ud14c\uc2a4\ud2b8\ud560 \uacbd\uc6b0curl http:\/\/127.0.0.1:8080\n# If you want to test it in the terminal, curl http:\/\/127.0.0.1:8080\n\n# -----------------------\n\n# TEST2 - \ub2e4\ub978 \uae30\uae30\uc5d0\uc11c \uc811\uc18d \uac00\ub2a5\ud558\uac8c \ud558\ub824\uba74 \uc544\ub798\uc640 \uac19\uc774 \uc2e4\ud589\n# TEST2 - To enable access from other devices, run as follows:\n\nkubectl port-forward deployment\/nginx-test 8080:80 --address 0.0.0.0\n\n# \ub0b4 \ucef4\ud4e8\ud130 IP\ub85c\ub3c4 \uc811\uadfc \uac00\ub2a5\n# \uc608: http:\/\/192.168.1.101:8080\n# Also accessible via my computer's IP address\n# Example: http:\/\/192.168.1.101:8080<\/code><\/pre>\n\n\n\n<p>\ud83d\udc49\ud83c\udffb \uc2a4\ud06c\ub9b0\uc0f7\/ScreenShot<\/p>\n\n\n\n<p>\u2714\ufe0f PC<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"531\" src=\"https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/03\/8080-jpg-1024x531.jpg\" alt=\"\" class=\"wp-image-4911\" srcset=\"https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/03\/8080-jpg-1024x531.jpg 1024w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/03\/8080-jpg-300x156.jpg 300w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/03\/8080-jpg-768x398.jpg 768w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/03\/8080-jpg-400x207.jpg 400w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/03\/8080-jpg-800x415.jpg 800w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/03\/8080-jpg.jpg 1196w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Screenshot<\/figcaption><\/figure>\n\n\n\n<p>\u2714\ufe0f Mobile<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"1024\" src=\"https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/03\/8080m-jpg-461x1024.jpg\" alt=\"\" class=\"wp-image-4912\" srcset=\"https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/03\/8080m-jpg-461x1024.jpg 461w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/03\/8080m-jpg-135x300.jpg 135w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/03\/8080m-jpg-768x1707.jpg 768w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/03\/8080m-jpg-691x1536.jpg 691w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/03\/8080m-jpg-922x2048.jpg 922w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/03\/8080m-jpg-400x889.jpg 400w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/03\/8080m-jpg-800x1778.jpg 800w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/03\/8080m-jpg.jpg 1080w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\ud83d\udc49\ud83c\udffb Node.js \uc571 \uc2e4\ud589 \/ Running Node.js apps<\/p>\n\n\n\n<p>\u2714\ufe0f \ud504\ub85c\ub355\uc158 \ud658\uacbd\uc5d0\uc11c\ub294 \uc774 \ubc29\ubc95\uc744 \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<br>This method is not used in production environments.<\/p>\n\n\n\n<p>\u2714\ufe0f \ud14c\uc2a4\ud2b8\ub098 \ud559\uc2b5 \ub2e8\uacc4\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4.<br>This is a method used in the testing or learning phase.<\/p>\n\n\n\n<p>\u2714\ufe0f node:20-alpine\uc774\ubbf8\uc9c0 \uc124\uce58<br>Installing the node:20-alpine image<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl create deployment node-test --image=node:20-alpine --replicas=1<\/code><\/pre>\n\n\n\n<p>\u2714\ufe0f nodejs \uc11c\ubc84\uc2e4\ud589<br>Running a nodejs server<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl patch deployment node-test --type='json' -p='&#91;{\"op\":\"replace\",\"path\":\"\/spec\/template\/spec\/containers\/0\/command\",\"value\":&#91;\"node\",\"-e\",\"require(\\\"http\\\").createServer((req,res)=&gt;{res.end(\\\"Hello Johnny! in K8s\\\")}).listen(3000)\"]}]'<\/code><\/pre>\n\n\n\n<p>\u2714\ufe0f \ud3ec\ud2b8\ub178\ucd9c \/ Port exposure<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl expose deployment node-test --port=3000 --target-port=3000<\/code><\/pre>\n\n\n\n<p>\u2714\ufe0fpod \uc815\ubcf4 \ud655\uc778(Running \ub420\ub54c\uae4c\uc9c0 \uae30\ub2e4\ub9ac\uae30)<br>Check pod information (wait until running)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl get pods -w  <\/code><\/pre>\n\n\n\n<p>\u2714\ufe0f \ud3ec\ud2b8\ud3ec\uc6cc\ub529 \/ port forwarding<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl port-forward deployment\/node-test 3000:3000<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl create deployment node-test --image=node:20-alpine --replicas=1\n\n# command override (\uc704 json patch \ubc29\uc2dd \uc0ac\uc6a9)\nkubectl patch deployment node-test --type='json' -p='&#91;{\"op\":\"replace\",\"path\":\"\/spec\/template\/spec\/containers\/0\/command\",\"value\":&#91;\"node\",\"-e\",\"require(\\\"http\\\").createServer((req,res)=&gt;{res.end(\\\"Hello Johnny! in K8s\\\")}).listen(3000)\"]}]'\n\n# \ud3ec\ud2b8 expose\nkubectl expose deployment node-test --port=3000 --target-port=3000\n\n# Pod \uae30\ub2e4\ub9ac\uae30, Running \ub420 \ub54c\uae4c\uc9c0\nkubectl get pods -w  \n\n# \ud3ec\ud2b8 \ud3ec\uc6cc\ub529\nkubectl port-forward deployment\/node-test 3000:3000<\/code><\/pre>\n\n\n\n<p>\u2b50\ufe0f \uc774\ubbf8\uc9c0 \uc124\uce58 \ud655\uc778 \/ Verify image installation<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>% docker images\n                                                           i Info \u2192   U  In Use\nIMAGE                           ID             DISK USAGE   CONTENT SIZE   EXTRA\ndocker\/desktop-kubernetes:kubernetes-v1.34.1-cni-v1.7.1-critools-v1.33.0-cri-dockerd-v0.3.20-1-debian\n                                12d6673564e0        552MB          169MB        \ndocker\/desktop-storage-provisioner:v3.0\n                                57d2b6ad1c6f       75.4MB         21.9MB    U   \ndocker\/desktop-vpnkit-controller:v4.0\n                                bdaff3408b1c         50MB         10.7MB    U   \nnginx:latest                    0236ee02dcbc        258MB         64.1MB    U   \n<mark style=\"background-color:rgba(0, 0, 0, 0);color:#d36565\" class=\"has-inline-color\">node:20-alpine                  09e2b3d97260        193MB           49MB <\/mark>       \nregistry.k8s.io\/coredns\/coredns:v1.11.3\n<\/code><\/pre>\n\n\n\n<p>\u2b50\ufe0f \uc0ad\uc81c\ud560 \uacbd\uc6b0 \/ When to delete<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># node-test \uc11c\ube44\uc2a4 \uc0ad\uc81c\n# Delete the node-test service\nkubectl delete service node-test\n\n# deployment \uc0ad\uc81c\n# delete deployment\nkubectl delete deployment node-test\n\n# pod \uc0ad\uc81c\n# delete pod\nkubectl delete pod node-test-d7794f4f7-zbmqq<\/code><\/pre>\n\n\n\n<p>\ud83d\udc49\ud83c\udffb \uc2a4\ud06c\ub9b0 \uc0f7 \/ ScreenShot<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"786\" height=\"332\" src=\"https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/03\/HelloJohnny-jpg.jpg\" alt=\"\" class=\"wp-image-4915\" srcset=\"https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/03\/HelloJohnny-jpg.jpg 786w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/03\/HelloJohnny-jpg-300x127.jpg 300w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/03\/HelloJohnny-jpg-768x324.jpg 768w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/03\/HelloJohnny-jpg-400x169.jpg 400w\" sizes=\"auto, (max-width: 786px) 100vw, 786px\" \/><figcaption class=\"wp-element-caption\">Screenshot<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ud83d\udc49\ud83c\udffb \uc774\uc804 \ud3ec\uc2a4\ud2b8 \uc0c1\ud0dc\ub97c \uadf8\ub300\ub85c \ub450\uace0 \uc9c4\ud589\ud558\uba74\ub429\ub2c8\ub2e4.You can proceed by leaving the previous post status as is. \ud83d\udc49\ud83c\udffb \ucfe0\ubc84\ub124\ud2f0\uc2a4 \uac04\ub2e8\ud55c \uac1c\ub150 \/ Simple Kubernetes Concepts 1. Cluster (\ud074\ub7ec\uc2a4\ud130) : \ucef4\ud4e8\ud130(\ub610\ub294 \uac00\uc0c1 \uba38\uc2e0)\ub4e4\uc758 \ubaa8\uc784Cluster: A group of computers (or virtual machines) 2. Nodes (\ub178\ub4dc) : \ucef4\ud4e8\ud130\ub098 \uac00\uc0c1\uba38\uc2e0 \uc790\uccb4Nodes: The computer or virtual machine itself 3. Pods [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,1],"tags":[],"class_list":["post-4859","post","type-post","status-publish","format-standard","hentry","category-linux","category-uncategorized","missing-thumbnail"],"_links":{"self":[{"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/4859","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/comments?post=4859"}],"version-history":[{"count":74,"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/4859\/revisions"}],"predecessor-version":[{"id":4939,"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/4859\/revisions\/4939"}],"wp:attachment":[{"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/media?parent=4859"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/categories?post=4859"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/tags?post=4859"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}