{"id":1209,"date":"2026-03-11T00:29:20","date_gmt":"2026-03-10T15:29:20","guid":{"rendered":"http:\/\/www.igoni.kr\/?p=1209"},"modified":"2026-03-16T02:55:16","modified_gmt":"2026-03-15T17:55:16","slug":"etcd-%eb%8d%b0%ec%9d%b4%ed%84%b0-%eb%b0%b1%ec%97%85-%eb%b0%8f-%eb%b3%b5%ec%9b%90%eb%b0%a9%eb%b2%95","status":"publish","type":"post","link":"http:\/\/www.igoni.kr\/?p=1209","title":{"rendered":"etcd \ub370\uc774\ud130 \ubc31\uc5c5 \ubc0f \ubcf5\uc6d0\ubc29\ubc95"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\ubaa9 \ucc28<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"\ubaa9\ucc28 \ud1a0\uae00\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" 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: #999;color:#999\" 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><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"http:\/\/www.igoni.kr\/?p=1209\/#%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94%EB%A7%90\" >\uc2dc\uc791\ud558\ub294\ub9d0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"http:\/\/www.igoni.kr\/?p=1209\/#%EC%86%8C_%EA%B0%9C\" >\uc18c \uac1c<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"http:\/\/www.igoni.kr\/?p=1209\/#%EC%9E%91%EC%97%85%EC%A0%88%EC%B0%A8\" >\uc791\uc5c5\uc808\ucc28<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"http:\/\/www.igoni.kr\/?p=1209\/#etcd%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8_%EC%83%9D%EC%84%B1\" >etcd\uc2a4\ud06c\ub9bd\ud2b8 \uc0dd\uc131<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"http:\/\/www.igoni.kr\/?p=1209\/#tmpbackup_%ED%8C%8C%EC%9D%BC%EB%A1%9C_etcd_snapshot_%EC%88%98%ED%96%89\" >\/tmp\/backup \ud30c\uc77c\ub85c etcd snapshot \uc218\ud589<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"http:\/\/www.igoni.kr\/?p=1209\/#%EB%B0%B1%EC%97%85snapshot%EB%90%9C_%EB%8D%B0%EC%9D%B4%ED%84%B0_%ED%99%95%EC%9D%B8\" >\ubc31\uc5c5(snapshot)\ub41c \ub370\uc774\ud130 \ud655\uc778<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"http:\/\/www.igoni.kr\/?p=1209\/#%EB%B0%B1%EC%97%85%EB%90%9C_%EB%8D%B0%EC%9D%B4%ED%84%B0_%EB%B3%B5%EA%B5%AC_%EB%B0%A9%EB%B2%95\" >\ubc31\uc5c5\ub41c \ub370\uc774\ud130 \ubcf5\uad6c \ubc29\ubc95<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"http:\/\/www.igoni.kr\/?p=1209\/#timer%EA%B8%B0%EB%B0%98%EC%9D%98_%EC%A0%95%EA%B8%B0_%EB%B0%B1%EC%97%85_%EC%A0%88%EC%B0%A8_%EA%B5%AC%EC%84%B1\" >timer\uae30\ubc18\uc758 \uc815\uae30 \ubc31\uc5c5 \uc808\ucc28 \uad6c\uc131<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"http:\/\/www.igoni.kr\/?p=1209\/#Reference\" >Reference<\/a><\/li><\/ul><\/nav><\/div>\n<h3 id=\"bkmrk-%EB%93%A4%EC%96%B4%EA%B0%80%EB%8A%94%EB%A7%90.\"><span class=\"ez-toc-section\" id=\"%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94%EB%A7%90\"><\/span>\uc2dc\uc791\ud558\ub294\ub9d0<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p id=\"bkmrk-%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94%2C-%EA%B3%A0%EB%8B%88%EC%9E%85%EB%8B%88%EB%8B%A4.%EC%9D%B4%EB%B2%88%EC%97%90%EB%8A%94-ku\">\uc548\ub155\ud558\uc138\uc694, \uace0\ub2c8\uc785\ub2c8\ub2e4.<br \/>\n\uc774\ubc88\uc5d0\ub294 kubernetes\uc5d0\uc11c \uac00\uc7a5 \uc911\uc694\ud55c \uc5ed\ud65c\uc744 \ud558\ub294 Component\uac00 API\uc11c\ubc84\uc640 kubernetes\uc758 \uc815\ubcf4\ub97c \uc800\uc7a5\ud558\uace0 \uc788\ub294 ETCD\u00a0 \ubc31\uc5c5\/\ubcf5\uad6c\ub97c \ud558\uae30 \uc704\ud55c \ubc29\ubc95\uc744 \uae30\uc220\ud558\ub824\uace0 \ud569\ub2c8\ub2e4.<\/p>\n<p id=\"bkmrk-etcd%C2%A0-3.6%EC%9D%B4%ED%9B%84%EB%B6%80%ED%84%B0%EB%8A%94-etcdc\" class=\"callout warning\">etcd\u00a0 3.6\uc774\ud6c4\ubd80\ud130\ub294 etcdctl \uba85\ub839\uc5b4\ub294 deprecated \ub41c\ub2e4\uace0 \ud569\ub2c8\ub2e4. (etcdutil -&gt; etcdutl) <a href=\"https:\/\/kubernetes.io\/docs\/tasks\/administer-cluster\/configure-upgrade-etcd\/#etcd-verify-snapshot-1\" target=\"_blank\" rel=\"noopener\"><sup>1)<\/sup><\/a><\/p>\n<table id=\"bkmrk-perplexity%EC%97%90%EC%84%9C-%EC%83%9D%EC%84%B1%ED%95%9C-ai%EC%9D%B4\" style=\"border-collapse: collapse; width: 100%; border-width: 1px;\" border=\"1\">\n<colgroup>\n<col style=\"width: 99.881%;\" \/><\/colgroup>\n<tbody>\n<tr>\n<td><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1269\" src=\"http:\/\/www.igoni.kr\/wp-content\/uploads\/2026\/03\/96fae74d-f55f-424e-ae0e-00c7e3a63e39-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1438\" srcset=\"http:\/\/www.igoni.kr\/wp-content\/uploads\/2026\/03\/96fae74d-f55f-424e-ae0e-00c7e3a63e39-scaled.jpg 2560w, http:\/\/www.igoni.kr\/wp-content\/uploads\/2026\/03\/96fae74d-f55f-424e-ae0e-00c7e3a63e39-300x169.jpg 300w, http:\/\/www.igoni.kr\/wp-content\/uploads\/2026\/03\/96fae74d-f55f-424e-ae0e-00c7e3a63e39-1024x575.jpg 1024w, http:\/\/www.igoni.kr\/wp-content\/uploads\/2026\/03\/96fae74d-f55f-424e-ae0e-00c7e3a63e39-768x431.jpg 768w, http:\/\/www.igoni.kr\/wp-content\/uploads\/2026\/03\/96fae74d-f55f-424e-ae0e-00c7e3a63e39-1536x863.jpg 1536w, http:\/\/www.igoni.kr\/wp-content\/uploads\/2026\/03\/96fae74d-f55f-424e-ae0e-00c7e3a63e39-2048x1151.jpg 2048w, http:\/\/www.igoni.kr\/wp-content\/uploads\/2026\/03\/96fae74d-f55f-424e-ae0e-00c7e3a63e39-1300x730.jpg 1300w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/td>\n<\/tr>\n<tr>\n<td class=\"align-right\">perplexity\uc5d0\uc11c \uc0dd\uc131\ud55c AI\uc774\ubbf8\uc9c0<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 id=\"bkmrk-%EC%86%8C-%EA%B0%9C\"><span class=\"ez-toc-section\" id=\"%EC%86%8C_%EA%B0%9C\"><\/span>\uc18c \uac1c<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p id=\"bkmrk-etcd%EB%8A%94-%EC%A0%95%EC%A1%B1%EC%88%98%EC%97%90-%EB%94%B0%EB%9D%BC-%28n-1%29%2F\">etcd\ub294 \uc815\uc871\uc218\uc5d0 \ub530\ub77c (n-1)\/2\uc758 \ub178\ub4dc\uc218 \ub9cc\ud07c \uc77c\uc2dc\uc801\uc778 \uc7a5\uc560\ub97c \ud5c8\uc6a9\ud558\uc9c0\ub9cc, H\/W\uc758 \uc7a5\uc560\ub098 \ub124\ud2b8\uc6cc\ud06c\uc758 \uc601\uad6c\uc801\uc778 \ubb38\uc81c \ub4f1 \ub2e8\uae30\uac04\ub0b4\uc5d0 \ubcf5\uad6c\uac00 \uc774\ub8e8\uc5b4 \uc9c0\uc9c0 \uc54a\uc73c\uba74 ETCD \uc790\uccb4\uc5d0 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4, \uc774\ub7f4\ub54c \uc8fc\uae30\uc801\uc73c\ub85c \ubc31\uc5c5(snapshot)\uc744 \ubc1b\uc544\ub193\uc558\ub2e4\uba74, \ud574\ub2f9 \ubc31\uc5c5(snapshot)\uc744 \uac00\uc9c0\uace0 \ubcf5\uad6c\ub97c \uc218\ud589 \ud6c4 kubernetes\ub97c \uc6b4\uc601\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p id=\"bkmrk-etcd%C2%A0-%EB%B0%B1%EC%97%85%28snapshot%29%EC%9D%80-\">etcd\u00a0 \ubc31\uc5c5(snapshot)\uc740 \ub2e4\uc911 \ub178\ub4dc\uc5d0\uc11c \uc218\ud589\ud574\ub3c4 \ub418\ub098, \ubcf5\uad6c\ub294 \ub3d9\uc77c\ud55c \ubc31\uc5c5(snapshot)\uc744 \uac00\uc9c0\uace0 \ubcf5\uad6c\ub97c \ud574\uc57c \ud569\ub2c8\ub2e4, \ud2b9\ud788 \ub2e4\uc911 \ub178\ub4dc\uc5d0\uc11c \uac1c\ubcc4 \ub178\ub4dc\uc5d0 \ubc31\uc5c5(snapshot)\ub41c \ub370\uc774\ud130\ub97c \ubcf5\uad6c\ud560 \uacbd\uc6b0 \uc624\ud788\ub824 kubernetes\uc758 \ub370\uc774\ud130\uc758 \ubb38\uc81c\ub85c \uc7a5\uc560\uac00 \ubc1c\uc0dd \ud560 \uc218 \uc788\uc73c\ub2c8, \ubcf5\uad6c\ub294 \ub3d9\uc77c\ud55c snaphot\uc744 \uac00\uc9c0\uace0 \ubcf5\uad6c\ub97c \uc218\ud589\ud558\uc154\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<p id=\"bkmrk-%EB%B0%B1%EC%97%85%28snapshot%29%EC%88%98%ED%96%89%EC%8B%9C-%EB%AC%B4%EA%B2%B0%EC%84%B1-\">\ubc31\uc5c5(snapshot)\uc218\ud589\uc2dc \ubb34\uacb0\uc131 \uac80\uc99d\uc744 \uc704\ud55c \ud574\uc26c\uac12\uc774 \ud3ec\ud568\ub418\ub294\ub370, \ubc31\uc5c5(snapshot)\ub41c \ub370\uc774\ud130\uc758 \uc218\uc815\uc744 \ud558\ub294 \uacbd\uc6b0 \ud574\uc26c\ub370\uc774\ud130\uac00 \uae68\uc9c8\uc218 \uc788\uc2b5\ub2c8\ub2e4. \ubd88\uac00\ud53c\ud55c \uacbd\uc6b0\ub85c \ud574\uc26c\ub370\uc774\ud130\ub97c \ubb34\uc2dc\ud558\uace0 \ubcf5\uad6c\ub97c \uc218\ud589\uc774 \ud544\uc694\ud55c \uacbd\uc6b0 <code>--skip-hash-check<\/code> \uc635\uc158\uc744 \ucd94\uac00\ud558\uc5ec \ubcf5\uad6c\ub97c \uc218\ud589\ud558\uba74 \ubcf5\uad6c\uac00 \uac00\ub2a5\ud569\ub2c8\ub2e4.<\/p>\n<h3 id=\"bkmrk-%EC%9E%91%EC%97%85%EC%A0%88%EC%B0%A8\"><span class=\"ez-toc-section\" id=\"%EC%9E%91%EC%97%85%EC%A0%88%EC%B0%A8\"><\/span>\uc791\uc5c5\uc808\ucc28<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ol id=\"bkmrk-etcd%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%83%9D%EC%84%B1-%24%3E-cat-%2F\">\n<li>\n<h4 id=\"bkmrk-etcd%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%83%9D%EC%84%B1\"><span class=\"ez-toc-section\" id=\"etcd%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8_%EC%83%9D%EC%84%B1\"><\/span>etcd\uc2a4\ud06c\ub9bd\ud2b8 \uc0dd\uc131<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<pre><code class=\"language-bash\">$&gt; cat \/usr\/local\/bin\/etcdctl.sh\r\n#!\/bin\/bash\r\n# Ansible managed\r\n# example invocation: etcdctl.sh get --keys-only --from-key \"\"\r\n\r\netcdctl \\\r\n  --cacert \/etc\/ssl\/etcd\/ssl\/ca.pem \\\r\n  --cert \/etc\/ssl\/etcd\/ssl\/admin-master1.pem \\\r\n  --key \/etc\/ssl\/etcd\/ssl\/admin-master1-key.pem \"$@\"\r\n<\/code><\/pre>\n<p>&nbsp;<\/li>\n<li>\n<h4 id=\"bkmrk-%2Ftmp%2Fbackup-%ED%8C%8C%EC%9D%BC%EB%A1%9C-etcd\"><span class=\"ez-toc-section\" id=\"tmpbackup_%ED%8C%8C%EC%9D%BC%EB%A1%9C_etcd_snapshot_%EC%88%98%ED%96%89\"><\/span>\/tmp\/backup \ud30c\uc77c\ub85c etcd snapshot \uc218\ud589<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<pre><code class=\"language-bash\">$&gt; .\/etcdctl.sh snapshot save \/tmp\/backup\r\n{\"level\":\"info\",\"ts\":\"2024-09-23T23:43:44.67136+0900\",\"caller\":\"snapshot\/v3_snapshot.go:65\",\"msg\":\"created temporary db file\",\"path\":\"\/tmp\/backup.part\"}\r\n{\"level\":\"info\",\"ts\":\"2024-09-23T23:43:44.672148+0900\",\"logger\":\"client\",\"caller\":\"v3@v3.5.10\/maintenance.go:212\",\"msg\":\"opened snapshot stream; downloading\"}\r\n{\"level\":\"info\",\"ts\":\"2024-09-23T23:43:44.672741+0900\",\"caller\":\"snapshot\/v3_snapshot.go:73\",\"msg\":\"fetching snapshot\",\"endpoint\":\"127.0.0.1:2379\"}\r\n{\"level\":\"info\",\"ts\":\"2024-09-23T23:43:44.71756+0900\",\"logger\":\"client\",\"caller\":\"v3@v3.5.10\/maintenance.go:220\",\"msg\":\"completed snapshot read; closing\"}\r\n{\"level\":\"info\",\"ts\":\"2024-09-23T23:43:44.730295+0900\",\"caller\":\"snapshot\/v3_snapshot.go:88\",\"msg\":\"fetched snapshot\",\"endpoint\":\"127.0.0.1:2379\",\"size\":\"6.2 MB\",\"took\":\"now\"}\r\n{\"level\":\"info\",\"ts\":\"2024-09-23T23:43:44.730359+0900\",\"caller\":\"snapshot\/v3_snapshot.go:97\",\"msg\":\"saved\",\"path\":\"\/tmp\/backup\"}\r\n<\/code><\/pre>\n<p>&nbsp;<\/li>\n<li>\n<h4 id=\"bkmrk-%EB%B0%B1%EC%97%85%28snapshot%29%EB%90%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%99%95%EC%9D%B8\"><span class=\"ez-toc-section\" id=\"%EB%B0%B1%EC%97%85snapshot%EB%90%9C_%EB%8D%B0%EC%9D%B4%ED%84%B0_%ED%99%95%EC%9D%B8\"><\/span>\ubc31\uc5c5(snapshot)\ub41c \ub370\uc774\ud130 \ud655\uc778<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<pre><code class=\"language-bash\">$&gt; .\/etcdctl.sh snapshot status \/tmp\/backup  -w table\r\n+----------+----------+------------+------------+\r\n|   HASH   | REVISION | TOTAL KEYS | TOTAL SIZE |\r\n+----------+----------+------------+------------+\r\n| 844eca85 |  1914345 |       1100 |     6.2 MB |\r\n+----------+----------+------------+------------+\r\n<\/code><\/pre>\n<p>&nbsp;<\/li>\n<li>\n<h4 id=\"bkmrk-%EB%B0%B1%EC%97%85%EB%90%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B3%B5%EA%B5%AC-%EB%B0%A9%EB%B2%95\"><span class=\"ez-toc-section\" id=\"%EB%B0%B1%EC%97%85%EB%90%9C_%EB%8D%B0%EC%9D%B4%ED%84%B0_%EB%B3%B5%EA%B5%AC_%EB%B0%A9%EB%B2%95\"><\/span>\ubc31\uc5c5\ub41c \ub370\uc774\ud130 \ubcf5\uad6c \ubc29\ubc95<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<pre><code class=\"language-bash\">$&gt; .\/etcdctl.sh snapshot restore \/tmp\/backup\r\n2024-09-23T23:48:49+09:00       info    snapshot\/v3_snapshot.go:260     restoring snapshot      {\"path\": \"\/tmp\/backup\", \"wal-dir\": \"default.etcd\/member\/wal\", \"data-dir\": \"default.etcd\", \"snap-dir\": \"default.etcd\/member\/snap\"}\r\n2024-09-23T23:48:49+09:00       info    membership\/store.go:141 Trimming membership information from the backend...\r\n2024-09-23T23:48:49+09:00       info    membership\/cluster.go:421       added member    {\"cluster-id\": \"cdf818194e3a8c32\", \"local-member-id\": \"0\", \"added-peer-id\": \"8e9e05c52164694d\", \"added-peer-peer-urls\": [\"http:\/\/localhost:2380\"]}\r\n2024-09-23T23:48:49+09:00       info    snapshot\/v3_snapshot.go:287     restored snapshot       {\"path\": \"\/tmp\/backup\", \"wal-dir\": \"default.etcd\/member\/wal\", \"data-dir\": \"default.etcd\", \"snap-dir\": \"default.etcd\/member\/snap\"}\r\n<\/code><\/pre>\n<p>&nbsp;<\/li>\n<li class=\"null\">\n<h4 id=\"bkmrk-timer%EA%B8%B0%EB%B0%98%EC%9D%98-%EC%A0%95%EA%B8%B0-%EB%B0%B1%EC%97%85-%EC%A0%88%EC%B0%A8-%EA%B5%AC%EC%84%B1\"><span class=\"ez-toc-section\" id=\"timer%EA%B8%B0%EB%B0%98%EC%9D%98_%EC%A0%95%EA%B8%B0_%EB%B0%B1%EC%97%85_%EC%A0%88%EC%B0%A8_%EA%B5%AC%EC%84%B1\"><\/span>timer\uae30\ubc18\uc758 \uc815\uae30 \ubc31\uc5c5 \uc808\ucc28 \uad6c\uc131<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li class=\"null\">\ubc31\uc5c5\uc2a4\ud06c\ub9bd\ud2b8 \uad6c\uc131\n<pre><code class=\"language-bash\">$&gt; vi \/root\/etcd_backup.sh\r\n\r\n#!\/bin\/bash\r\n\r\nPATH=\/usr\/local\/bin:$PATH\r\n\r\nBACK_DATE=$(date +%Y-%m-%d)\r\nORI_DATE=$(date +%Y-%m-%d -d '7days')\r\nBACK_DIR=\/tmp\/backup\r\n\r\n#\ubc31\uc5c5 \ub514\ub809\ud1a0\ub9ac \uc5c6\uc73c\uba74 \uc0dd\uc131\r\nif [[ ! -d $BACK_DIR ]]\r\nthen\r\n mkdir -p $BACK_DIR\r\nfi\r\n\r\n#\ubc31\uc5c5 \uc218\ud589\r\n\/usr\/local\/bin\/etcdctl.sh snapshot save $BACK_DIR\/etcd-$BACK_DATE\r\n\r\n#\ubc31\uc5c5\ud30c\uc77c \ud655\uc778 \ud6c4 \ubbf8\uc0dd\uc131\uc2dc \uc5d0\ub7ec\r\nif [[ ! -f $BACK_DIR\/etcd-$BACK_DATE ]]\r\n  echo \"Backup failed\"\r\n  exit 1\r\nfi\r\n\r\n#\uc624\ub798\ub41c \ub370\uc774\ud130 \uc0ad\uc81c\r\nrm -f $BACK_DIR\/etcd-$ORI_DATE\r\n <\/code><\/pre>\n<pre><code class=\"language-bash\">$&gt; chmod +x \/root\/etcd_backup.sh\r\n$&gt; ls -l  \/root\/etcd_backup.sh\r\n-rwxr-xr-x 1 root root 483  9\uc6d4 23 23:55 \/root\/etcd_backup.sh\r\n<\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/li>\n<li>timer \uad6c\uc131 (\ub9e4\uc77c 04\uc2dc\uc5d0 \ubc31\uc5c5\uc218\ud589)\n<pre><code class=\"language-bash\">$&gt; cat \/etc\/systemd\/system\/etcd_backup.timer\r\n[Unit]\r\nDescription=ETCD Backup\r\n\r\n[Timer]\r\nOnCalendar=*-*-* 04:00:00\r\n\r\n[Install]\r\nWantedBy=multi-user.target\r\n<\/code><\/pre>\n<p>&nbsp;<\/li>\n<li>timer\uc5d0 \uc5f0\uacb0\ub41c \uc11c\ube44\uc2a4 \uad6c\uc131\n<pre><code class=\"language-bash\">$&gt; cat \/etc\/systemd\/system\/etcd_backup.service\r\n[Unit]\r\nDescription=ETCD Backup script\r\n\r\n[Service]\r\nType=oneshot\r\nExecStart= \/root\/etcd_backup.sh\r\n<\/code><\/pre>\n<p>&nbsp;<\/li>\n<li>backup timer \ud65c\uc131\ud654\n<pre><code class=\"language-bash\">$&gt;  systemctl daemon-reload\r\n$&gt; systemctl enable etcd_backup.timer --now\r\nCreated symlink \/etc\/systemd\/system\/multi-user.target.wants\/etcd_backup.timer \u2192 \/etc\/systemd\/system\/etcd_backup.timer.\r\n<\/code><\/pre>\n<p>&nbsp;<\/li>\n<li>timer \ud655\uc778\n<pre><code class=\"language-bash\">$&gt; systemctl status etcd_backup.timer\r\n\u25cf etcd_backup.timer - ETCD Backup\r\n     Loaded: loaded (\/etc\/systemd\/system\/etcd_backup.timer; enabled; vendor preset: disabled)\r\n     Active: active (waiting) since Mon 2024-06-23 23:58:42 KST; 1s ago\r\n      Until: Mon 2024-06-23 23:58:42 KST; 1s ago\r\n    Trigger: Tue 2024-06-24 04:00:00 KST; 6h left\r\n   Triggers: \u25cf etcd_backup.service\r\n<\/code><\/pre>\n<p>&nbsp;<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3 id=\"bkmrk-reference\"><span class=\"ez-toc-section\" id=\"Reference\"><\/span><em>Reference<\/em><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"vlp-link-container vlp-layout-spotlight\"><a href=\"https:\/\/etcd.io\/docs\/v3.5\/op-guide\/maintenance\/\" class=\"vlp-link\" title=\"Maintenance\" rel=\"nofollow\" target=\"_blank\"><\/a><div class=\"vlp-layout-zone-side\"><div class=\"vlp-block-4 vlp-link-image\"><\/div><\/div><div class=\"vlp-layout-zone-main\"><div class=\"vlp-block-0 vlp-link-title\">Maintenance<\/div><div class=\"vlp-block-1 vlp-link-summary\">https:\/\/etcd.io\/docs\/v3.5\/op-guide\/maintenance\/<\/div><div class=\"vlp-block-2 vlp-link-button\">\ub354 \ubcf4\uae30<\/div><div class=\"vlp-block-3 vlp-link-url\">etcd.io<\/div><\/div><\/div>\n<div class=\"vlp-link-container vlp-layout-spotlight\"><a href=\"https:\/\/kubernetes.io\/docs\/tasks\/administer-cluster\/configure-upgrade-etcd\/#etcd-verify-snapshot-1\" class=\"vlp-link\" title=\"Operating etcd clusters for Kubernetes\" rel=\"nofollow\" target=\"_blank\"><\/a><div class=\"vlp-layout-zone-side\"><div class=\"vlp-block-4 vlp-link-image\"><img decoding=\"async\" src=\"https:\/\/kubernetes.io\/images\/kubernetes-open-graph.png\" style=\"max-width: 1024px; max-height: 1024px\" \/><\/div><\/div><div class=\"vlp-layout-zone-main\"><div class=\"vlp-block-0 vlp-link-title\">Operating etcd clusters for Kubernetes<\/div><div class=\"vlp-block-1 vlp-link-summary\">https:\/\/kubernetes.io\/docs\/tasks\/administer-cluster\/configure-upgrade-etcd\/#etcd-verify-snapshot-1<\/div><div class=\"vlp-block-2 vlp-link-button\">\ub354 \ubcf4\uae30<\/div><div class=\"vlp-block-3 vlp-link-url\">kubernetes.io<\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\uc2dc\uc791\ud558\ub294\ub9d0 \uc548\ub155\ud558\uc138\uc694, \uace0\ub2c8\uc785\ub2c8\ub2e4. \uc774\ubc88\uc5d0\ub294 kubernetes\uc5d0\uc11c \uac00\uc7a5 \uc911\uc694\ud55c \uc5ed\ud65c\uc744 \ud558\ub294 Component\uac00 API\uc11c\ubc84\uc640 kubernetes\uc758 \uc815\ubcf4\ub97c \uc800\uc7a5\ud558\uace0 \uc788\ub294 ETCD\u00a0&hellip;<\/p>\n","protected":false},"author":1,"featured_media":1269,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[319],"tags":[],"class_list":["post-1209","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kubernetes"],"aioseo_notices":[],"_links":{"self":[{"href":"http:\/\/www.igoni.kr\/index.php?rest_route=\/wp\/v2\/posts\/1209","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.igoni.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.igoni.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.igoni.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.igoni.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1209"}],"version-history":[{"count":4,"href":"http:\/\/www.igoni.kr\/index.php?rest_route=\/wp\/v2\/posts\/1209\/revisions"}],"predecessor-version":[{"id":1351,"href":"http:\/\/www.igoni.kr\/index.php?rest_route=\/wp\/v2\/posts\/1209\/revisions\/1351"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.igoni.kr\/index.php?rest_route=\/wp\/v2\/media\/1269"}],"wp:attachment":[{"href":"http:\/\/www.igoni.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1209"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.igoni.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1209"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.igoni.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1209"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}