{"id":380862,"date":"2021-12-14T15:30:56","date_gmt":"2021-12-14T12:30:56","guid":{"rendered":"https:\/\/en.buradabiliyorum.com\/whats-new-in-kubernetes-v1-23-cloudsavvy-it\/"},"modified":"2021-12-14T15:30:56","modified_gmt":"2021-12-14T12:30:56","slug":"whats-new-in-kubernetes-v1-23-cloudsavvy-it","status":"publish","type":"post","link":"https:\/\/buradabiliyorum.com\/en\/whats-new-in-kubernetes-v1-23-cloudsavvy-it\/","title":{"rendered":"#What\u2019s New In Kubernetes v1.23? \u2013 CloudSavvy IT"},"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-6a2f9bf16f8a7\" 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-6a2f9bf16f8a7\" 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-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/buradabiliyorum.com\/en\/whats-new-in-kubernetes-v1-23-cloudsavvy-it\/#Dual-Stack_IPv4IPv6_Networking\" >Dual-Stack IPv4\/IPv6 Networking<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/buradabiliyorum.com\/en\/whats-new-in-kubernetes-v1-23-cloudsavvy-it\/#Ephemeral_Volumes\" >Ephemeral Volumes<\/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\/whats-new-in-kubernetes-v1-23-cloudsavvy-it\/#Horizontal_Pod_Autoscaler_v2\" >Horizontal Pod Autoscaler v2<\/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\/whats-new-in-kubernetes-v1-23-cloudsavvy-it\/#Skipping_Volume_Ownership_Changes_On_Pod_Start\" >Skipping Volume Ownership Changes On Pod Start<\/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\/whats-new-in-kubernetes-v1-23-cloudsavvy-it\/#Other_Highlights\" >Other Highlights<\/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\/whats-new-in-kubernetes-v1-23-cloudsavvy-it\/#Conclusion\" >Conclusion<\/a><\/li><\/ul><\/nav><\/div>\n<p><strong>&#8220;#What\u2019s New In Kubernetes v1.23? \u2013 CloudSavvy IT&#8221;<\/strong><\/p>\n<div id=\"article-content-area\">\n<figure style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"type:primaryImage size-full wp-image-14259\" data-pagespeed-lazy-srcset=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/09\/51f36739.jpg?width=398&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1 400w, https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/09\/51f36739.jpg?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1 1200w\" sizes=\"auto, 400w, 1200w\" data-pagespeed-lazy-src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/09\/51f36739.jpg?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Photo of the Kubernetes logo showing on a smartphone\" width=\"1200\" height=\"675\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><figcaption class=\"wp-caption-text\"><span class=\"type:primaryImage imagecredit\"><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.shutterstock.com\/image-photo\/konskie-poland-december-21-2019-kubernetes-1609677781\">Piotr Swat\/Shutterstock.com<\/a><\/span><\/figcaption><\/figure>\n<p>Kubernetes v1.23 is the last major release of 2021. The latest update to the leading container orchestration platform promotes 11 features to the stable channel, marking them as suitable for <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/general\/\" data-internallinksmanager029f6b8e52c=\"3\" title=\"General\" target=\"_blank\" rel=\"noopener\">general<\/a> use. Here\u2019s what you need to know before you upgrade.<\/p>\n<h2 id=\"dual-stack-ipv4ipv6-networking\"><span class=\"ez-toc-section\" id=\"Dual-Stack_IPv4IPv6_Networking\"><\/span>Dual-Stack IPv4\/IPv6 Networking<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Dual-stack IPv4\/IPv6 networking is generally available in v1.23. The feature makes it possible to assign a Pod or Service both IPv4 and IPv6 addresses. You need dual-stack network interfaces on your nodes and a supporting CNI networking plugin for this to work.<\/p>\n<p>The <code>.spec.ipFamilyPolicy<\/code> field defines whether a Pod or Service receives a single- or dual-stack interface. Set it to <code>PreferDualStack<\/code> or <code>RequireDualStack<\/code> to activate dual-stack support. The default is <code>SingleStack<\/code>.<\/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\">spec<\/span>:<span class=\"co3\">\n    ipFamilyPolicy<\/span><span class=\"sy2\">: <\/span>RequireDualStack<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>Dual-stack modes will allocate service cluster IPs from both the IPv4 and IPv6 address spaces. You can set the stack preference order <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/dual-stack\/#services\">with the <code>.spec.ipFamilies<\/code> field<\/a>. This also permits specifying either IPv4 or IPv6 as the family for the <code>SingleStack<\/code> mode.<\/p>\n<h2 id=\"ephemeral-volumes\"><span class=\"ez-toc-section\" id=\"Ephemeral_Volumes\"><\/span>Ephemeral Volumes<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Ephemeral volumes are another graduation to GA status. An ephemeral volume is tied to a Pod and gets deleted when the Pod terminates. It works with all existing storage drivers that support dynamic provisioning.<\/p>\n<p><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/ephemeral-volumes\">Ephemeral volumes are<\/a> created by nesting a <code>volumeClaimTemplate<\/code> under a new <code>ephemeral<\/code> field in the <code>volumes<\/code> section of a Pod spec. The <code>volumeClaimTemplate<\/code> should resemble a regular PersistentVolumeClaim.<\/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\">spec<\/span>:<span class=\"co4\">\n  volumes<\/span>:<span class=\"co3\">\n    - name<\/span><span class=\"sy2\">: <\/span>ephemeral-volume<span class=\"co4\">\n      ephemeral<\/span>:<span class=\"co4\">\n        volumeClaimTemplate<\/span>:<span class=\"co4\">\n          metadata<\/span>:<span class=\"co4\">\n            labels<\/span>:<span class=\"co3\">\n              type<\/span><span class=\"sy2\">: <\/span>example-volume-type<span class=\"co4\">\n          spec<\/span>:<span class=\"co3\">\n            accessModes<\/span><span class=\"sy2\">: <\/span><span class=\"br0\">[<\/span><span class=\"st0\">\"ReadWriteOnce\"<\/span><span class=\"br0\">]<\/span><span class=\"co3\">\n            storageClassName<\/span><span class=\"sy2\">: <\/span>example-storage-class<span class=\"co4\">\n            resources<\/span>:<span class=\"co4\">\n              requests<\/span>:<span class=\"co3\">\n                storage<\/span><span class=\"sy2\">: <\/span>1Gi<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>While an \u201cephemeral\u201d volume may initially sound strange, there are several use cases for this functionality. Volumes are often used to provide a Pod\u2019s process with first-run config values that are only accessed once. In this scenario, an ephemeral Pod is ideal as it\u2019ll be deleted when the Pod stops, instead of being reattached to future Pods that\u2019ll never use the data. Another possible case is processes which cache large amounts of data but don\u2019t need it to be persisted between individual Pod terminations.<\/p>\n<h2 id=\"horizontal-pod-autoscaler-v2\"><span class=\"ez-toc-section\" id=\"Horizontal_Pod_Autoscaler_v2\"><\/span>Horizontal Pod Autoscaler v2<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>After five years, v2 of the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/run-application\/horizontal-pod-autoscale\">Horizontal Pod Autoscaler<\/a> API has reached stable. Autoscaling allows Kubernetes to automatically adjust the replica count of your Deployments, ReplicaSets, and StatefulSets to respond to realtime metrics changes.<\/p>\n<p>This promotion does not currently affect the original autoscaler implementation. The v1 API remains usable and is not being deprecated. The new <code>autoscaling\/v2<\/code> API takes over from the <code>autoscaling\/v2beta2<\/code> of previous Kubernetes releases.<\/p>\n<p>Using the v2 API is advantageous as you can define autoscaling decisions that are <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/run-application\/horizontal-pod-autoscale\/#scaling-on-custom-metrics\">based on custom metrics<\/a>. The autoscaler controller will make arbitrary API queries to inform replica changes, instead of limiting you to node CPU and memory conditions.<\/p>\n<h2 id=\"skipping-volume-ownership-changes-on-pod-start\"><span class=\"ez-toc-section\" id=\"Skipping_Volume_Ownership_Changes_On_Pod_Start\"><\/span>Skipping Volume Ownership Changes On Pod Start<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Using the <code>fsGroup<\/code> field on a volume to define its ownership currently causes Kubernetes to recursively execute <code>chown()<\/code> and <code>chmod()<\/code> on the volume\u2019s contents each time it\u2019s mounted to a Pod. This can be a significant performance issue when working with large volumes consisting mainly of small files. The Pod won\u2019t start until the permissions have been changed.<\/p>\n<p>Kubernetes supports <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/kubernetes.io\/blog\/2020\/12\/14\/kubernetes-release-1.20-fsgroupchangepolicy-fsgrouppolicy\">an <code>fsGroupChangePolicy<\/code> field<\/a> that lets you override this behavior. It\u2019s now generally available via a Pod\u2019s <code>securityContext<\/code>field. Setting the change policy to <code>OnRootMismatch<\/code> will only call <code>chown()<\/code> if the root of the volume has incorrect permissions. This accelerates pod startup when permissions are already compatible with the <code>fsGroup<\/code> declaration.<\/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\">securityContext<\/span>:<span class=\"co3\">\n  fsGroupChangePolicy<\/span><span class=\"sy2\">: <\/span>OnRootMismatch<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h2 id=\"other-highlights\"><span class=\"ez-toc-section\" id=\"Other_Highlights\"><\/span>Other Highlights<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>There are some noteworthy additions to the alpha and beta APIs. The beta channel now includes:<\/p>\n<ul>\n<li><strong>Structured logging<\/strong> \u2013 More components support the structured text logging format which produces JSON output. <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/kubernetes.io\/blog\/2020\/09\/04\/kubernetes-1-19-introducing-structured-logs\">Structured logs<\/a> are more readily parseable by external tools, facilitating simplified log ingest and query processes.<\/li>\n<li><strong>PodSecurity API<\/strong> \u2013 <code>PodSecurity<\/code> replaces the older <code>PodSecurityPolicy<\/code> admission controller that lets you enforce security rules at the namespace level. <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/security\/pod-security-admission\"><code>PodSecurity<\/code> provides<\/a> a mechanism for stipulating that Pods can\u2019t exist in a namespace if they lack certain security context protections.<\/li>\n<li><strong>CSI Migration support<\/strong> \u2013 This feature provides a seamless way to move from an in-tree storage driver that\u2019s part of the Kubernetes API, such as <code>kubernetes.io\/aws-ebs<\/code>, to a vendored CSI driver. Users shouldn\u2019t notice any changes to their storage after the migration completes. This functionality is now beta for AWS EBS, Azure Disk, and GCE PD. It\u2019s labelled alpha for Ceph RBD and Portworx.<\/li>\n<\/ul>\n<p>Over in the alpha channel, there are some additional capabilities making their debut:<\/p>\n<ul>\n<li><strong>Server side field validation<\/strong> \u2013 Server side field validation sends warnings from the server when a client tries to create resources that include unknown or duplicated fields. Kubernetes has historically dropped these fields, potentially causing confusing behavior. Enabling the <code>ServerSideFeatureValidation<\/code> feature gate provides a way to address this.<\/li>\n<li><strong>Expression language validation for CRDs<\/strong> \u2013 A new inline expression language facilitates validation of custom resource definitions (CRDs). This helps to address the abstract nature of CRDs where user-defined resources can not currently be guaranteed to respect the requirements of existing controllers and client <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>lications.<\/li>\n<li><strong>OpenAPI v3 support<\/strong> \u2013 OpenAPI v3 has been added behind a feature gate (<code>OpenAPIV3<\/code>). When enabled you can request the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/swagger.io\/specification\">OpenAPI v3.0 specification<\/a> for any of the Kubernetes object types, providing a way to programmatically discover and traverse resources via open API standards.<\/li>\n<\/ul>\n<h2 id=\"conclusion\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Kubernetes v1.23 stabilizes several significant features including dual-stack networking, the new customizable Horizontal Pod Autoscaler, and ephemeral volumes for working with non-critical data. There are dozens of other changes too, alongside two deprecations: the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/kubernetes\/community\/blob\/master\/sig-storage\/volume-plugin-faq.md#kubernetes-volume-plugin-faq-for-storage-vendors\"><code>FlexVolume<\/code><\/a> storage driver interface that predates CSI, and several logging flags <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/cluster-administration\/system-logs\/#klog\">which will be removed<\/a> in the future.<\/p>\n<p>A total of 11 existing features have been promoted to GA status. 17 further capabilities are now marked as beta, while another 19 are all-new capabilities landing in alpha. The Kubernetes release strategy focuses on shipping functionality early, allows the community to guide its development and help streamline API implementations. While alpha or beta features will usually push through to stable, this isn\u2019t guaranteed. APIs can change significantly or get removed entirely during the development process.<\/p>\n<p>You can read the full v1.23 release notes <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/blob\/master\/CHANGELOG\/CHANGELOG-1.23.md\">on GitHub<\/a>. Downloads are available <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/releases\">on the releases page<\/a>. You can upgrade an existing cluster that was created using Kubeadm by following the guidance <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/kubernetes.io\/docs\/tasks\/administer-cluster\/kubeadm\/kubeadm-upgrade\">in the docs<\/a>. The process will differ for users of managed cloud offerings and third-party Kubernetes distributions.\n<\/div>\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.cloudsavvyit.com\/15038\/whats-new-in-kubernetes-v1-23\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;#What\u2019s New In Kubernetes v1.23? \u2013 CloudSavvy IT&#8221; Piotr Swat\/Shutterstock.com Kubernetes v1.23 is the last major release of 2021. The latest update to the leading container orchestration platform promotes 11 features to the stable channel, marking them as suitable for general use. Here\u2019s what you need to know before you upgrade. Dual-Stack IPv4\/IPv6 Networking Dual-stack&#8230;<\/p>\n","protected":false},"author":1,"featured_media":380863,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2021\/09\/51f36739.jpg","fifu_image_alt":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-380862","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\/380862","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=380862"}],"version-history":[{"count":0,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/380862\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media\/380863"}],"wp:attachment":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media?parent=380862"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/categories?post=380862"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/tags?post=380862"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}