ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•
ํ•˜๋‚˜์˜ Pod๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, ์„œ๋น„์Šค๋ฅผ ํ•  ๊ฒฝ์šฐ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Pod์˜ ์˜ค๋ฅ˜๋‚˜, Pod ๋‚ด๋ถ€์˜ ์ปจํ…Œ์ด๋„ˆ์—์„œ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜๋กœ ์ธํ•ด ์„œ๋น„์Šค๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•  ๊ฒฝ์šฐ์ด๋‹ค. ์ด์™€ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ํ•ด๋‹น Pod๊ฐ€ ๋ณต๊ตฌ ๋  ๋•Œ๊นŒ์ง€ ํ•ด๋‹น ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์—†๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์ด๋ฅผ ๋ง‰๊ณ ์ž, replicaset์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ญ์ƒ ์„œ๋น„์Šค ๋˜๋Š” ๊ฒƒ์„ ์œ ์ง€ํ•  ๋ฟ ์•„๋‹ˆ๋ผ, ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ, ํ™•์žฅ์„ฑ์— ๋Œ€ํ•œ ๋ถ€๋ถ„๋„ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์–ด๋–ค ๊ฒฝ์šฐ์— ํ•„์š”ํ• ๊นŒ?

Figure 1. replicaset์„ 2๋กœ ์„ค์ •ํ•œ ๊ฒฝ์šฐ

 ์‹ค์ œ ์„œ๋น„์Šค ๋˜๋Š”  ํ™˜๊ฒฝ์—์„œ ํ•˜๋‚˜์˜ Pod๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค๋ฅผ ์œ ์ง€ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์ƒ๋‹นํžˆ ์œ„ํ—˜ํ•œ ์ผ์ด๋‹ค. ์–ด๋–ค ์ƒํ™ฉ์—์„œ ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์ด ๋ฐœ์ƒํ• ์ง€ ๋ชจ๋ฅธ๋‹ค. ๋˜ํ•œ Pod์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋Š” ์ƒ์„ฑ - ์‚ญ์ œ๋ฅผ ๋ฐ˜๋ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ํ•˜๋‚˜์˜ Pod๊ฐ€ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ๊ฐœ์˜ Pod๋ฅผ ์‚ฌ์ „์— ๋ฐฐ์น˜ํ•˜์—ฌ ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์˜ณ์€ ๋ฐฉ๋ฒ•์ด๋‹ค.

 

 ์ด์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ๊ฒƒ์ด replicaset์ด๋ฉฐ, ์ง€์ •ํ•œ ๊ฐœ์ˆ˜ ๋งŒํผ Pod๊ฐ€ ํ•ญ์‹œ ๋…ธ๋“œ์— ์กด์žฌํ•˜๋„๋ก ๋ณด์žฅํ•œ๋‹ค. ์ด์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์— ๋”ฐ๋ผ Pod์˜ ์˜ค๋ฅ˜, ์ข…๋ฃŒ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ๊ทธ๋ฆผ 2์™€ ๊ฐ™์ด ์„œ๋น„์Šค๊ฐ€ ๊ฐ€๋Šฅํ•œ Pod๋ฅผ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ๋‹ค.

 

replicaset ์ƒ์„ฑ

replicaset ์ƒ์„ฑ์„ ์œ„ํ•œ yaml ์ž‘์„ฑ๋ฒ•

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: frontend
  labels:
    app: guestbook
    tier: frontend
spec:
  # ์ผ€์ด์Šค์— ๋”ฐ๋ผ ๋ ˆํ”Œ๋ฆฌ์นด๋ฅผ ์ˆ˜์ •ํ•œ๋‹ค.
  replicas: 3
  selector:
    matchLabels:
      tier: frontend
  template:
    metadata:
      labels:
        tier: frontend
    spec:
      containers:
      - name: php-redis
        image: gcr.io/google_samples/gb-frontend:v3

  kind๋ฅผ Replicaset์œผ๋กœ ์ง€์ •ํ•˜๊ณ , template ํ•˜์œ„์— Pod์™€ ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค. ์—ฌ๊ธฐ์„œ ์•Œ์•„๋‘˜์–ด์•ผ ํ•  ๊ฒƒ์€ selector์™€ labels์ด๋‹ค. ๋งŒ์•ฝ ํ˜„์žฌ ๋…ธ๋“œ์— 1000๊ฐœ์˜ Pod๋“ค์ด ์žˆ๊ณ , ์ด๋ฅผ ์ด๋ฆ„์œผ๋กœ๋งŒ ๊ตฌ๋ถ„ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์ƒ๋‹นํžˆ ์–ด๋ ค์šด ์ผ์ด ๋  ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ๋Š” label์„ ํ†ตํ•ด ๊ธฐ๋Šฅ ๋˜๋Š” ์„œ๋น„์Šค ๋ณ„๋กœ Pod๋ฅผ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋ถ„๋ฅ˜๋œ Pod๋“ค์€ selector๋ฅผ ํ†ตํ•ด, replicaset์ด ์–ด๋–ค Pod๊ฐ€ ์„œ๋น„์Šค ๋ถˆ๊ฐ€๋Šฅํ•˜์—ฌ, ์ƒˆ๋กœ์šด ๋ณต์ œ๊ฐ€ ํ•„์š”ํ•œ์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

 

replicaset ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ช…๋ น์–ด๋“ค

kubectl get rs

 ํ˜„์žฌ ์ƒ์„ฑ๋œ replicaset์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. get replicaset์ด๋ผ๊ณ  ์ž…๋ ฅํ•˜์ง€์•Š๊ณ , rs๋งŒ ์ž…๋ ฅํ•˜์—ฌ๋„ ๋œ๋‹ค.

 

kubectl describe rs

 describe pod์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ˜„์žฌ ์ƒ์„ฑ๋œ replicaset์˜ ์ƒ์„ธ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ์‹œ์—์„œ๋Š” Pod์— ์ ์ƒ์ ์ธ ์ด๋ฏธ์ง€๋ฅผ ์„ ์–ธํ•˜์ง€ ์•Š์•„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ, Pod๊ฐ€ waiting ์ƒํƒœ์ด๋‹ค.

 

 

kubectl apply -f [yaml ๊ฒฝ๋กœ]

 yaml ํŒŒ์ผ์„ ํ†ตํ•ด replicaset์„ ์ƒ์„ฑํ•˜๊ณ ์ž ํ•˜๋ฉด, ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

kubectl delete rs [replicaset ์ด๋ฆ„]

 ํ•ด๋‹น ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด, ์ƒ์„ฑ๋œ replicaset์„ ์‚ญ์ œ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

kubectl scale rs [replicaset ์ด๋ฆ„] --replicas=[์ˆซ์ž]

 ํ˜„์žฌ ์ƒ์„ฑ๋œ replicaset์˜ Pod ๋ณต์ œ ์ˆ˜๋ฅผ ํ•ด๋‹น ๋ช…๋ น์„ ํ†ตํ•ด ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€