{"id":12521,"date":"2023-10-25T10:00:29","date_gmt":"2023-10-25T01:00:29","guid":{"rendered":"https:\/\/jennifersoft.com\/ko\/?p=12521"},"modified":"2024-03-28T15:13:42","modified_gmt":"2024-03-28T06:13:42","slug":"2023-10-25-kubernetes-9","status":"publish","type":"post","link":"https:\/\/jennifersoft.com\/ko\/blog\/kubernetes\/2023-10-25-kubernetes-9\/","title":{"rendered":"09. \uc548\uc804\ud558\uac8c \uce74\ud39c\ud130\ub97c \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95"},"content":{"rendered":"\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/jennifersoft.com\/ko\/wp-content\/uploads\/sites\/2\/2023\/10\/\u1100\u1175\u1109\u116e\u11af\u1107\u1173\u11af\u1105\u1169\u1100\u1173\u110b\u1167\u11ab\u110c\u1162_09_\u110f\u1165\u1107\u1165_231020-1024x576.jpg\" alt=\"\" class=\"wp-image-12526\" srcset=\"https:\/\/jennifersoft.com\/ko\/wp-content\/uploads\/sites\/2\/2023\/10\/\u1100\u1175\u1109\u116e\u11af\u1107\u1173\u11af\u1105\u1169\u1100\u1173\u110b\u1167\u11ab\u110c\u1162_09_\u110f\u1165\u1107\u1165_231020-1024x576.jpg 1024w, https:\/\/jennifersoft.com\/ko\/wp-content\/uploads\/sites\/2\/2023\/10\/\u1100\u1175\u1109\u116e\u11af\u1107\u1173\u11af\u1105\u1169\u1100\u1173\u110b\u1167\u11ab\u110c\u1162_09_\u110f\u1165\u1107\u1165_231020-300x169.jpg 300w, https:\/\/jennifersoft.com\/ko\/wp-content\/uploads\/sites\/2\/2023\/10\/\u1100\u1175\u1109\u116e\u11af\u1107\u1173\u11af\u1105\u1169\u1100\u1173\u110b\u1167\u11ab\u110c\u1162_09_\u110f\u1165\u1107\u1165_231020.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\uce74\ud39c\ud130\ub294 \ub178\ub4dc\uc758 \ube44\uc6a9\uc744 \ucd5c\uc801\ud654\ud558\uae30 \uc704\ud558\uc5ec \ub178\ub4dc\uc758 \uc218\ub7c9\uc744 \uc801\uadf9\uc801\uc73c\ub85c \ubcc0\uacbd\ud569\ub2c8\ub2e4. \uc2e0\uaddc \ud30c\ub4dc\ub97c \uc0dd\uc131\ud558\uae30 \uc704\ud558\uc5ec \uc0c8\ub85c\uc6b4 \ub178\ub4dc\uac00 \uc2e4\ud589\ub418\uba74 \ud30c\ub4dc\uc5d0 \uc124\uc815\ub41c \u2018Request\u2019 \uc6a9\ub7c9\uc5d0 \ub530\ub77c \uac00\uc7a5 \ube44\uc6a9\uc774 \uc800\ub834\ud55c \ub178\ub4dc\ub97c \uc2e0\uaddc\ub85c \uc0dd\uc131\ud558\uace0 \uae30\uc874 \ub178\ub4dc \uc911 \uc0ac\uc6a9\ub7c9\uc774 \ub0ae\uc740 \ub178\ub4dc\ub294 \uc0ad\uc81c\ud558\uc5ec \uae30\uc874 \ub178\ub4dc\uc5d0 \uc2e4\ud589 \uc911\uc778 \ud30c\ub4dc\ub97c \uc0c8\ub85c\uc6b4 \ub178\ub4dc\ub85c \uc774\uc804\ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \uc791\uc5c5\ub3d9\uc548 \uae30\uc874 \ud30c\ub4dc\ub294 \uc0ad\uc81c\ub418\uace0 \uc0c8\ub85c\uc6b4 \ud30c\ub4dc\uac00 \uc2dc\uc791\ud558\ub294\ub370, \ud30c\ub4dc\uac00 \uc7ac\uc2dc\uc791\ub418\uc5b4\ub3c4 \uace0\uac1d \uc11c\ube44\uc2a4\uc5d0 \uc601\ud5a5\uc744 \ubbf8\uce58\uc9c0 \uc54a\uae30 \uc704\ud558\uc5ec \u2018TerminationGracePeriodSeconds\u2019, \u2018PodDisruptionBudget\u2019, \u2018PriorityClass\u2019 \ub4f1\uc758 \uc635\uc158\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. \uc774\ubc88 \uc7a5\uc5d0\uc11c\ub294 \ud574\ub2f9 \uc635\uc158\uc744 \uc54c\uc544\ubd05\ub2c8\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">1. Graceful Shutdown(\uc548\uc815\uc801\uc778 \uc885\ub8cc)<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0ac\uc6a9\uc790\uc758 \uc99d\uac00, \uac10\uc18c\uc5d0 \ub530\ub77c \ud30c\ub4dc \uc624\ud1a0\uc2a4\ucf00\uc77c\ub9c1\uc774 \ubc1c\uc0dd\ud558\uc5ec \ub178\ub4dc \uc218\ub7c9\uc774 \uc99d\uac00, \uac10\uc18c\ud558\uba74 \uce74\ud39c\ud130\ub294 \ube44\uc6a9\uc744 \ucd5c\uc801\ud654\ud558\ub3c4\ub85d \ub178\ub4dc\uc758 \uc218\ub7c9\uacfc \ud0c0\uc785\uc744 \ubcc0\uacbd\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/0K-gndSOdZrPhhB9uYWWmK8Xhl45UQY6BqLI7VHMHoUIYLzHWN7y_oCHIg2j-CICTSIHJKNroJ1NEuoStpcSo5BWl79UKMlWcc-tyva4VGPOVzyB0svJrO-9RnSjeGmt7hWDJ70AVenkYCouBQ86ay8\" alt=\"\"\/><figcaption>\uce74\ud39c\ud130\uc5d0 \uc758\ud55c \uc2e4 \uc11c\ube44\uc2a4 \ub178\ub4dc \uc218\ub7c9 \ubcc0\ud654 \uc608\uc2dc<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uc804 \ud074\ub7ec\uc2a4\ud130 \uc624\ud1a0\uc2a4\ucf00\uc77c\ub7ec\uc5d0 \ube44\ud558\uc5ec \ubcf4\ub2e4 \uc7a6\uc740 \ub178\ub4dc \uc218\ub7c9\uc774 \ubcc0\uacbd\ub429\ub2c8\ub2e4. \uce74\ud39c\ud130\uac00 \uc790\ub3d9\uc73c\ub85c \ub178\ub4dc\ub97c \ubcc0\uacbd\ud558\uc5ec EC2 \ub178\ub4dc \ube44\uc6a9\uc774 \uc774\uc804\uc5d0 \ube44\ud558\uc5ec \uc57d 30% \uac10\uc18c\ud558\uc600\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \ub178\ub4dc\uac00 \uc885\ub8cc\ub418\uba74 \ub178\ub4dc\uc5d0 \uc2e4\ud589 \uc911\uc778 \ud30c\ub4dc\ub3c4 \uac19\uc774 \uc885\ub8cc\ub418\uc5b4 \uc11c\ube44\uc2a4\uc5d0 \uc601\ud5a5\uc744 \ubbf8\uce60 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c \ud30c\ub4dc\uac00 \uc548\uc804\ud558\uac8c \uc885\ub8cc\ub420 \uc218 \uc788\ub3c4\ub85d \uc124\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ucfe0\ubc84\ub124\ud2f0\uc2a4\ub294 \ub178\ub4dc(\ud639\uc740 \uc0ac\uc6a9\uc790)\uac00 \uc885\ub8cc(Terminating) \uc2e0\ud638\ub97c \ubc1b\uc73c\uba74 \ud30c\ub4dc\ub294 \uc544\ub798\uc758 \ud504\ub85c\uc138\uc2a4\uc5d0 \ub530\ub77c \ud30c\ub4dc\ub97c \uc885\ub8cc\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/IBrOLwMyl9cJ77TSrpEQnuLm_ScMGc24V5KkVb4tpdNHltxgWsUUjHCgKx1mzUtMyjgsiL7FV23bn7vbH-sW5j6Gh5IrKfcOdGG0zCPs_AAla9D4Xk4qAOYfPcxTFAQyuvUeBknAYDBwNu-PW0KQ8k0\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/wangwei1237.github.io\/Kubernetes-in-Action-Second-Edition\/docs\/Understanding_the_pod_lifecycle.html\">https:\/\/wangwei1237.github.io\/Kubernetes-in-Action-Second-Edition\/docs\/Understanding_the_pod_lifecycle.html<\/a><\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>\uc0ac\uc6a9\uc790, \ub178\ub4dc \ub4f1\uc5d0\uc11c \uc885\ub8cc \uc2e0\ud638(terminating) \uc2e0\ud638\ub97c \ubc1b\uc73c\uba74 \ud574\ub2f9 \ud30c\ub4dc\ub294 \uc11c\ube44\uc2a4 \uc5d4\ub4dc\ud3ec\uc778\ud2b8(endpoint)\uc5d0\uc11c \uc81c\uc678\ub418\uc5b4 \uc0c8\ub85c\uc6b4 \uc694\uccad\uc744 \ubc1b\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \ucee8\ud2b8\ub864 \ud50c\ub808\uc778\uc758 \u2018etcd\u2019 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\ub3c4 \ud574\ub2f9 \ub178\ub4dc\uc758 \uc0c1\ud0dc\ub294 \u2018terminating\u2019 \uc0c1\ud0dc\ub85c \ubcc0\uacbd\ub429\ub2c8\ub2e4.<\/li><li>\ud30c\ub4dc\uac00 terminating \uc0c1\ud0dc\ub85c \uc804\ud658\ub418\uba74, Kubernetes\ub294 \ud30c\ub4dc \ub0b4\uc758 \ubaa8\ub4e0 \ucee8\ud14c\uc774\ub108\uc5d0\uac8c \u2018preStop\u2019 \ud578\ub4e4\ub7ec\ub97c \uc2e4\ud589\ud558\ub3c4\ub85d \uc694\uccad\ud569\ub2c8\ub2e4. preStop \ud578\ub4e4\ub7ec\ub294 \ud30c\ub4dc\uac00 \uc885\ub8cc\ub418\uae30 \uc804\uc5d0 \ucee8\ud14c\uc774\ub108\uac00 \uc218\ud589\ud574\uc57c \ud560 \uc815\ub9ac \uc791\uc5c5\ub4e4\uc744 \uc2e4\ud589\ud558\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \ucee8\ud14c\uc774\ub108\uac00 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \ubcc0\uacbd \uc0ac\ud56d\uc744 \uc800\uc7a5\ud558\ub294 \ub4f1 \uc885\ub8cc \uc900\ube44\ub97c \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. preStop \uc124\uc815\uc740 \ub9e4\ub2c8\ud398\uc2a4\ud2b8\uc5d0 \ubcc4\ub3c4\ub85c \uc9c0\uc815\ud574\uc57c \ud569\ub2c8\ub2e4.<\/li><li>preStop \ud578\ub4e4\ub7ec \uc2e4\ud589\uc774 \uc644\ub8cc\ub418\uba74, \ucfe0\ubc84\ub124\ud2f0\uc2a4\ub294 \ud574\ub2f9 \ud30c\ub4dc\uc758 \ubaa8\ub4e0 \ucee8\ud14c\uc774\ub108\uc5d0\uac8c SIGTERM \uc2dc\uadf8\ub110\uc744 \ubcf4\ub0c5\ub2c8\ub2e4. SIGTERM\uc740 graceful shutdown\uc744 \uc704\ud55c \uc2dc\uadf8\ub110\ub85c, \ucee8\ud14c\uc774\ub108\uc5d0\uac8c \ud504\ub85c\uc138\uc2a4\ub97c \uc885\ub8cc\ud558\ub3c4\ub85d \uc694\uccad\ud569\ub2c8\ub2e4. \uc774 \uc2dc\uadf8\ub110\uc744 \ubc1b\uc740 \ucee8\ud14c\uc774\ub108\ub294 preStop \uc815\ub9ac \uc791\uc5c5\uc744 \ub9c8\uce58\uace0 \uc790\uc5f0\uc2a4\ub7fd\uac8c \uc885\ub8cc\ud558\ub824\uace0 \uc2dc\ub3c4\ud569\ub2c8\ub2e4.<\/li><li>\ud30c\ub4dc\ub294 \uc774 \ud6c4 \u2018terminationGracePeriodSeconds\u2019\uc5d0 \uc9c0\uc815\ub41c \uc2dc\uac04 \ub3d9\uc548 \ub300\uae30\ud569\ub2c8\ub2e4. \uc774 \uc2dc\uac04 \ub3d9\uc548 \ucee8\ud14c\uc774\ub108\ub294 \uc885\ub8cc \uc900\ube44\ub97c \ub9c8\uce58\ub824\uace0 \ub178\ub825\ud558\uba70, \ud574\ub2f9 \uc2dc\uac04 \ub0b4\uc5d0 \uc885\ub8cc\ub418\uc9c0 \uc54a\uc73c\uba74 \ud30c\ub4dc\ub294 \uac15\uc81c\ub85c \uc885\ub8cc\ub429\ub2c8\ub2e4. \ud30c\ub4dc\uc758 \uae30\ubcf8 \u2018terminationGracePeriodSeconds\u2019 \uc124\uc815 \uc2dc\uac04\uc740 30\ucd08 \uc785\ub2c8\ub2e4. 30\ucd08 \uc774\uc0c1\uc758 \uc2dc\uac04\uc774 \ud544\uc694\ud558\uba74 YAML \ud30c\uc77c \uc124\uc815\uc5d0\uc11c \ubcc0\uacbd\ud569\ub2c8\ub2e4. \ud544\uc790\ub294 4\uc2dc\uac04\uc744 \uc124\uc815\ud558\uae30\ub3c4 \ud569\ub2c8\ub2e4.<\/li><li>\u2018terminationGracePeriodSeconds\u2019 \uc2dc\uac04\uc774 \uc9c0\ub09c \ud6c4\uc5d0\ub3c4 \ucee8\ud14c\uc774\ub108\uac00 \uc885\ub8cc\ub418\uc9c0 \uc54a\uc73c\uba74, \ucfe0\ubc84\ub124\ud2f0\uc2a4\ub294 \u2018SIGKILL\u2019 \uc2dc\uadf8\ub110\uc744 \ubcf4\ub0b4\uc11c \uac15\uc81c\ub85c \ucee8\ud14c\uc774\ub108\ub97c \uc885\ub8cc\ud569\ub2c8\ub2e4. \u2018SIGKILL\u2019\uc740 \uac15\uc81c \uc885\ub8cc \uc2dc\uadf8\ub110\ub85c, \ucee8\ud14c\uc774\ub108\uac00 \uc815\ud574\uc9c4 \uc2dc\uac04\uc5d0 \uc885\ub8cc\ub418\uc9c0 \uc54a\uc744 \uacbd\uc6b0 \uc0ac\uc6a9\ub429\ub2c8\ub2e4.<\/li><\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">\uae30\uc874 \uc138\uc158\uc774 \uc720\uc9c0\ub418\uc5b4\uc57c \ud558\ub294 VoIP \ub4f1\uc758 \uc804\ud654 \uc11c\ube44\uc2a4\uc758 \uacbd\uc6b0 \uc138\uc158\uc744 \uc815\uc0c1 \uc885\ub8cc\ud574\uc57c \ud569\ub2c8\ub2e4. \ub9cc\uc57d \uce74\ud39c\ud130\uc5d0 \uc758\ud558\uc5ec \ub178\ub4dc\uac00 \uc885\ub8cc\ub418\uc5b4 \ud30c\ub4dc\uac00 \ube44\uc815\uc0c1 \uc885\ub8cc\ub418\uba74 \uc0ac\uc6a9\uc790\uc758 \uc804\ud654\uac00 \ub04a\uc5b4\uc9c0\ubbc0\ub85c \uc7a5\uc560 \uc0c1\ud669\uc785\ub2c8\ub2e4. \uc804\ud654\ud558\uace0 \uc788\ub294 \uace0\uac1d\uc758 \uc11c\ube44\uc2a4 \uc138\uc158\uc744 \ub05d\uae4c\uc9c0 \uc720\uc9c0\ud558\ub294\uac8c \ud544\uc694\ud569\ub2c8\ub2e4. \ub530\ub77c\uc11c \uc774\uc640 \uac19\uc740 \uc11c\ube44\uc2a4\uc758 \uc124\uc815\uc740 1) VoIP \ub4f1 \uc804\ud654 \ud1b5\ud654\uc640 \uad00\ub828 \ud30c\ub4dc\ub294 \ubcc4\ub3c4 \uc804\uc6a9 \ub178\ub4dc\uc5d0\uc11c \uc2e4\ud589\ud558\uace0 2) \ud30c\ub4dc\uac00 \uc885\ub8cc\ub418\ub294 \u2018terminationGracePeriodSeconds\u2019 \uc2dc\uac04 \uc124\uc815\uc744 4\uc2dc\uac04(14,400s) \ub4f1\uc73c\ub85c \ub109\ub109\ud558\uac8c \uc124\uc815\ud558\uc5ec \ubaa8\ub4dc \uc138\uc158\uc744 \uc815\uc0c1 \uc885\ub8cc\ud558\uace0 \ud30c\ub4dc\uac00 \uc885\ub8cc\ud558\ub3c4\ub85d \uc124\uc815\ud569\ub2c8\ub2e4. \ud30c\ub4dc\uac00 \uc885\ub8cc \uc2e0\ud638\ub97c \ubc1b\uc544\ub3c4 4\uc2dc\uac04\uc758 \ucd94\uac00 \uc2dc\uac04\uc744 \ub450\uc5b4 \ud574\ub2f9 \uc2dc\uac04\uc5d0 \uae30\uc874 \ud1b5\ud654\uac00 \uc885\ub8cc\ub418\ub3c4\ub85d \uae30\ub2e4\ub9bd\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\uc2dc\ub85c \uc54c\uc544\ubd05\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/junghoon2\/k8s-class\/blob\/main\/karpenter\/busybox-graceful-shutdown-pod.yaml\">busybox-graceful-shutdown-pod.yaml<\/a>&nbsp;<br><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">apiVersion: v1\nkind: Pod\nmetadata:\n  name: pods-termination-grace-period-seconds\nspec:\n  containers:\n  - command:\n    - sleep\n    - \"3600\"\n    image: busybox\n    name: pods-termination-grace-period-seconds\n  terminationGracePeriodSeconds: 5 # Time to wait before moving from a TERM signal to the pod's main process to a KILL signal.<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">terminationGracePeriodSeconds \uc2dc\uac04\uc744 5\ucd08\ub85c \uc9c0\uc815\ud558\uc600\uc2b5\ub2c8\ub2e4. \ud574\ub2f9 \ud30c\ub4dc\ub294 \uc885\ub8cc \uc694\uccad\uc744 \ubc1b\uc73c\uba74 \ubc14\ub85c \uc0ad\uc81c\ub418\uc9c0 \uc54a\uace0 5\ucd08 \ub3d9\uc548 \uc815\uc0c1 \uc885\ub8cc\ub420 \ub54c\uae4c\uc9c0 \uae30\ub2e4\ub838\ub2e4\uac00 \uc0ad\uc81c\ud569\ub2c8\ub2e4. \ud30c\ub4dc\ub97c \uc885\ub8cc\ud558\uc5ec 5\ucd08\ub3d9\uc548 \uc720\uc9c0\ud558\ub294\uc9c0 \uc54c\uc544\ubd05\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud574\ub2f9 busybox \ud30c\ub4dc\ub97c \uc2e4\ud589\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(jerry-test:default)k8s-class:jerry$ cd karpenter\/\n(jerry-test:default)k8s-class:jerry$ k apply -f busybox-graceful-shutdown-pod.yaml\npod\/pods-termination-grace-period-seconds created<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud30c\ub4dc\ub97c \uc885\ub8cc\ud558\uace0 \ub2e4\ub978 \ucc3d\uc5d0\uc11c \u2018k get pod -w(wait)\u2019 \uba85\ub839\uc5b4\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\uc2dc\uac04\uc73c\ub85c \ud30c\ub4dc\uc758 \ubcc0\uacbd \uc0ac\ud56d\uc744 \ud655\uc778\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(jerry-test:default)k8s-class:jerry$ k delete pod pods-termination-grace-period-seconds\npod \"pods-termination-grace-period-seconds\" deleted<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(jerry-test:default)k8s-class:jerry$ k get pod -w\nNAME                                    READY   STATUS    RESTARTS   AGE   IP       NODE     NOMINATED NODE   READINESS GATES\npods-termination-grace-period-seconds   1\/1     Running             0          3s    10.110.42.118   ip-10-110-47-109.ap-southeast-1.compute.internal   &lt;none>           &lt;none>\n\npods-termination-grace-period-seconds   1\/1     Terminating         0          14s   10.110.42.118   ip-10-110-47-109.ap-southeast-1.compute.internal   &lt;none>           &lt;none>\n\npods-termination-grace-period-seconds   0\/1     Terminating         0          20s   10.110.42.118   ip-10-110-47-109.ap-southeast-1.compute.internal   &lt;none>           &lt;none><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc704\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\ub4ef\uc774 Terminating(1\/1) \uba85\ub839\uc744 \ubc1b\uace0 5\ucd08 \ud6c4\uc5d0 \uc644\uc804\ud788 \uc885\ub8cc Terminating(0\/1)\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ubc14\ub85c \uc885\ub8cc\ub418\uc9c0 \uc54a\uace0 5\ucd08\uc758 \uc720\uc608 \uc2dc\uac04\uc744 \uc720\uc9c0\ud569\ub2c8\ub2e4. \uc704\uc640 \uac19\uc774 \uae30\uc874 \uc138\uc158\uc744 \uc720\uc9c0\ud574\uc57c \ud558\ub294 \uc11c\ube44\uc2a4\ub294 \u2018terminationGracePeriodSeconds\u2019 \uc635\uc158\uc744 \uc124\uc815\ud558\uc5ec \ud544\uc694\ud55c \uc2dc\uac04\ub9cc\ud07c \uae30\uc874 \uc11c\ube44\uc2a4\uac00 \uc644\uc804\ud788 \uc815\uc0c1 \uc885\ub8cc\ub418\uae30\ub97c \uae30\ub2e4\ub9ac\ub3c4\ub85d \ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud544\uc790\ub294 \ud30c\ub4dc\uac00 \uc885\ub8cc\ub418\uc5b4\ub3c4 \uae30\uc874 \uc138\uc158\uc744 \uc720\uc9c0\ud574\uc57c \ud558\ub294 \uc804\uccb4 \uc11c\ube44\uc2a4 \ud30c\ub4dc\uc5d0 Graceful Shutdown \uc124\uc815\uc744 \ucd94\uac00\ud558\uc600\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>2. PodDisruptionBudget \uc124\uc815<\/strong><br><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\uce74\ud39c\ud130\uac00 \ub178\ub4dc\ub97c \uc911\ub2e8\ud558\uba74 \ud574\ub2f9 \ub178\ub4dc\uc5d0 \uc2e4\ud589 \uc911\uc778 \ud30c\ub4dc\ub294 \uc885\ub8cc\ub418\uace0 \ub2e4\ub978 \ub178\ub4dc\uc5d0\uc11c \uc0c8\ub85c\uc6b4 \ud30c\ub4dc\uac00 \uc2e4\ud589\ub429\ub2c8\ub2e4. \uc885\ub8cc \uba85\ub839\uc744 \ubc1b\uc740 \ud30c\ub4dc\ub294 \uba3c\uc800 Terminating \uc0c1\ud0dc\ub85c \ub4e4\uc5b4\uac00\uace0 \ub2e4\uc74c \uc2e4\ud589 \uac00\ub2a5\ud55c \ub2e4\ub978 \ub178\ub4dc\uc5d0\uc11c \uc2e4\ud589(Running)\ub429\ub2c8\ub2e4. \uba3c\uc800 Terminating \ub418\uace0 \ub2e4\uc74c \ud30c\ub4dc\ub97c \uc2e4\ud589\ud558\ubbc0\ub85c \uae30\uc874 \ud30c\ub4dc\uac00 \uc885\ub8cc\ub418\uace0 \uc0c8\ub85c\uc6b4 \ud30c\ub4dc\uac00 \uc2e4\ud589\ud558\ub294 \uc2dc\uac04(Terminating -&gt; Running)\ub3d9\uc548 \uc11c\ube44\uc2a4 \uc911\ub2e8 \ud604\uc0c1\uc774 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc21c\ub2e8\uc774\uc9c0\ub9cc \uc11c\ube44\uc2a4 \uc911\ub2e8\uc740 \uc7a5\uc560\uc774\ubbc0\ub85c \uc11c\ube44\uc2a4 \uc911\ub2e8\uc774 \ubc1c\uc0dd\ud558\uc9c0 \uc54a\ub3c4\ub85d \ucfe0\ubc84\ub124\ud2f0\uc2a4\uc5d0\uc11c PodDisruptionBudget(\ud30c\ub4dc \uc911\ub2e8 \uc608\uc0b0) \uc124\uc815\uc744 \ucd94\uac00\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PodDisruptionBudget(\uc774\ud558 PDB)\uc740 \ud30c\ub4dc\uc758 \uc911\ub2e8\uc744 \uc81c\uc5b4\ud558\ub294 \uc815\ucc45\uc785\ub2c8\ub2e4. PDB\ub97c \uc0ac\uc6a9\ud558\uba74 \ud074\ub7ec\uc2a4\ud130 \ub0b4\uc758 \ud30c\ub4dc \uc911\ub2e8 \uc2dc\uc810\uc5d0 \ub300\ud55c \uc81c\ud55c\uc744 \uc124\uc815\ud558\uc5ec, \ud2b9\uc815 \ud30c\ub4dc\uac00 \uc911\ub2e8\ub418\ub294 \ub3d9\uc548 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uac00\uc6a9\uc131\uacfc \uc548\uc815\uc131\uc744 \uc720\uc9c0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PDB\ub97c \uc774\ud574\ud558\uae30 \uc704\ud574 \ub2e4\uc74c\uacfc \uac19\uc740 \uc2dc\ub098\ub9ac\uc624\ub97c \uc0dd\uac01\ud574\ubd05\uc2dc\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uac00\uc815:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\ud074\ub7ec\uc2a4\ud130\uc5d0 \uc6f9 \uc11c\ube44\uc2a4\ub97c \uc81c\uacf5\ud558\ub294 3\uac1c\uc758 \ud30c\ub4dc\uac00 \uc788\uc2b5\ub2c8\ub2e4.<\/li><li>\uc774 \uc11c\ube44\uc2a4\ub294 \uac00\uc6a9\uc131\uc744 \uc704\ud574 3\uac1c\uc758 \ud30c\ub4dc\uac00 \ubaa8\ub450 \uc791\ub3d9 \uc911\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/li><li>\ub9cc\uc57d 2\uac1c \uc774\uc0c1\uc758 \ud30c\ub4dc\uac00 \ub3d9\uc2dc\uc5d0 \uc911\ub2e8\ub41c\ub2e4\uba74, \uc11c\ube44\uc2a4\uac00 \uc911\ub2e8\ub418\uac70\ub098 \uc7a5\uc560\uac00 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub7f0 \uc0c1\ud669\uc744 \ubc29\uc9c0\ud558\uae30 \uc704\ud574 PDB\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. PDB\ub97c \uc124\uc815\ud558\uc5ec \ub2e4\uc74c \uaddc\uce59\uc744 \uc815\uc758\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<br><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>MinAvailable: \ucd5c\uc18c\ud55c\uc73c\ub85c \uc720\uc9c0\ud574\uc57c \ud558\ub294 \ud30c\ub4dc\uc758 \uac1c\uc218\ub97c \uc9c0\uc815\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, MinAvailable: 2\ub85c \uc124\uc815\ud558\uba74 \ucd5c\uc18c 2\uac1c\uc758 \ud30c\ub4dc\uac00 \ud56d\uc0c1 \uc791\ub3d9 \uc911\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/li><li>MaxUnavailable: \ub3d9\uc2dc\uc5d0 \uc911\ub2e8\ub420 \uc218 \uc788\ub294 \ucd5c\ub300 \ud30c\ub4dc\uc758 \uac1c\uc218\ub97c \uc9c0\uc815\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \u2018MaxUnavailable: 1\u2019\ub85c \uc124\uc815\ud558\uba74 \ub3d9\uc2dc\uc5d0 1\uac1c\uc758 \ud30c\ub4dc\ub9cc \uc911\ub2e8\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\uc704\uc640 \uac19\uc774 \uc11c\ube44\uc2a4 \ud2b9\uc131\uc5d0 \ub9de\uac8c PDB\ub97c \uc801\uc808\ud558\uac8c \uc124\uc815\ud558\uc5ec \uc548\uc815\uc801\uc73c\ub85c \uc11c\ube44\uc2a4\ub97c \uc81c\uacf5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub7fc, \uc2e4\uc2b5\uc73c\ub85c \uc54c\uc544\ubd05\ub2c8\ub2e4. \uc2e4\uc2b5 \uc2dc\ub098\ub9ac\uc624\ub294 \ud558\ub098\uc758 \ub178\ub4dc\uc5d0 2\uac1c\uc758 \ud30c\ub4dc\ub97c \uc2e4\ud589\ud558\uace0 \ud574\ub2f9 \ud30c\ub4dc\uc5d0 PDB\ub97c \uc124\uc815\ud569\ub2c8\ub2e4. \ud574\ub2f9 \ub178\ub4dc\ub97c Drain(\ub2e4\ub978 \ub178\ub4dc\ub85c \uc774\uc804)\ud558\uc5ec \ud574\ub2f9 \ub178\ub4dc\uc758 \ud30c\ub4dc\ub97c \ub2e4\ub978 \ub178\ub4dc\ub85c \uc774\ub3d9\ud569\ub2c8\ub2e4. \uc774\ub54c PDB\ub97c \uc124\uc815\ud558\uba74 \ud558\ub098(minAvailable)\uc758 \ud30c\ub4dc\ub294 \ub118\uc5b4\uac00\uc9c0 \uc54a\uace0 \ud574\ub2f9 \ub178\ub4dc\uc5d0\uc11c \uacc4\uc18d \uc2e4\ud589\ub429\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uba3c\uc800 \uc2e4\uc2b5 \uc6a9 Deployment \ub9ac\uc18c\uc2a4\ub97c \uc815\uc758\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/junghoon2\/k8s-class\/blob\/main\/podDisruptionBudget\/busybox-nodeSelector-deploy.yaml\">busybox-nodeSelector.yaml<\/a><br><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">apiVersion: apps\/v1\nkind: Deployment\nmetadata:\n  name: busybox\n  labels:\n    app: busybox\nspec:\n  replicas: 2\n  selector:\n    matchLabels:\n      app: busybox\n  template:\n    metadata:\n      labels:\n        app: busybox\n    spec:\n      containers:\n      - command:\n        - sleep\n        - \"3600\"\n        image: busybox\n        name: busybox\n      nodeSelector:\n        kubernetes.io\/hostname: ip-10-110-47-109.ap-southeast-1.compute.internal<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uae30\uc874\uc5d0 \uc0ac\uc6a9\ud55c Busybox Deployment \ub9e4\ub2c8\ud398\uc2a4\ud2b8\uc640 \ub3d9\uc77c\ud558\uc9c0\ub9cc \u2018nodeSelector\u2019 \uc635\uc158\uc744 \ucd94\uac00\ud558\uc600\uc2b5\ub2c8\ub2e4. nodeSelector\ub294 \uc774\ub984\uc5d0\uc11c \uc720\ucd94\ud560 \uc218 \uc788\ub4ef\uc774 \uc9c0\uc815\ud55c \ub178\ub4dc\uc5d0 \ud30c\ub4dc\ub97c \uc2e4\ud589\ud558\ub294 \uc635\uc158\uc785\ub2c8\ub2e4. \uc704 \uc608\uc2dc\ub294 \ud2b9\uc815 \ud638\uc2a4\ud2b8\ub124\uc784\uc744 \uac16\ub294 \ub178\ub4dc(ip-10-110-47-109.ap-southeast-1.compute.internal)\uc5d0 \ud30c\ub4dc\ub97c \uc2e4\ud589\ud558\ub294 \uc124\uc815\uc785\ub2c8\ub2e4. \uac01\uc790 EKS \ub178\ub4dc\uc758 \ud638\uc2a4\ud2b8 \ub124\uc784\uc744 \uc785\ub825\ud558\uc5ec \ub9e4\ub2c8\ud398\uc2a4\ud2b8 \ud30c\uc77c\uc744 \uc218\uc815\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PDB \uc5ed\uc2dc \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ub9ac\uc18c\uc2a4\ub85c YAML \ud30c\uc77c\ub85c \uc2e4\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc124\uc815\uc740 \uc544\ub798\uc640 \uac19\uc774 \ub9e4\uc6b0 \uac04\ub2e8\ud569\ub2c8\ub2e4.&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/junghoon2\/k8s-class\/blob\/main\/podDisruptionBudget\/busybox-pdb.yaml\">busybox-pdb.yaml<\/a><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">apiVersion: policy\/v1\nkind: PodDisruptionBudget\nmetadata:\n  name: busybox\n  namespace: default\nspec:\n  minAvailable: 1\n  selector:\n    matchLabels:\n      app: busybox<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">. spec.minAvailable: 1<br>\ucd5c\uc18c \uac00\uc6a9\ud55c \ud30c\ub4dc\uc758 \uac1c\uc218\uc785\ub2c8\ub2e4. \ud30c\ub4dc\uac00 \uc885\ub8cc\ub418\uc5b4\ub3c4 \ud56d\uc0c1 \ucd5c\uc18c\ud55c \uc2e4\ud589\ub418\uc5b4\uc57c \ud558\ub294 \ud30c\ub4dc\uc758 \uc218\ub7c9\uc785\ub2c8\ub2e4. \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ud2b9\uc131\uc5d0 \ub530\ub77c \uc801\uc808\ud558\uac8c \uc218\ub7c9\uc744 \uc870\uc815\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. spec.selector.matchLabels<br>PDB\ub97c \uc801\uc6a9\ud558\ub294 \ud30c\ub4dc\ub97c \uc9c0\uc815\ud569\ub2c8\ub2e4. \uc11c\ube44\uc2a4 \ub9ac\uc18c\uc2a4\uac00 \ud30c\ub4dc\ub97c \uc9c0\uc815\ud560 \ub54c selector\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\uacfc \ub3d9\uc77c\ud558\uac8c Label \uae30\uc900\uc73c\ub85c Target \ud30c\ub4dc\ub97c \uc9c0\uc815\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc704 2\uac1c\uc758 \ub9ac\uc18c\uc2a4\ub97c \ubc30\ud3ec\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(jerry-test:default)k8s-class:jerry$ cd podDisruptionBudget\/\n(jerry-test:default)k8s-class:jerry$ k apply -f busybox-pdb.yaml -f busybox-nodeSelector-deploy.yaml \npoddisruptionbudget.policy\/busybox created\ndeployment.apps\/busybox created<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u2018PodDisruptionBudget\u2019\uc740 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ub9ac\uc18c\uc2a4\ub85c \uc544\ub798 \uba85\ub839\uc5b4\ub85c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(jerry-test:default)k8s-class:jerry$ k get pdb\nNAME      MIN AVAILABLE   MAX UNAVAILABLE   ALLOWED DISRUPTIONS   AGE\nbusybox   1               N\/A  <\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0c1\uc138\ud55c \uc815\ubcf4\ub97c \ud655\uc778\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(jerry-test:default)k8s-class:jerry$ k describe pdb busybox \nName:           busybox\nNamespace:      default\nMin available:  1\nSelector:       app=busybox\nStatus:\n    Allowed disruptions:  1\n    Current:              2\n    Desired:              1\n    Total:                2\n(\uc0dd\ub7b5)<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">. Selector<br>Label(app=busybox) \uae30\uc900\uc73c\ub85c PDB\uac00 \uc801\uc6a9\ub420 \ub9ac\uc18c\uc2a4\ub97c \uc120\ud0dd\ud558\uc600\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. Status: Allowed disruptions:&nbsp; 1<br>\uc911\ub2e8(disruptions) \uac00\ub2a5\ud55c \ud30c\ub4dc\uc758 \uc218\ub7c9\uc774 \u20181\u2019\uc785\ub2c8\ub2e4. Target \ub300\uc0c1\uc778 busybox \ud30c\ub4dc\ub97c 1\uac1c\uae4c\uc9c0 \uc885\ub8cc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PDB, \ub514\ud50c\ub85c\uc774\uba3c\ud2b8 \ub9ac\uc18c\uc2a4\uac00 \uc2e4\ud589 \uc911\uc785\ub2c8\ub2e4. \uc774\uc81c \ub178\ub4dc\ub97c \uc885\ub8cc\ud558\uc5ec PDB\uac00 \uc815\uc0c1 \ub3d9\uc791\ud558\ub294\uc9c0 \ud655\uc778\ud569\ub2c8\ub2e4. \ub178\ub4dc\uc5d0 \uc2e4\ud589 \uc911\uc778 \ud30c\ub4dc\ub97c \ub2e4\ub978 \ub178\ub4dc\ub85c \uac15\uc81c \uc774\ub3d9\ud558\ub294 \u2018drain\u2019 \uba85\ub839\uc5b4\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uce74\ud39c\ud130\ub294 \ub178\ub4dc\uc758 \uc218\ub7c9\uc744 \ucd5c\uc801\ud654\ud558\ub294 \u2018consolidation\u2019(\ud1b5\ud569) \uacfc\uc815\uc744 \uc9c4\ud589\ud558\uba74 \ud574\ub2f9 \ub178\ub4dc\uc5d0 \ud30c\ub4dc\ub97c \uc2e4\ud589\ud558\uc9c0 \ubabb\ud558\ub3c4\ub85d \ub9c9\uace0(cordon) \ud574\ub2f9 \ub178\ub4dc\uc758 \ud30c\ub4dc\ub97c \ub2e4\ub978 \ub178\ub4dc\ub85c \uc774\ub3d9(drain)\ud558\ub294 \ub2e8\uacc4\ub97c \uc9c4\ud589\ud569\ub2c8\ub2e4. \ud574\ub2f9 \uc0c1\ud669\uc744 \uc7ac\ud604\ud558\uae30 \uc704\ud558\uc5ec busybox \ud30c\ub4dc\uac00 \uc2e4\ud589 \uc911\uc778 \ub178\ub4dc\ub97c drain \ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uba3c\uc800, \ud30c\ub4dc\uac00 \uc2e4\ud589 \uc911\uc778 \ub178\ub4dc \uc815\ubcf4\ub97c \ud655\uc778\ud569\ub2c8\ub2e4. <br><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(jerry-test:default)k8s-class:jerry$ k get pod -o wide\nNAME                       READY   STATUS    RESTARTS   AGE     IP              NODE                                               NOMINATED NODE   READINESS GATES\nbusybox-5784bfcbcd-2p9cj   1\/1     Running   0          8m31s   10.110.37.91    ip-10-110-47-109.ap-southeast-1.compute.internal   &lt;none>           &lt;none>\nbusybox-5784bfcbcd-gnf9l   1\/1     Running   0          8m31s   10.110.39.167   ip-10-110-47-109.ap-southeast-1.compute.internal   &lt;none>           &lt;none><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">nodeSelector \uc124\uc815\uc73c\ub85c 2\uac1c\uc758 \ud30c\ub4dc \ubaa8\ub450 ip-10-110-47-109.ap-southeast-1.compute.internal \ub178\ub4dc\uc5d0\uc11c \uc2e4\ud589 \uc911\uc785\ub2c8\ub2e4. \ud574\ub2f9 \ub178\ub4dc\ub97c drain \ud569\ub2c8\ub2e4. k drain \uba85\ub839\uc5b4 \uc218\ud589 \uc2dc &#8211;ignore-daemonsets, &#8211;delete-emptydir-data \uc635\uc158\uc744 \ucd94\uac00\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(jerry-test:default)k8s-class:jerry$ k drain ip-10-110-47-109.ap-southeast-1.compute.internal --ignore-daemonsets --delete-emptydir-data \nnode\/ip-10-110-47-109.ap-southeast-1.compute.internal cordoned\n(\uc0dd\ub7b5)\nerror when evicting pods\/\"busybox-5784bfcbcd-2p9cj\" -n \"default\" (will retry after 5s): Cannot evict pod as it would violate the pod's disruption budget.\n(\uc0dd\ub7b5)\nerror when evicting pods\/\"busybox-5784bfcbcd-2p9cj\" -n \"default\" (will retry after 5s): Cannot evict pod as it would violate the pod's disruption budget.\n(\uc0dd\ub7b5)<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">&#8211;ignore-daemonsets\uc740 \ud574\ub2f9 \ub178\ub4dc\uc5d0\uc11c \uc2e4\ud589 \uc911\uc778 \ub370\ubaac\uc14b \ud30c\ub4dc\ub97c \uc885\ub8cc\ud558\ub294 \uc635\uc158\uc774\uace0 &#8211;delete-emptydir-data\ub294 \ud2b9\uc815 \ud30c\ub4dc\uac00 \ub178\ub4dc\uc758 \uc784\uc2dc \ub514\ub809\ud1a0\ub9ac\ub97c \uc0ac\uc6a9\ud558\ub294\ub370 \ub178\ub4dc\uac00 \uc0ad\uc81c\ub418\uba74 \ud574\ub2f9 \ub370\uc774\ud130\ub97c \uc0ac\uc6a9\ud558\uc9c0 \ubabb\ud55c\ub2e4\ub294 \uacbd\uace0 \uba54\uc138\uc9c0\uc785\ub2c8\ub2e4. \ub2e4\ub978 \ub178\ub4dc\uc5d0\uc11c \ud30c\ub4dc\uac00 \uc7ac\uc2dc\uc791\ub418\uc5b4\ub3c4 \ub418\ub294 \ud30c\ub4dc\uc784\uc744 \ud655\uc778\ud558\uace0 \ud574\ub2f9 \uc635\uc158\uc744 \ucd94\uac00\ud558\uc5ec \uba85\ub839\uc5b4\ub97c \uc218\ud589\ud569\ub2c8\ub2e4.&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">drain \uba85\ub839\uc5b4 \uc2e4\ud589 \uc2dc \ucd9c\ub825\ub418\ub294 \uba54\uc2dc\uc9c0\ub97c \ud655\uc778\ud558\uba74 \u2018busybox-5784bfcbcd-2p9cj\u2019 \ud30c\ub4dc\uac00 Evict(\ucd95\ucd9c) \uc989 \ub2e4\ub978 \ub178\ub4dc\ub85c \uc774\ub3d9\ud560 \uc218 \uc5c6\ub2e4\uace0 \ud569\ub2c8\ub2e4. PDB \uc124\uc815\uc73c\ub85c \ud558\ub098\uc758 \ud30c\ub4dc\ub294 \ubc18\ub4dc\uc2dc \uc2e4\ud589\ub418\uc5b4\uc57c \ud558\ubbc0\ub85c \ub2e4\ub978 \ub178\ub4dc\ub85c \ud574\ub2f9 \ud30c\ub4dc\uac00 \uc774\ub3d9\ud558\uc9c0 \ubabb\ud55c\ub2e4\ub294 \uc758\ubbf8\uc785\ub2c8\ub2e4.&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\ub978 \ud130\ubbf8\ub110 \ucc3d\uc5d0\uc11c \ud655\uc778\ud558\uba74 \ud558\ub098\uc758 busybox \ud30c\ub4dc\ub294 \uacc4\uc18d \uc2e4\ud589 \uc911 \uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(jerry-test:default)k8s-class:jerry$ k get pod -o wide\nNAME                       READY   STATUS    RESTARTS   AGE     IP             NODE                                               NOMINATED NODE   READINESS GATES\nbusybox-5784bfcbcd-2p9cj   1\/1     Running   0          12m     10.110.37.91   ip-10-110-47-109.ap-southeast-1.compute.internal   &lt;none>           &lt;none>\nbusybox-5784bfcbcd-5d4cc   0\/1     Pending   0          2m24s   &lt;none>         &lt;none>                                             &lt;none>           &lt;none><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uc640 \uac19\uc774 PDB\ub97c \uc124\uc815\ud558\uba74 \uce74\ud39c\ud130\uac00 \ub178\ub4dc\ub97c \uc885\ub8cc\ud558\uc5ec\ub3c4 minAvailable \uc124\uc815\uc5d0 \ud574\ub2f9\ud558\ub294 \ud30c\ub4dc\ub294 \ubc18\ub4dc\uc2dc \uc2e4\ud589\ub429\ub2c8\ub2e4. \uc11c\ube44\uc2a4\ub97c \uc548\uc815\uc801\uc73c\ub85c \uc6b4\uc601\ud558\uae30 \uc704\ud574 \uaf2d \ud544\uc694\ud55c \uae30\ubcf8 \uc124\uc815\uc73c\ub85c \ud544\uc790\ub294 \ud574\ub2f9 \uc124\uc815\uc744 \uc2e4 \uc6b4\uc601 \ud658\uacbd \uc11c\ube44\uc2a4\uc5d0 \uc0ac\uc6a9\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uce74\ud39c\ud130 \uc0ac\uc6a9 \ud658\uacbd\uc5d0\uc11c \ubc18\ub4dc\uc2dc \uc124\uc815\ud558\uae30 \uad8c\uace0\ud558\ub294 \uc635\uc158\uc785\ub2c8\ub2e4. \ub2e4\uc74c\uc740 \uc2e4\uc2b5\uc5d0 \uc0ac\uc6a9\ud55c drain \ub4f1 \ub178\ub4dc \uc2a4\ucf00\uc974\ub9c1\uc5d0 \uad00\ud55c \uba85\ub839\uc5b4\ub97c \ubcf4\ub2e4 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>3. \ub178\ub4dc \uc2a4\ucf00\uc904\ub9c1 \uc124\uc815 &#8211; drain, cordon, uncordon<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\ucfe0\ubc84\ub124\ud2f0\uc2a4\ub294 \ud074\ub7ec\uc2a4\ud130\uc758 \ub178\ub4dc\ub97c \uc720\uc5f0\ud558\uac8c \uad00\ub9ac\ud558\uace0, \ud30c\ub4dc\uc758 \uc774\ub3d9\uacfc \uc2a4\ucf00\uc904\ub9c1\uc744 \uc870\uc808\ud558\uc5ec \uc548\uc815\uc131\uacfc \uac00\uc6a9\uc131\uc744 \ubcf4\uc7a5\ud560 \uc218 \uc788\ub3c4\ub85d \u2018drain, \u2018cordon\u2019, \u2018uncordon\u2019 \uba85\ub839\uc5b4\ub97c \uc9c0\uc6d0\ud569\ub2c8\ub2e4.&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">drain \uba85\ub839\uc740 \ub178\ub4dc\ub97c \uc548\uc804\ud558\uac8c \ube44\ud65c\uc131\ud654\ud558\uace0, \ud574\ub2f9 \ub178\ub4dc\uc758 \ud30c\ub4dc\ub97c \ub2e4\ub978 \ub178\ub4dc\ub85c \ub9c8\uc774\uadf8\ub808\uc774\uc158\ud558\ub294\ub370 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uc774\ub294 \ub178\ub4dc\uc758 \uc815\ube44, \ud074\ub7ec\uc2a4\ud130 \ubc84\uc804 \uc5c5\uadf8\ub808\uc774\ub4dc, \ub178\ub4dc\uc758 \uc7a5\uc560 \ub4f1\uc758 \uc0c1\ud669\uc5d0\uc11c \ub9e4\uc6b0 \uc720\uc6a9\ud569\ub2c8\ub2e4. \uc2e4\ubb34\uc5d0\uc11c \ud2b9\uc815 \ub178\ub4dc\uc5d0 \uc7a5\uc560\uac00 \ubc1c\uc0dd\ud558\uc5ec \ud574\ub2f9 \ub178\ub4dc\uc758 \ud30c\ub4dc\ub97c \ub2e4\ub978 \ub178\ub4dc\ub85c \uc62e\uae30\uac70\ub098 \ud074\ub7ec\uc2a4\ud130 \ubc84\uc804\uc744 \uc5c5\uadf8\ub808\uc774\ub4dc \ud560 \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. (drain \uc2e4\uc2b5\uc740 \uc704\uc5d0\uc11c \uc9c4\ud589\ud558\uc5ec \ucd94\uac00 \uc9c4\ud589\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.)<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\uc74c\uc73c\ub85c \u2018cordon\/uncordon\u2019 \uba85\ub839\uc740 \ub178\ub4dc\uc758 \uc2a4\ucf00\uc904\ub9c1 \uc0c1\ud0dc\ub97c \uc870\uc808\ud558\uae30 \uc704\ud574 \uc0ac\uc6a9\ud558\ub294\ub294 \uba85\ub839\uc5b4\uc785\ub2c8\ub2e4. \ub178\ub4dc\uc758 \uc2a4\ucf00\uc904\ub9c1 \uc0c1\ud0dc\ub97c \ubcc0\uacbd\ud558\uc5ec \uc0c8\ub85c\uc6b4 \ud30c\ub4dc\uc758 \uc2a4\ucf00\uc904\ub9c1\uc744 \ud5c8\uc6a9\ud558\uac70\ub098 \ub9c9\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub178\ub4dc\ub97c cordon\ud558\uba74 \ud574\ub2f9 \ub178\ub4dc\uc5d0 \ub354 \uc774\uc0c1 \uc0c8\ub85c\uc6b4 \ud30c\ub4dc\uac00 \uc2a4\ucf00\uc904\ub9c1\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. cordon\uc740 \uc8fc\ub85c \ub178\ub4dc\uc758 \uc7a5\uc560, \uc815\ube44, \uc5c5\uadf8\ub808\uc774\ub4dc \ub4f1\uc73c\ub85c \uc778\ud574 \ud574\ub2f9 \ub178\ub4dc\ub97c \uc77c\uc2dc\uc801\uc73c\ub85c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uace0\uc790 \ud560 \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">cordon \uc791\uc5c5\uc774 \uc885\ub8cc\ub418\uba74 uncordon \uba85\ub839\uc5b4\ub97c \uc218\ud589\ud569\ub2c8\ub2e4. cordon\uc73c\ub85c \uc2a4\ucf00\uc904\ub9c1\uc774 \uc911\ub2e8\ub41c \ub178\ub4dc\ub97c \ub2e4\uc2dc \ud65c\uc131\ud654\ud558\uc5ec, \ud574\ub2f9 \ub178\ub4dc\uc5d0 \uc0c8\ub85c\uc6b4 \ud30c\ub4dc\uc758 \uc2a4\ucf00\uc904\ub9c1\uc744 \ub2e4\uc2dc \ud5c8\uc6a9\ud569\ub2c8\ub2e4. cordon \uc0c1\ud0dc\uc5d0\uc11c \ub178\ub4dc\ub97c \uc7a5\uc560\ub85c\ubd80\ud130 \ud68c\ubcf5\ud558\uac70\ub098, \uc815\ube44\uac00 \uc644\ub8cc\ub418\uc5b4 \ub2e4\uc2dc \uc0ac\uc6a9 \uac00\ub2a5\ud558\uac8c \ub9cc\ub4e4\uae30 \uc704\ud574 uncordon \uba85\ub839\uc5b4\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc704 PDB \ud14c\uc2a4\ud2b8\ub97c \uc644\ub8cc\ud558\uc5ec \ub178\ub4dc\uc5d0 \uc0c8\ub85c\uc6b4 \ud30c\ub4dc\uac00 \uc2a4\ucf00\uc974\ub9c1 \ub418\ub3c4\ub85d \ud558\uae30 \uc704\ud558\uc5ec uncordon \uba85\ub839\uc744 \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uba3c\uc800, \ub178\ub4dc\uc758 \uc0c1\ud0dc\ub97c \ud655\uc778\ud569\ub2c8\ub2e4. ip-10-110-47-109-* \ub178\ub4dc\ub294 drain \uba85\ub839\uc5b4 \uc218\ud589 \ud6c4 \ud604\uc7ac \u2018SchedulingDisabled\u2019 \uc0c1\ud0dc\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(jerry-test:default)k8s-class:jerry$ k get nodes -o wide ip-10-110-47-109.ap-southeast-1.compute.internal\nk NAME                                               STATUS                     ROLES    AGE   VERSION               INTERNAL-IP     EXTERNAL-IP   OS-IMAGE         KERNEL-VERSION                  CONTAINER-RUNTIME\nip-10-110-47-109.ap-southeast-1.compute.internal   Ready,SchedulingDisabled   &lt;none>   8d    v1.26.4-eks-0a21954   10.110.47.109   &lt;none>        Amazon Linux 2   5.10.178-162.673.amzn2.x86_64   containerd:\/\/1.6.19<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud14c\uc2a4\ud2b8\uac00 \uc644\ub8cc\ub418\uc5c8\uc73c\ubbc0\ub85c uncordon \uba85\ub839\uc5b4\ub85c \ud574\ub2f9 \ub178\ub4dc\uc758 cordon \uc0c1\ud0dc\ub97c \ud574\uc81c\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(jerry-test:default)k8s-class:jerry$ k uncordon ip-10-110-47-109.ap-southeast-1.compute.internal\nnode\/ip-10-110-47-109.ap-southeast-1.compute.internal uncordoned<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub178\ub4dc\ub97c \ud655\uc778\ud558\uba74 \ub2e4\uc2dc \ud30c\ub4dc\ub97c \uc2e4\ud589\ud560 \uc218 \uc788\ub294 \uc0c1\ud0dc(Ready)\uac00 \ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(jerry-test:default)k8s-class:jerry$ k get nodes -o wide ip-10-110-47-109.ap-southeast-1.compute.internal\nNAME                                               STATUS   ROLES    AGE   VERSION               INTERNAL-IP     EXTERNAL-IP   OS-IMAGE         KERNEL-VERSION                  CONTAINER-RUNTIME\nip-10-110-47-109.ap-southeast-1.compute.internal   Ready    &lt;none>   8d    v1.26.4-eks-0a21954   10.110.47.109   &lt;none>        Amazon Linux 2   5.10.178-162.673.amzn2.x86_64   containerd:\/\/1.6.19<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u2018uncordon\u2019 \uba85\ub839\uc5b4\uac00 \uc815\uc0c1\uc73c\ub85c \uc2e4\ud589\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ubc88 \uc7a5\uc5d0\uc11c\ub294 \uce74\ud39c\ud130\ub97c \uc801\uc6a9\ud55c \uc0c1\ud0dc\uc5d0\uc11c \uc548\uc804\ud558\uac8c \ud30c\ub4dc\ub97c \uc885\ub8cc\ud560 \uc218 \uc788\ub294 Graceful Shutdown, Pod Disruption Budget\uacfc \ucd94\uac00\ub85c \ub178\ub4dc \u2018drain, cordon\/uncordon\u2019\uc744 \uc54c\uc544\ubcf4\uc558\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">PDB \ud14c\uc2a4\ud2b8\uac00 \uc644\ub8cc\ub418\uc5b4 \ub514\ud50c\ub85c\uc774\uba3c\ud2b8\uc640 PDB \uc124\uc815\uc744 \uc0ad\uc81c\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">(jerry-test:default)k8s-class:jerry$ k delete deployments.apps busybox\nk ddeployment.apps \"busybox\" deleted\n\n(jerry-test:default)k8s-class:jerry$ k delete pdb busybox\npoddisruptionbudget.policy \"busybox\" deleted<\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>\ud574\ub2f9 \uae30\uc220 \ube14\ub85c\uadf8\uc5d0 \uc9c8\ubb38\uc774 \uc788\uc73c\uc2dc\uba74 \uc5b8\uc81c\ub4e0\uc9c0 \ubb38\uc758\ud574 \uc8fc\uc138\uc694. \uc9c1\uc811 \ub2f5\ubcc0\ud574 \ub4dc\ub9bd\ub2c8\ub2e4.<br>k8sqna@jennifersoft.com<\/p><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:11px\">1.&nbsp;\ucc38\uace0\ub85c \u2018kubectl rollout restart {deploy_name}\u2019 \uba85\ub839\uc5b4\ub97c \uc2e4\ud589\ud558\uba74 \uba3c\uc800 \ud30c\ub4dc\ub97c \uc2e4\ud589(running)\ud558\uace0 \uc2e4\ud589\uc774 \uc644\ub8cc\ub418\uba74 \uae30\uc874 \ud30c\ub4dc\ub97c \uc885\ub8cc(terminating) \uc0c1\ud0dc\ub85c \ubcc0\uacbd\ud569\ub2c8\ub2e4.<br>2. PDB \uc790\uc138\ud55c \uc124\uba85 &#8211;&nbsp; <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/run-application\/configure-pdb\/\">https:\/\/kubernetes.io\/docs\/tasks\/run-application\/configure-pdb\/<\/a> <br>3. nodeSelector\uc5d0 \ub300\ud55c \uc790\uc138\ud55c \uc124\uba85\uc740 \ub2e4\uc74c\uc7a5 advancedScheduling\uc5d0\uc11c \ub2e4\ub8f9\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"\uce74\ud39c\ud130\ub294 \ub178\ub4dc\uc758 \ube44\uc6a9\uc744 \ucd5c\uc801\ud654\ud558\uae30 \uc704\ud558\uc5ec \ub178\ub4dc\uc758 \uc218\ub7c9\uc744 \uc801\uadf9\uc801\uc73c\ub85c \ubcc0\uacbd\ud569\ub2c8\ub2e4. \uc2e0\uaddc \ud30c\ub4dc\ub97c \uc0dd\uc131\ud558\uae30 \uc704\ud558\uc5ec \uc0c8\ub85c\uc6b4 \ub178\ub4dc\uac00 \uc2e4\ud589\ub418\uba74 \ud30c\ub4dc\uc5d0 \uc124\uc815\ub41c \u2018Request\u2019 \uc6a9\ub7c9\uc5d0&#8230;","protected":false},"author":34,"featured_media":12526,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[386],"tags":[296,238,299,144,294,55,256,237,257,316],"class_list":["post-12521","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kubernetes","tag-aws-eks","tag-k8s","tag-k8sedu","tag-kubernetes","tag-msa","tag-55","tag-256","tag-237","tag-257","tag-316"],"acf":[],"_links":{"self":[{"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/posts\/12521","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/users\/34"}],"replies":[{"embeddable":true,"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/comments?post=12521"}],"version-history":[{"count":4,"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/posts\/12521\/revisions"}],"predecessor-version":[{"id":12527,"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/posts\/12521\/revisions\/12527"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/media\/12526"}],"wp:attachment":[{"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/media?parent=12521"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/categories?post=12521"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/tags?post=12521"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}