{"id":7358,"date":"2022-12-31T11:44:47","date_gmt":"2022-12-31T02:44:47","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=7358"},"modified":"2022-12-31T12:18:33","modified_gmt":"2022-12-31T03:18:33","slug":"kubernetes-%ed%8a%b9%ec%a0%95-node%ec%97%90-pod-%eb%b0%b0%ed%8f%ac%ed%95%98%ea%b8%b0","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=7358","title":{"rendered":"Kubernetes &#8211; \ud2b9\uc815 Node\uc5d0 Pod \ubc30\ud3ec\ud558\uae30"},"content":{"rendered":"<h1>Kubernetes &#8211; \ud2b9\uc815 Node\uc5d0 Pod \ubc30\ud3ec\ud558\uae30<\/h1>\n<p>\ud2b9\uc815 Node\uc5d0 Pod \ubc30\ud3ec\ud558\ub294 \ubc29\ubc95\uc744 \uc124\uba85\ud569\ub2c8\ub2e4.<\/p>\n<p>\uac01\uc885 Echo System(Monitoring, Logging, Tracing \ub4f1)\uc744 \ud2b9\uc815 Node \uc5d0 \ubc30\uce58\ud560 \uc218 \uc788\uc5b4 \uc88b\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>label \uad00\ub828 \uba85\ub839 \ubaa9\ub85d<\/h2>\n<pre><code class=\"language-bash\"># label \uc870\ud68c\nkubectl get nodes --show-labels\nNAME       STATUS   ROLES           AGE   VERSION   LABELS\nnotebook   Ready    control-plane   27d   v1.25.4   beta.kubernetes.io\/arch=amd64,beta.kub.....\n\n# label \ucd94\uac00\nkubectl label nodes notebook key=infra\n\n# label \uc870\ud68c\nkubectl get nodes --show-labels\nNAME       STATUS   ROLES           AGE   VERSION   LABELS\nnotebook   Ready    control-plane   27d   v1.25.4   beta.kubernetes.io\/arch=amd64,beta.kubernetes.io\/os=linux,key=infra,......\n\n# node \uc870\ud68c\nkubectl describe nodes notebook\nkubectl describe nodes notebook\nName:               notebook\nRoles:              control-plane\nLabels:             beta.kubernetes.io\/arch=amd64\n                    beta.kubernetes.io\/os=linux\n                    key=infra\n......\n\n# label \uc0ad\uc81c\nkubectl label nodes notebook key-<\/code><\/pre>\n<h2>\ud2b9\uc815 Node \uc5d0 Pod \ubc30\ud3ec<\/h2>\n<pre><code class=\"language-bash\">kubectl label nodes notebook key=infra<\/code><\/pre>\n<pre><code class=\"language-bash\">kubectl edit deployment.apps\/argocd-server -n argocd\n---------------------------\nspec:\n  template:\n    spec:\n      nodeSelector:\n        key: infra\n        # affinity:\n        # podAntiAffinity:\n        #   preferredDuringSchedulingIgnoredDuringExecution:\n        #   - podAffinityTerm:\n        #       labelSelector:\n        #         matchLabels:\n        #           app.kubernetes.io\/name: argocd-server\n        #       topologyKey: kubernetes.io\/hostname\n        #     weight: 100\n        #   - podAffinityTerm:\n        #       labelSelector:\n        #         matchLabels:\n        #           app.kubernetes.io\/part-of: argocd\n        #       topologyKey: kubernetes.io\/hostname\n        #     weight: 5\n---------------------------<\/code><\/pre>\n<p>Pod \uac00 \ub2e4\uc2dc \uc0dd\uc131\ub41c \uac83\uc744 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">kubectl get pods -n argocd -o wide\nNAME                                                READY   STATUS    RESTARTS   AGE     IP           NODE       NOMINATED NODE   READINESS GATES\nargocd-application-controller-0                     1\/1     Running   0          5d21h   10.32.0.21   notebook   &lt;none&gt;           &lt;none&gt;\nargocd-applicationset-controller-74575b6959-p9dv6   1\/1     Running   0          5d21h   10.32.0.10   notebook   &lt;none&gt;           &lt;none&gt;\nargocd-dex-server-64897989f8-bmjq8                  1\/1     Running   0          5d21h   10.32.0.14   notebook   &lt;none&gt;           &lt;none&gt;\nargocd-notifications-controller-566bc99494-pvg2z    1\/1     Running   0          5d21h   10.32.0.16   notebook   &lt;none&gt;           &lt;none&gt;\nargocd-redis-79c755c747-94blj                       1\/1     Running   0          5d21h   10.32.0.18   notebook   &lt;none&gt;           &lt;none&gt;\nargocd-repo-server-bc9c646dc-jpsnv                  1\/1     Running   0          5d21h   10.32.0.17   notebook   &lt;none&gt;           &lt;none&gt;\nargocd-server-5989df56f8-drz4t                      1\/1     Running   0          105s    10.32.0.13   notebook   &lt;none&gt;           &lt;none&gt;<\/code><\/pre>\n<h2>affinity<\/h2>\n<h3>\uc885\ub958<\/h3>\n<ul>\n<li>Node affinity<\/li>\n<li>Pod affinity<\/li>\n<\/ul>\n<h3>Node affinity<\/h3>\n<p>label \uacfc \uc720\uc0ac\ud558\uac8c Node \uae30\uc900\uc73c\ub85c Pod \ub97c \ubc30\ud3ec\ud569\ub2c8\ub2e4.<\/p>\n<p>\ucc28\uc774\uc810\uc740, label \uc740 \ud2b9\uc815 \ub178\ub4dc\uc5d0 \ubb34\uc870\uac74 \uc989\uc2dc \ubc30\ud3ec\ud558\ub294 \ubc18\uba74,<br \/>\nNode affinity \ub294 \ubb34\uc870\uac74 \ud560\ub2f9\ud560\uc9c0 \uac00\ub2a5\ud558\uba74 \ud560\ub2f9\ud560\uc9c0,<br \/>\n\uc774\ubbf8 \uc6b4\uc601\uc911\uc778 Pod \ub97c \uc81c\uac70\ud558\uace0 \uc989\uc2dc \uc774\ub3d9\uc2dc\ud0ac\uc9c0,<br \/>\n\uc6b4\uc601\uc911\uc778 Pod \ub294 \uadf8\ub300\ub85c \ub450\uace0 \uc0c8\ub85c \uc0dd\uae30\ub294 Pod \ub9cc \ud560\ub2f9\ud560\uc9c0\ub97c \uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h3>Pod affinity<\/h3>\n<p>Pod affinity \ub294 \uae30\uc874\uc5d0 \ubc30\ud3ec\ub418\uc5b4 \uc788\ub294 Pod \ub97c \uae30\uc900\uc73c\ub85c,<br \/>\nMaster\/Replica DB \uac00 \ud558\ub098\uc758 \ub178\ub4dc\uc5d0 \ubc30\ud3ec\ub418\uc9c0 \uc54a\ub3c4\ub85d \ud558\uac70\ub098,<br \/>\nN \uac1c\uc758 Pod \uac00 \uc5ec\ub7ec \ub178\ub4dc\uc5d0 \uace8\uace0\ub8e8 \ubc30\ud3ec\ub418\ub3c4\ub85d \ud560 \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kubernetes &#8211; \ud2b9\uc815 Node\uc5d0 Pod \ubc30\ud3ec\ud558\uae30 \ud2b9\uc815 Node\uc5d0 Pod \ubc30\ud3ec\ud558\ub294 \ubc29\ubc95\uc744 \uc124\uba85\ud569\ub2c8\ub2e4. \uac01\uc885 Echo System(Monitoring, Logging, Tracing \ub4f1)\uc744 \ud2b9\uc815 Node \uc5d0 \ubc30\uce58\ud560 \uc218 \uc788\uc5b4 \uc88b\uc2b5\ub2c8\ub2e4. label \uad00\ub828 \uba85\ub839 \ubaa9\ub85d # label \uc870\ud68c kubectl get nodes &#8211;show-labels NAME STATUS ROLES AGE VERSION LABELS notebook Ready control-plane 27d v1.25.4 beta.kubernetes.io\/arch=amd64,beta.kub&#8230;.. # label \ucd94\uac00 kubectl label nodes notebook\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=7358\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[],"class_list":["post-7358","post","type-post","status-publish","format-standard","hentry","category-kubernetes"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/7358","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7358"}],"version-history":[{"count":5,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/7358\/revisions"}],"predecessor-version":[{"id":7363,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/7358\/revisions\/7363"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7358"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7358"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7358"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}