๐Ÿ“Œ Kubernetes Node Selectors (๋…ธ๋“œ ์„ ํƒ์ž)


1. ์ƒํ™ฉ ์˜ˆ์‹œ

๐Ÿ‘‰ ํ•˜์ง€๋งŒ ๊ธฐ๋ณธ Kubernetes ์Šค์ผ€์ค„๋ง์€ โ€œ์ œ์•ฝ ์—†์Œโ€ โ†’ Pod๊ฐ€ Node2/Node3์—๋„ ๋ฐฐ์น˜๋  ์ˆ˜ ์žˆ์Œ.


2. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: Node Selector

Pod๋ฅผ ํŠน์ • ๋…ธ๋“œ์—๋งŒ ๋ฐฐ์น˜๋˜๋„๋ก ์ œํ•œํ•˜๋ ค๋ฉด Node Selector ์‚ฌ์šฉ.

Pod YAML ์˜ˆ์‹œ

yaml
๋ณต์‚ฌํŽธ์ง‘
apiVersion: v1
kind: Pod
metadata:
  name: dataproc-pod
spec:
  containers:
  - name: dataproc-container
    image: data-processor:latest
  nodeSelector:
    size: large

์—ฌ๊ธฐ์„œ nodeSelector: size=large โ†’ Pod๋Š” โ€œsize=largeโ€ ๋ผ๋ฒจ์ด ๋ถ™์€ ๋…ธ๋“œ์—๋งŒ ์Šค์ผ€์ค„๋ง๋จ.


3. Node์— ๋ผ๋ฒจ ๋ถ™์ด๊ธฐ

๊ทธ๋Ÿผ โ€œsize=largeโ€๋Š” ์–ด๋””์„œ ์™”์„๊นŒ?

๐Ÿ‘‰ ์ง์ ‘ ๋…ธ๋“œ์— ๋ผ๋ฒจ์„ ๋ถ™์—ฌ์•ผ ํ•จ.

bash
๋ณต์‚ฌํŽธ์ง‘
# Node1์— ๋ผ๋ฒจ ์ถ”๊ฐ€
kubectl label nodes node1 size=large

# Node2/3์— ๋ผ๋ฒจ ์ถ”๊ฐ€
kubectl label nodes node2 size=small
kubectl label nodes node3 size=small

์ด์ œ ์Šค์ผ€์ค„๋Ÿฌ๋Š” Pod ๋ฐฐ์น˜ ์‹œ nodeSelector ์กฐ๊ฑด์„ ๋ณด๊ณ  โ†’ โ€œlargeโ€ ๋ผ๋ฒจ์ด ์žˆ๋Š” Node1์—๋งŒ Pod๋ฅผ ์˜ฌ๋ฆผ.