{"id":1455,"date":"2025-03-21T01:32:25","date_gmt":"2025-03-20T23:32:25","guid":{"rendered":"https:\/\/olvas.dev\/?p=1455"},"modified":"2025-03-21T01:32:26","modified_gmt":"2025-03-20T23:32:26","slug":"%d0%b2%d1%80%d0%b5%d0%bc%d1%8f-%d1%81%d0%be%d0%b1%d0%b8%d1%80%d0%b0%d1%82%d1%8c-k8s-%d1%87%d0%b0%d1%81%d1%82%d1%8c-2","status":"publish","type":"post","link":"https:\/\/olvas.dev\/?p=1455","title":{"rendered":"\u0412\u0440\u0435\u043c\u044f \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c k8s &#8212; \u0447\u0430\u0441\u0442\u044c 2"},"content":{"rendered":"\n<p>\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u0442\u0430\u00a0<a href=\"https:\/\/olvas.dev\/?p=1012\" target=\"_blank\" rel=\"noreferrer noopener\">\u0412\u0440\u0435\u043c\u044f \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c k8s<\/a>.<\/p>\n\n\n\n<p>\u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u043c\u043d\u043e\u0433\u043e\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e\u0434 \u0440\u0430\u0437\u043d\u044b\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b.<\/p>\n\n\n\n<p>\u042d\u0442\u043e \u043d\u0435 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431, \u043d\u043e \u044d\u0442\u043e \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u0443\u044e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443, \u043c\u043e\u0434\u0443\u043b\u0438\u0442, \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u0443\u044e \u0438\u043b\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0443\u044e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443.<\/p>\n\n\n\n<p>\u041a\u0430\u043a \u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0435\u0448\u0430\u0435\u0442 Bazel, \u0431\u0435\u0437 Bazel.<\/p>\n\n\n\n<p>Buildx \u0438 \u0433\u0438\u0431\u043a\u0438\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0430\u043c \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443.<\/p>\n\n\n\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c builder \u0434\u043b\u044f arm64:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker buildx create \\<br>  --append \\<br>  --bootstrap \\<br>  --name=&lt;NAME&gt; \\<br>  --driver=kubernetes \\<br>  --platform=linux\/arm64 \\<br>  --node=builder-arm64 \\<br>  --driver-opt=namespace=&lt;NAMESPACE&gt;,nodeselector=\"kubernetes.io\/arch=arm64\"<\/code><\/pre>\n\n\n\n<p>\u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u0432&nbsp;<a href=\"https:\/\/github.com\/avkcode\/k8s-release\/blob\/main\/kube-buildx-farm.md\" rel=\"noreferrer noopener\" target=\"_blank\">kube-buildx-farm.md<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/docs.docker.com\/build\/building\/multi-platform\/\" rel=\"noreferrer noopener\" target=\"_blank\">Buildx \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 QEMU<\/a>, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u00ab\u0447\u0443\u0436\u0443\u044e\u00bb \u0434\u043b\u044f \u0445\u043e\u0441\u0442\u0430 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker buildx ls<br>kube-build-farm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; kubernetes<br>\\_ kube-build-farm0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \\_ kubernetes:\/\/\/kube-build-farm?<br>kube-build-farm-arm64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; kubernetes<br>\\_ kube-build-farm-arm640&nbsp;&nbsp;&nbsp; \\_ kubernetes:\/\/\/kube-build-farm-arm64?deployment=buildkit-2f2c1ac5-7bf7-4de9-96ce-95611e5a94cd-k72ck&amp;kubeconfig=&nbsp;&nbsp; running&nbsp;&nbsp; v0.20.0&nbsp;&nbsp;&nbsp; linux\/amd64, linux\/amd64\/v2, linux\/amd64\/v3, linux\/arm64, linux\/riscv64, linux\/ppc64le, linux\/s390x, linux\/386, linux\/mips64le, linux\/mips64, linux\/loong64, linux\/arm\/v7, linux\/arm\/v6<br>default*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; docker<br>\\_ default&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \\_ default&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/code><\/pre>\n\n\n\n<p>\u0412 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0441\u043e\u0442\u043d\u0438 \u0443\u0437\u043b\u043e\u0432, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0440\u0430\u0441\u043f\u0430\u0440\u0430\u043b\u0435\u043b\u043b\u0438\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0443 \u0438 \u0442\u0430\u043a\u0438\u043c \u0443\u0441\u043a\u043e\u0440\u0438\u0442 \u0441\u0431\u043e\u0440\u043a\u0443 \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0440\u0430\u0437. \u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0442\u043e\u0436\u0435 \u043a\u0441\u0442\u0430\u0442\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0441\u043e\u0442\u043d\u0438.<\/p>\n\n\n\n<p>\u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c Dockerfile:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/k8s-release\/ -iname \"Dockerfile.*\"<br>\/srv\/k8s-release\/Dockerfile.kube-apiserver<br>\/srv\/k8s-release\/Dockerfile.kube-scheduler<br>\/srv\/k8s-release\/Dockerfile.kubectl<br>\/srv\/k8s-release\/Dockerfile.etcd<br>\/srv\/k8s-release\/Dockerfile.kube-proxy<br>\/srv\/k8s-release\/Dockerfile.kube-controller-manager<br>\/srv\/k8s-release\/Dockerfile.kubelet<br>\/srv\/k8s-release\/Dockerfile.flannel<\/code><\/pre>\n\n\n\n<p>\u041f\u043e\u0442\u043e\u043c \u043e\u043d\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043e\u0431\u0449\u0438\u0439 docker compose \u043a\u043e\u043d\u0444\u0438\u0433:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>  flannel-builder:<br>    build:<br>      context: .<br>      dockerfile: Dockerfile.flannel<br>      args:<br>        - FLANNEL_VERSION=v0.26.4<br>        - FLANNEL_GIT_URL=https:\/\/github.com\/flannel-io\/flannel.git<br>    entrypoint: &#91;\"sh\", \"-c\", \"cp \/usr\/local\/bin\/flanneld \/output\/flanneld\"]<br>    volumes:<br>      - .\/output:\/output<\/code><\/pre>\n\n\n\n<p>Docker compose \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e $DOCKER_DEFAULT_PLATFORM \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b. \u0415\u0435 \u043c\u044b \u0438 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 Makefile \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u0435\u0442 \u0432 \u0440\u043e\u043b\u0438 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b\/\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Switch to the appropriate Buildx builder based on KUBE_BUILDER or KUBE_BUILDER_ARM64<br>switch-builder:<br>ifeq ($(KUBE_BUILDER_ARM64),1)<br>\t@echo \"Switching to Kubernetes ARM64 Buildx builder...\"<br>\t@docker buildx use kube-build-farm-arm64 || { echo &gt;&amp;2 \"Error: Kubernetes ARM64 Buildx builder not found.\"; <strong>exit<\/strong> 1; }<br><strong>else<\/strong> ifeq ($(KUBE_BUILDER),1)<br>\t@echo \"Switching to Kubernetes Buildx builder...\"<br>\t@docker buildx use kube-build-farm || { echo &gt;&amp;2 \"Error: Kubernetes Buildx builder not found.\"; <strong>exit<\/strong> 1; }<br><strong>else<\/strong><br>\t@echo \"Switching to default Buildx builder...\"<br>\t@docker buildx use default<br>endif<br><br># Define the default platform based on $KUBE_BUILDER<br>ifeq ($(KUBE_BUILDER_ARM64),1)<br>    DOCKER_DEFAULT_PLATFORM := linux\/arm64<br><strong>else<\/strong><br>    DOCKER_DEFAULT_PLATFORM := linux\/amd64<br>endif<\/code><\/pre>\n\n\n\n<p>Make \u0437\u0430\u0442\u043e\u0447\u0435\u043d \u043f\u043e\u0434 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043a\u0440\u0443\u0433 \u0437\u0430\u0434\u0430\u0447 &#8212; \u043e\u043d \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0438 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0430 \u0442\u0430\u043a \u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434 shell.<\/p>\n\n\n\n<p>\u041d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e (\u0434\u043e\u043a\u0438-\u043a\u0430\u043a \u043a\u043e\u0434) \u0438 \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0440\u044f\u043c\u043e \u0432 Make:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Usage: make &lt;target&gt;<br><br>Targets:<br>  help                    Display this help message<br>  build                   Perform a simple build using Buildx<br>  build-no-cache          Perform a simple build using Buildx without cache<br>  archive                 Create a git archive with branch and commit <strong>in<\/strong> the name<br>  bundle                  Create a git bundle with branch and commit <strong>in<\/strong> the name<br>  clean                   Clean up generated files<br><br>Variables:<br>  FLANNEL_GIT_URL         Flannel Git repository URL (default: https:\/\/github.com\/flannel-io\/flannel.git)<br>  FLANNEL_VERSION         Flannel version to use (default: v0.26.4)<br>  KUBE_GIT_URL            Kubernetes Git repository URL (default: https:\/\/github.com\/kubernetes\/kubernetes.git)<br>  KUBE_BUILDER            Use Kubernetes to build images (default: 0, <strong>set<\/strong> to 1 to enable)<br>  KUBE_BUILDER_ARM64      Use Kubernetes ARM64 builder (default: 0, <strong>set<\/strong> to 1 to enable)<br>  KUBE_VERSION            Kubernetes version to use (default: v1.32.2)<br>  ETCD_VERSION            Etcd version to use (default: v3.5.9)<br>  COMPOSE_DOCKER_CLI_BUILD Enable Docker CLI build (set to 1)<br>  DOCKER_BUILDKIT          Enable BuildKit <strong>for<\/strong> Docker builds (set to 1)<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1401\" height=\"655\" src=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/6224390d1c3f3af61ba76413e04c3389.png\" alt=\"\u0444\u043b\u043e\u0443\" class=\"wp-image-1457\" srcset=\"https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/6224390d1c3f3af61ba76413e04c3389.png 1401w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/6224390d1c3f3af61ba76413e04c3389-768x359.png?_mod=1742513543 768w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/6224390d1c3f3af61ba76413e04c3389-640x299.png?_mod=1742513543 640w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/6224390d1c3f3af61ba76413e04c3389-1024x479.png?_mod=1742513543 1024w, https:\/\/olvas.dev\/wp-content\/uploads\/2025\/03\/6224390d1c3f3af61ba76413e04c3389-1000x468.png?_mod=1742513543 1000w\" sizes=\"auto, (max-width: 1401px) 100vw, 1401px\" \/><figcaption class=\"wp-element-caption\">\u0444\u043b\u043e\u0443<\/figcaption><\/figure>\n\n\n\n<p>\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u043c\u0443 \u043f\u043e\u0434\u0445\u043e\u0434\u0443 \u043c\u043e\u0436\u043d\u043e \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u0442\u0430\u00a0\u0412\u0440\u0435\u043c\u044f \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c k8s. \u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u043c\u043d\u043e\u0433\u043e\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e\u0434 \u0440\u0430\u0437\u043d\u044b\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b. \u042d\u0442\u043e \u043d\u0435 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431, \u043d\u043e \u044d\u0442\u043e \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u0443\u044e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443, \u043c\u043e\u0434\u0443\u043b\u0438\u0442, \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u0443\u044e \u0438\u043b\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0443\u044e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443. \u041a\u0430\u043a \u0440\u0435\u0448\u0438\u0442\u044c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1456,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[318,31,147,30],"class_list":["post-1455","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-likbez","tag-buildx","tag-k8s","tag-k8skubernetes","tag-kubernetes","entry-card--landscape"],"_links":{"self":[{"href":"https:\/\/olvas.dev\/index.php?rest_route=\/wp\/v2\/posts\/1455","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/olvas.dev\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/olvas.dev\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/olvas.dev\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/olvas.dev\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1455"}],"version-history":[{"count":1,"href":"https:\/\/olvas.dev\/index.php?rest_route=\/wp\/v2\/posts\/1455\/revisions"}],"predecessor-version":[{"id":1458,"href":"https:\/\/olvas.dev\/index.php?rest_route=\/wp\/v2\/posts\/1455\/revisions\/1458"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/olvas.dev\/index.php?rest_route=\/wp\/v2\/media\/1456"}],"wp:attachment":[{"href":"https:\/\/olvas.dev\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1455"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/olvas.dev\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1455"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/olvas.dev\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1455"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}