{"id":27657,"date":"2023-06-21T18:40:55","date_gmt":"2023-06-21T15:10:55","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/automatic-management-of-aws-ecr-credentials-in-a-kubernetes-cluster-2pgn\/"},"modified":"2023-06-21T18:40:55","modified_gmt":"2023-06-21T15:10:55","slug":"automatic-management-of-aws-ecr-credentials-in-a-kubernetes-cluster-2pgn","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/automatic-management-of-aws-ecr-credentials-in-a-kubernetes-cluster-2pgn\/","title":{"rendered":"\u0645\u062f\u06cc\u0631\u06cc\u062a \u062e\u0648\u062f\u06a9\u0627\u0631 \u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc AWS ECR \u062f\u0631 \u06cc\u06a9 \u062e\u0648\u0634\u0647 Kubernetes"},"content":{"rendered":"<div data-article-id=\"1511691\" id=\"article-body\">\n<p>\u062f\u0631 \u062c\u0631\u06cc\u0627\u0646 \u06a9\u0627\u0631 \u0645\u0646 \u0628\u0627 <strong><em>AWS ECR (\u0631\u062c\u06cc\u0633\u062a\u0631\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0627\u0644\u0627\u0633\u062a\u06cc\u06a9)<\/em><\/strong>\u060c \u0628\u0647 \u0645\u0634\u06a9\u0644\u06cc \u0628\u0631\u062e\u0648\u0631\u062f\u0645: \u06a9\u0644\u06cc\u062f \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0645\u062e\u0632\u0646 \u0647\u0631 \u0634\u0634 \u0633\u0627\u0639\u062a \u06cc\u06a9\u0628\u0627\u0631 \u0645\u0646\u0642\u0636\u06cc \u0645\u06cc \u0634\u0648\u062f.  \u0628\u0627 \u06a9\u0627\u0631 \u0628\u0627 \u06cc\u06a9 \u062e\u0648\u0634\u0647 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u063a\u06cc\u0631 AWS Kubernetes\u060c \u0645\u062c\u0628\u0648\u0631 \u0634\u062f\u0645 \u062f\u0627\u0626\u0645\u0627\u064b \u0627\u06cc\u0646 \u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062f\u0633\u062a\u06cc \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u0645\u060c \u0641\u0631\u0622\u06cc\u0646\u062f\u06cc \u062a\u06a9\u0631\u0627\u0631\u06cc \u0648 \u062e\u0633\u062a\u0647 \u06a9\u0646\u0646\u062f\u0647.<\/p>\n<p>\u0627\u0632 \u0627\u06cc\u0646 \u062a\u062c\u0631\u0628\u0647 \u0627\u06cc\u062f\u0647 \u0627\u06cc\u062c\u0627\u062f \u0627\u0628\u0632\u0627\u0631\u06cc \u06a9\u0647 \u0627\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f \u0631\u0627 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0628\u0647 \u0648\u062c\u0648\u062f \u0622\u0645\u062f: <strong><em>k8s-aws-ecr-secret-updater<\/em><\/strong>.  \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u06cc\u06a9 cronjob Kubernetes \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u062e\u0648\u062f\u06a9\u0627\u0631 \u0627\u0639\u062a\u0628\u0627\u0631 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0645\u062e\u0632\u0646 AWS ECR \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/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=\"Toggle Table of Content\"><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-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/automatic-management-of-aws-ecr-credentials-in-a-kubernetes-cluster-2pgn\/#%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_Cronjob\" >\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Cronjob<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/automatic-management-of-aws-ecr-credentials-in-a-kubernetes-cluster-2pgn\/#%D9%86%D9%82%D8%B4%DB%8C_%DA%A9%D9%87_%D9%85%D8%AC%D9%88%D8%B2_%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA%D8%8C_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%88_%D8%AD%D8%B0%D9%81_%D8%A7%D8%B3%D8%B1%D8%A7%D8%B1_%D9%88_%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA_%D9%88_%D8%A8%D9%87%E2%80%8C%D8%B1%D9%88%D8%B2%D8%B1%D8%B3%D8%A7%D9%86%DB%8C_%D8%AD%D8%B3%D8%A7%D8%A8%E2%80%8C%D9%87%D8%A7%DB%8C_%D8%B3%D8%B1%D9%88%DB%8C%D8%B3_%D8%B1%D8%A7_%D8%AF%D8%A7%D8%B1%D8%AF\" >\u0646\u0642\u0634\u06cc \u06a9\u0647 \u0645\u062c\u0648\u0632 \u062f\u0631\u06cc\u0627\u0641\u062a\u060c \u0627\u06cc\u062c\u0627\u062f \u0648 \u062d\u0630\u0641 \u0627\u0633\u0631\u0627\u0631 \u0648 \u062f\u0631\u06cc\u0627\u0641\u062a \u0648 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u062d\u0633\u0627\u0628\u200c\u0647\u0627\u06cc \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u062f\u0627\u0631\u062f.<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/automatic-management-of-aws-ecr-credentials-in-a-kubernetes-cluster-2pgn\/#ServiceAccount_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_job_%D9%88_cronjob\" >ServiceAccount \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 job \u0648 cronjob.<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/automatic-management-of-aws-ecr-credentials-in-a-kubernetes-cluster-2pgn\/#RoleBinding_%D8%A8%D8%B1%D8%A7%DB%8C_%D9%85%D8%B1%D8%AA%D8%A8%D8%B7_%DA%A9%D8%B1%D8%AF%D9%86_%D9%86%D9%82%D8%B4_%D8%A8%D8%A7_ServiceAccount\" >RoleBinding \u0628\u0631\u0627\u06cc \u0645\u0631\u062a\u0628\u0637 \u06a9\u0631\u062f\u0646 \u0646\u0642\u0634 \u0628\u0627 ServiceAccount.<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/automatic-management-of-aws-ecr-credentials-in-a-kubernetes-cluster-2pgn\/#%D8%B4%D8%BA%D9%84%DB%8C_%DA%A9%D9%87_%D8%B1%D8%A7%D8%B2_%D8%B1%D8%A7_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%85%DB%8C_%DA%A9%D9%86%D8%AF\" >\u0634\u063a\u0644\u06cc \u06a9\u0647 \u0631\u0627\u0632 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f.<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/automatic-management-of-aws-ecr-credentials-in-a-kubernetes-cluster-2pgn\/#CronJob_%DA%A9%D9%87_%D9%87%D8%B1_6_%D8%B3%D8%A7%D8%B9%D8%AA_%DA%A9%D8%A7%D8%B1_%D8%B1%D8%A7_%D8%A7%D8%AC%D8%B1%D8%A7_%D9%85%DB%8C_%DA%A9%D9%86%D8%AF\" >CronJob \u06a9\u0647 \u0647\u0631 6 \u0633\u0627\u0639\u062a \u06a9\u0627\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f.<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/automatic-management-of-aws-ecr-credentials-in-a-kubernetes-cluster-2pgn\/#%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D8%AA%D8%B5%D9%88%DB%8C%D8%B1_%D8%AF%D8%A7%DA%A9%D8%B1\" >\u0627\u06cc\u062c\u0627\u062f \u062a\u0635\u0648\u06cc\u0631 \u062f\u0627\u06a9\u0631<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/automatic-management-of-aws-ecr-credentials-in-a-kubernetes-cluster-2pgn\/#%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C_%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA\" >\u0627\u062c\u0631\u0627\u06cc \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/automatic-management-of-aws-ecr-credentials-in-a-kubernetes-cluster-2pgn\/#%D9%86%D8%B5%D8%A8_k8s-aws-ecr-secret-updater_%D8%AF%D8%B1_Kubernetes\" >\u0646\u0635\u0628 k8s-aws-ecr-secret-updater \u062f\u0631 Kubernetes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/nabfollower.com\/blog\/automatic-management-of-aws-ecr-credentials-in-a-kubernetes-cluster-2pgn\/#%D9%86%D8%AA%DB%8C%D8%AC%D9%87_%DA%AF%DB%8C%D8%B1%DB%8C\" >\u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_Cronjob\"><\/span>\n<p>  \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Cronjob<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u06a9\u062f YAML \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f cronjob \u0627\u0632 \u0686\u0646\u062f\u06cc\u0646 \u0628\u062e\u0634 \u062a\u0634\u06a9\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0627\u06a9\u0646\u0648\u0646 \u0642\u0633\u0645\u062a \u0628\u0647 \u0642\u0633\u0645\u062a \u0622\u0646 \u0647\u0627 \u0631\u0627 \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u0645:<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D9%86%D9%82%D8%B4%DB%8C_%DA%A9%D9%87_%D9%85%D8%AC%D9%88%D8%B2_%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA%D8%8C_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%88_%D8%AD%D8%B0%D9%81_%D8%A7%D8%B3%D8%B1%D8%A7%D8%B1_%D9%88_%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA_%D9%88_%D8%A8%D9%87%E2%80%8C%D8%B1%D9%88%D8%B2%D8%B1%D8%B3%D8%A7%D9%86%DB%8C_%D8%AD%D8%B3%D8%A7%D8%A8%E2%80%8C%D9%87%D8%A7%DB%8C_%D8%B3%D8%B1%D9%88%DB%8C%D8%B3_%D8%B1%D8%A7_%D8%AF%D8%A7%D8%B1%D8%AF\"><\/span>\n<p>  \u0646\u0642\u0634\u06cc \u06a9\u0647 \u0645\u062c\u0648\u0632 \u062f\u0631\u06cc\u0627\u0641\u062a\u060c \u0627\u06cc\u062c\u0627\u062f \u0648 \u062d\u0630\u0641 \u0627\u0633\u0631\u0627\u0631 \u0648 \u062f\u0631\u06cc\u0627\u0641\u062a \u0648 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u062d\u0633\u0627\u0628\u200c\u0647\u0627\u06cc \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u062f\u0627\u0631\u062f.<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight yaml\"><code><span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Role<\/span>\n<span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rbac.authorization.k8s.io\/v1<\/span>\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">k8sawsecrsecretupdater<\/span>\n<span class=\"na\">rules<\/span><span class=\"pi\">:<\/span>\n<span class=\"pi\">-<\/span> <span class=\"na\">apiGroups<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">[<\/span><span class=\"s2\">\"<\/span><span class=\"s\">\"<\/span><span class=\"pi\">]<\/span>\n  <span class=\"na\">resources<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">[<\/span><span class=\"s2\">\"<\/span><span class=\"s\">secrets\"<\/span><span class=\"pi\">]<\/span>\n  <span class=\"na\">verbs<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">[<\/span><span class=\"s2\">\"<\/span><span class=\"s\">get\"<\/span><span class=\"pi\">,<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">create\"<\/span><span class=\"pi\">,<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">delete\"<\/span><span class=\"pi\">]<\/span>\n<span class=\"pi\">-<\/span> <span class=\"na\">apiGroups<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">[<\/span><span class=\"s2\">\"<\/span><span class=\"s\">\"<\/span><span class=\"pi\">]<\/span>\n  <span class=\"na\">resources<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">[<\/span><span class=\"s2\">\"<\/span><span class=\"s\">serviceaccounts\"<\/span><span class=\"pi\">]<\/span>\n  <span class=\"na\">verbs<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">[<\/span><span class=\"s2\">\"<\/span><span class=\"s\">get\"<\/span><span class=\"pi\">,<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">patch\"<\/span><span class=\"pi\">]<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u06cc\u06a9 \u062c\u0632\u0621 \u06a9\u0644\u06cc\u062f\u06cc \u0627\u06cc\u0646 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0633\u062a <strong><em>k8sawseccrecretupdater<\/em><\/strong>  \u0646\u0642\u0634.  \u0627\u06cc\u0646 \u0646\u0642\u0634 \u0628\u0631\u0627\u06cc \u0645\u062c\u0648\u0632 \u062f\u0631 \u0641\u0636\u0627\u06cc \u0646\u0627\u0645 Kubernetes \u0627\u0633\u0627\u0633\u06cc \u0627\u0633\u062a \u0648 \u0628\u0647 cronjob \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0639\u0645\u0644\u06cc\u0627\u062a \u062e\u0627\u0635\u06cc \u0631\u0627 \u0631\u0648\u06cc \u0645\u0646\u0627\u0628\u0639 \u062e\u0627\u0635\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u062f.<\/p>\n<p>\u0628\u0647 \u0637\u0648\u0631 \u062e\u0627\u0635\u060c <strong><em>k8sawseccrecretupdater<\/em><\/strong>  \u0646\u0642\u0634 \u062f\u0627\u0631\u0627\u06cc \u0645\u062c\u0648\u0632\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0627\u0633\u062a:<\/p>\n<ol>\n<li>\u0627\u06cc\u0646 \u0645\u062c\u0648\u0632 \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a (<strong><em>\u06af\u0631\u0641\u062a\u0646<\/em><\/strong>)\u060c \u0627\u064a\u062c\u0627\u062f \u0643\u0631\u062f\u0646 (<strong><em>\u0627\u064a\u062c\u0627\u062f \u0643\u0631\u062f\u0646<\/em><\/strong>\u060c \u0648 \u062d\u0630\u0641 (<strong><em>\u062d\u0630\u0641<\/em><\/strong>) <strong><em>\u0627\u0633\u0631\u0627\u0631<\/em><\/strong>.  \u0627\u06cc\u0646 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a \u0632\u06cc\u0631\u0627 cronjob \u0628\u0627\u06cc\u062f \u0628\u062a\u0648\u0627\u0646\u062f \u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc AWS ECR \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0648 \u062d\u0630\u0641 \u06a9\u0646\u062f\u060c \u06a9\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0631\u0627\u0632 \u062f\u0631 Kubernetes \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f.<\/li>\n<li>\u0627\u06cc\u0646 \u0645\u062c\u0648\u0632 \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a (<strong><em>\u06af\u0631\u0641\u062a\u0646<\/em><\/strong>) \u0648 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc (<strong><em>\u067e\u0686<\/em><\/strong>) <strong><em>\u062d\u0633\u0627\u0628 \u0647\u0627\u06cc \u0633\u0631\u0648\u06cc\u0633<\/em><\/strong>.  cronjob \u0628\u0627\u06cc\u062f \u0628\u062a\u0648\u0627\u0646\u062f \u062d\u0633\u0627\u0628 \u0647\u0627\u06cc \u0633\u0631\u0648\u06cc\u0633 \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u062f \u062a\u0627 \u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647 AWS ECR \u0631\u0627 \u0628\u0627 \u0633\u0631\u0648\u06cc\u0633\u06cc \u06a9\u0647 cronjob \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f \u0645\u0631\u062a\u0628\u0637 \u06a9\u0646\u062f.<\/li>\n<\/ol>\n<p>\u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0646\u0642\u0634 \u062e\u0627\u0635 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 cronjob \u062f\u0642\u06cc\u0642\u0627\u064b \u0645\u062c\u0648\u0632\u0647\u0627\u06cc\u06cc \u0631\u0627 \u062f\u0627\u0631\u062f \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u06a9\u0627\u0631 \u062e\u0648\u062f \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f\u060c \u0628\u062f\u0648\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u0628\u0647 \u0645\u0646\u0627\u0628\u0639 \u063a\u06cc\u0631 \u0636\u0631\u0648\u0631\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f.  \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0628\u0627 \u0627\u0635\u0644 \u06a9\u0645\u062a\u0631\u06cc\u0646 \u0627\u0645\u062a\u06cc\u0627\u0632\u060c \u06cc\u06a9 \u0631\u0648\u06cc\u0647 \u0627\u0645\u0646\u06cc\u062a\u06cc \u0631\u0627\u06cc\u062c \u0627\u0633\u062a \u06a9\u0647 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0645\u0646\u0627\u0628\u0639 \u0631\u0627 \u0641\u0642\u0637 \u0628\u0647 \u0622\u0646\u0686\u0647 \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u06cc\u06a9 \u06a9\u0627\u0631 \u062e\u0627\u0635 \u0636\u0631\u0648\u0631\u06cc \u0627\u0633\u062a \u0645\u062d\u062f\u0648\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.  \u0627\u06cc\u0646 \u06a9\u0645\u06a9 \u0645\u06cc \u06a9\u0646\u062f \u062a\u0627 \u062a\u0623\u062b\u06cc\u0631 \u0627\u062d\u062a\u0645\u0627\u0644\u06cc \u06cc\u06a9 \u062d\u0645\u0644\u0647 \u0627\u062d\u062a\u0645\u0627\u0644\u06cc \u0628\u0647 \u062d\u062f\u0627\u0642\u0644 \u0628\u0631\u0633\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"ServiceAccount_%D8%A8%D8%B1%D8%A7%DB%8C_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_job_%D9%88_cronjob\"><\/span>\n<p>  ServiceAccount \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 job \u0648 cronjob.<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight yaml\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">v1<\/span>\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ServiceAccount<\/span>\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">k8sawsecrsecretupdater<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"RoleBinding_%D8%A8%D8%B1%D8%A7%DB%8C_%D9%85%D8%B1%D8%AA%D8%A8%D8%B7_%DA%A9%D8%B1%D8%AF%D9%86_%D9%86%D9%82%D8%B4_%D8%A8%D8%A7_ServiceAccount\"><\/span>\n<p>  RoleBinding \u0628\u0631\u0627\u06cc \u0645\u0631\u062a\u0628\u0637 \u06a9\u0631\u062f\u0646 \u0646\u0642\u0634 \u0628\u0627 ServiceAccount.<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight yaml\"><code><span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">RoleBinding<\/span>\n<span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rbac.authorization.k8s.io\/v1<\/span>\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">k8sawsecrsecretupdater<\/span>\n<span class=\"na\">subjects<\/span><span class=\"pi\">:<\/span>\n  <span class=\"pi\">-<\/span> <span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ServiceAccount<\/span>\n    <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">k8sawsecrsecretupdater<\/span>\n<span class=\"na\">roleRef<\/span><span class=\"pi\">:<\/span>\n  <span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Role<\/span>\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">k8sawsecrsecretupdater<\/span>\n  <span class=\"na\">apiGroup<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rbac.authorization.k8s.io<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D8%B4%D8%BA%D9%84%DB%8C_%DA%A9%D9%87_%D8%B1%D8%A7%D8%B2_%D8%B1%D8%A7_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%85%DB%8C_%DA%A9%D9%86%D8%AF\"><\/span>\n<p>  \u0634\u063a\u0644\u06cc \u06a9\u0647 \u0631\u0627\u0632 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f.<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight yaml\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">batch\/v1<\/span>\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Job<\/span>\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">k8sawsecrsecretupdater<\/span>\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\n  <span class=\"na\">backoffLimit<\/span><span class=\"pi\">:<\/span> <span class=\"m\">4<\/span>\n  <span class=\"na\">template<\/span><span class=\"pi\">:<\/span>\n    <span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\n      <span class=\"na\">serviceAccountName<\/span><span class=\"pi\">:<\/span> <span class=\"s\">k8sawsecrsecretupdater<\/span>\n      <span class=\"na\">restartPolicy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Never<\/span>\n      <span class=\"na\">containers<\/span><span class=\"pi\">:<\/span>\n      <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">k8sawsecrsecretupdater<\/span>\n        <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ghcr.io\/paranoiasystem\/k8s-aws-ecr-secret-updater:latest<\/span>\n        <span class=\"na\">imagePullPolicy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Always<\/span>\n        <span class=\"na\">env<\/span><span class=\"pi\">:<\/span>\n        <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">AWS_ACCOUNT<\/span>\n          <span class=\"na\">value<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">YourAwsAccountID'<\/span>\n        <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">AWS_ACCESS_KEY_ID<\/span>\n          <span class=\"na\">value<\/span><span class=\"pi\">:<\/span> <span class=\"s\">YourAccessKeyID<\/span>\n        <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">AWS_SECRET_ACCESS_KEY<\/span>\n          <span class=\"na\">value<\/span><span class=\"pi\">:<\/span> <span class=\"s\">YourSecretAccessKey<\/span>\n        <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">AWS_REGION<\/span>\n          <span class=\"na\">value<\/span><span class=\"pi\">:<\/span> <span class=\"s\">YourRegion<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"CronJob_%DA%A9%D9%87_%D9%87%D8%B1_6_%D8%B3%D8%A7%D8%B9%D8%AA_%DA%A9%D8%A7%D8%B1_%D8%B1%D8%A7_%D8%A7%D8%AC%D8%B1%D8%A7_%D9%85%DB%8C_%DA%A9%D9%86%D8%AF\"><\/span>\n<p>  CronJob \u06a9\u0647 \u0647\u0631 6 \u0633\u0627\u0639\u062a \u06a9\u0627\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f.<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight yaml\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">batch\/v1<\/span>\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">CronJob<\/span>\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">k8sawsecrsecretupdater<\/span>\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\n  <span class=\"na\">schedule<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">0<\/span><span class=\"nv\"> <\/span><span class=\"s\">*\/6<\/span><span class=\"nv\"> <\/span><span class=\"s\">*<\/span><span class=\"nv\"> <\/span><span class=\"s\">*<\/span><span class=\"nv\"> <\/span><span class=\"s\">*\"<\/span>\n  <span class=\"na\">successfulJobsHistoryLimit<\/span><span class=\"pi\">:<\/span> <span class=\"m\">3<\/span>\n  <span class=\"na\">failedJobsHistoryLimit<\/span><span class=\"pi\">:<\/span> <span class=\"m\">1<\/span>\n  <span class=\"na\">jobTemplate<\/span><span class=\"pi\">:<\/span>\n    <span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\n      <span class=\"na\">template<\/span><span class=\"pi\">:<\/span>\n        <span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\n          <span class=\"na\">serviceAccountName<\/span><span class=\"pi\">:<\/span> <span class=\"s\">k8sawsecrsecretupdater<\/span>\n          <span class=\"na\">restartPolicy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Never<\/span>\n          <span class=\"na\">containers<\/span><span class=\"pi\">:<\/span>\n          <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">k8sawsecrsecretupdater<\/span>\n            <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ghcr.io\/paranoiasystem\/k8s-aws-ecr-secret-updater:latest<\/span>\n            <span class=\"na\">imagePullPolicy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Always<\/span>\n            <span class=\"na\">env<\/span><span class=\"pi\">:<\/span>\n            <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">AWS_ACCOUNT<\/span>\n              <span class=\"na\">value<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">YourAwsAccountID'<\/span>\n            <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">AWS_ACCESS_KEY_ID<\/span>\n              <span class=\"na\">value<\/span><span class=\"pi\">:<\/span> <span class=\"s\">YourAccess<\/span>\n            <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">AWS_SECRET_ACCESS_KEY<\/span>\n              <span class=\"na\">value<\/span><span class=\"pi\">:<\/span> <span class=\"s\">YourSecretAccessKey<\/span>\n            <span class=\"pi\">-<\/span> <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">AWS_REGION<\/span>\n              <span class=\"na\">value<\/span><span class=\"pi\">:<\/span> <span class=\"s\">YourRegion<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D8%AA%D8%B5%D9%88%DB%8C%D8%B1_%D8%AF%D8%A7%DA%A9%D8%B1\"><\/span>\n<p>  \u0627\u06cc\u062c\u0627\u062f \u062a\u0635\u0648\u06cc\u0631 \u062f\u0627\u06a9\u0631<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>cronjob \u0627\u0632 \u06cc\u06a9 \u062a\u0635\u0648\u06cc\u0631 \u062f\u0627\u06a9\u0631 \u062e\u0627\u0635 \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0648\u0638\u06cc\u0641\u0647 \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f.  \u0627\u06cc\u0646 \u062a\u0635\u0648\u06cc\u0631 Docker \u0627\u0632 Dockerfile \u0632\u06cc\u0631 \u0633\u0627\u062e\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p><\/p>\n<p>\u062f\u0631 Dockerfile\u060c \u0628\u0627 \u0634\u0631\u0648\u0639 \u0627\u0632 \u06cc\u06a9 \u062a\u0635\u0648\u06cc\u0631 \u067e\u0627\u06cc\u0647 Alpine\u060c \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u0627\u0632 \u062c\u0645\u0644\u0647 git\u060c bash\u060c curl\u060c openssh\u060c python3\u060c py3-pip\u060c py-cryptography\u060c wget\u060c curl\u060c jq \u0646\u0635\u0628 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.  \u0647\u0645\u0686\u0646\u06cc\u0646\u060c kubectl \u0648 AWSCLI \u0628\u0647 \u062a\u0631\u062a\u06cc\u0628 \u0628\u0631\u0627\u06cc \u062a\u0639\u0627\u0645\u0644 \u0628\u0627 Kubernetes \u0648 AWS \u0646\u0635\u0628 \u0634\u062f\u0647 \u0627\u0646\u062f.<\/p>\n<p>\u067e\u0633 \u0627\u0632 \u0622\u0646\u060c \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u06a9\u0627\u0631\u06cc \u0628\u0647 \/scripts \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u0634\u0648\u062f \u0648 \u0645\u062d\u062a\u0648\u06cc\u0627\u062a \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \/scripts \u0645\u062d\u0644\u06cc \u06a9\u067e\u06cc \u0645\u06cc \u0634\u0648\u062f.  \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u06cc\u06a9 ENTRYPOINT \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a enterpoint.sh \u0631\u0627 \u0647\u0646\u06af\u0627\u0645 \u0627\u062c\u0631\u0627 \u0634\u062f\u0646 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0634\u0631\u0648\u0639 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C_%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA\"><\/span>\n<p>  \u0627\u062c\u0631\u0627\u06cc \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 cronjob \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u062f\u060c \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a bash \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u062a\u0635\u0648\u06cc\u0631 Docker \u0631\u0627 \u0634\u0631\u0648\u0639 \u0645\u06cc \u06a9\u0646\u062f.  \u0627\u06cc\u0646 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0648\u062c\u0648\u062f \u06cc\u06a9 \u0631\u0627\u0632 \u0628\u0647 \u0646\u0627\u0645 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u062f <code>\"regcred\"<\/code>.  \u0627\u06af\u0631 \u0648\u062c\u0648\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f\u060c \u0622\u0646 \u0631\u0627 \u062d\u0630\u0641 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u06cc\u06a9 \u0645\u0648\u0631\u062f \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f.  \u0627\u06af\u0631 \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f\u060c \u0622\u0646 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f.  \u062f\u0631 \u0632\u06cc\u0631 \u0641\u06cc\u0644\u0645\u0646\u0627\u0645\u0647 \u0622\u0645\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"c\">#!\/bin\/bash<\/span>\n\ncreate_secret<span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n  kubectl create secret docker-registry regcred <span class=\"se\">\\<\/span>\n    <span class=\"nt\">--docker-server<\/span><span class=\"o\">=<\/span><span class=\"k\">${<\/span><span class=\"nv\">AWS_ACCOUNT<\/span><span class=\"k\">}<\/span>.dkr.ecr.<span class=\"k\">${<\/span><span class=\"nv\">AWS_REGION<\/span><span class=\"k\">}<\/span>.amazonaws.com <span class=\"se\">\\<\/span>\n    <span class=\"nt\">--docker-username<\/span><span class=\"o\">=<\/span>AWS <span class=\"se\">\\<\/span>\n    <span class=\"nt\">--docker-password<\/span><span class=\"o\">=<\/span><span class=\"si\">$(<\/span>aws ecr get-login-password <span class=\"nt\">--region<\/span> <span class=\"k\">${<\/span><span class=\"nv\">AWS_REGION<\/span><span class=\"k\">}<\/span><span class=\"si\">)<\/span>\n<span class=\"o\">}<\/span>\n\n<span class=\"c\"># Check if the secret exists<\/span>\n<span class=\"k\">if <\/span>kubectl get secret regcred<span class=\"p\">;<\/span> <span class=\"k\">then<\/span>\n  <span class=\"c\"># If it exists, delete it<\/span>\n  kubectl delete secret regcred\n  <span class=\"c\"># Create the secret again<\/span>\n  create_secret\n<span class=\"k\">else<\/span>\n  <span class=\"c\"># If it doesn't exist, create it<\/span>\n  create_secret\n<span class=\"k\">fi<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%86%D8%B5%D8%A8_k8s-aws-ecr-secret-updater_%D8%AF%D8%B1_Kubernetes\"><\/span>\n<p>  \u0646\u0635\u0628 k8s-aws-ecr-secret-updater \u062f\u0631 Kubernetes<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <strong><em>k8s-aws-ecr-secret-updater<\/em><\/strong>  \u062f\u0631 \u0645\u062d\u06cc\u0637 Kubernetes \u062e\u0648\u062f\u060c \u0628\u0627\u06cc\u062f \u0686\u0646\u062f \u0645\u0631\u062d\u0644\u0647 \u0633\u0627\u062f\u0647 \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0627 \u0634\u0628\u06cc\u0647 \u0633\u0627\u0632\u06cc \u0645\u062e\u0632\u0646 GitHub \u067e\u0631\u0648\u0698\u0647 \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 \u0645\u062d\u0644\u06cc \u062e\u0648\u062f \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>git clone https:\/\/github.com\/paranoiasystem\/k8s-aws-ecr-secret-updater\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0628\u0627\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0631\u062f\u0647 \u0648 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f <strong><em>install.yaml<\/em><\/strong>  \u0641\u0627\u06cc\u0644 \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u0645\u062e\u0632\u0646  \u062f\u0631 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0628\u0627\u06cc\u062f \u0645\u0642\u0627\u062f\u06cc\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f:<\/p>\n<ul>\n<li>\n<strong>AWS_ACCOUNT<\/strong>: \u0634\u0646\u0627\u0633\u0647 \u062d\u0633\u0627\u0628 AWS \u0634\u0645\u0627.<\/li>\n<li>\n<strong>AWS_ACCESS_KEY_ID<\/strong>: \u06a9\u0644\u06cc\u062f \u062f\u0633\u062a\u0631\u0633\u06cc AWS \u0634\u0645\u0627.<\/li>\n<li>\n<strong>AWS_SECRET_ACCESS_KEY<\/strong>: \u06a9\u0644\u06cc\u062f \u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u062e\u0641\u06cc AWS \u0634\u0645\u0627.<\/li>\n<li>\n<strong>AWS_REGION<\/strong>: \u0645\u0646\u0637\u0642\u0647 AWS \u06a9\u0647 ECR \u0634\u0645\u0627 \u062f\u0631 \u0622\u0646 \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u062f.<\/li>\n<\/ul>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a\u060c \u0641\u0627\u06cc\u0644 install.yaml \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0627\u0632 \u0622\u0646 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f.<\/p>\n<p>\u062d\u0627\u0644\u0627 \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 <strong><em>k8s-aws-ecr-secret-updater<\/em><\/strong>  \u062f\u0631 \u062e\u0648\u0634\u0647 Kubernetes \u062e\u0648\u062f\u060c \u0628\u0627\u06cc\u062f \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>kubectl apply <span class=\"nt\">-n<\/span> &lt;destination_namespace&gt; <span class=\"nt\">-f<\/span> install.yaml\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0647 \u06cc\u0627\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f <strong>\u0645\u0642\u0635\u062f_\u0646\u0627\u0645 \u0641\u0636\u0627\u06cc<\/strong> \u0628\u0627 \u0641\u0636\u0627\u06cc \u0646\u0627\u0645 Kubernetes \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f cronjob \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%86%D8%AA%DB%8C%D8%AC%D9%87_%DA%AF%DB%8C%D8%B1%DB%8C\"><\/span>\n<p>  \u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0628\u0647 \u0631\u0648\u0632 \u0631\u0633\u0627\u0646\u06cc \u062f\u0633\u062a\u06cc \u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u060c \u0635\u0631\u0641\u0647 \u062c\u0648\u06cc\u06cc \u062f\u0631 \u0632\u0645\u0627\u0646 \u0648 \u06a9\u0627\u0647\u0634 \u062e\u0637\u0631 \u062e\u0637\u0627 \u0631\u0627 \u0628\u0631\u0637\u0631\u0641 \u0645\u06cc \u06a9\u0646\u062f.  \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0645 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0648 \u0627\u0628\u0632\u0627\u0631\u06cc \u06a9\u0647 \u0645\u0646 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0645 \u0628\u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0647\u0631 \u06a9\u0633\u06cc \u06a9\u0647 \u0628\u0627 \u06cc\u06a9 \u0645\u0634\u06a9\u0644 \u0645\u0634\u0627\u0628\u0647 \u062f\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647 AWS ECR \u062f\u0631 \u06cc\u06a9 \u062e\u0648\u0634\u0647 Kubernetes \u0633\u0631 \u0648 \u06a9\u0627\u0631 \u062f\u0627\u0631\u062f \u06a9\u0645\u06a9 \u06a9\u0646\u062f.<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u062f\u0631 \u062c\u0631\u06cc\u0627\u0646 \u06a9\u0627\u0631 \u0645\u0646 \u0628\u0627 AWS ECR (\u0631\u062c\u06cc\u0633\u062a\u0631\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0627\u0644\u0627\u0633\u062a\u06cc\u06a9)\u060c \u0628\u0647 \u0645\u0634\u06a9\u0644\u06cc \u0628\u0631\u062e\u0648\u0631\u062f\u0645: \u06a9\u0644\u06cc\u062f \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0645\u062e\u0632\u0646 \u0647\u0631 \u0634\u0634 \u0633\u0627\u0639\u062a \u06cc\u06a9\u0628\u0627\u0631 \u0645\u0646\u0642\u0636\u06cc \u0645\u06cc \u0634\u0648\u062f. \u0628\u0627 \u06a9\u0627\u0631 \u0628\u0627 \u06cc\u06a9 \u062e\u0648\u0634\u0647 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u063a\u06cc\u0631 AWS Kubernetes\u060c \u0645\u062c\u0628\u0648\u0631 \u0634\u062f\u0645 \u062f\u0627\u0626\u0645\u0627\u064b \u0627\u06cc\u0646 \u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062f\u0633\u062a\u06cc \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u0645\u060c \u0641\u0631\u0622\u06cc\u0646\u062f\u06cc \u062a\u06a9\u0631\u0627\u0631\u06cc \u0648 \u062e\u0633\u062a\u0647 \u06a9\u0646\u0646\u062f\u0647. \u0627\u0632 \u0627\u06cc\u0646 \u062a\u062c\u0631\u0628\u0647 \u0627\u06cc\u062f\u0647 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":27658,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-27657","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/27657","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=27657"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/27657\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/27658"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=27657"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=27657"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=27657"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}