Search

[CKA] 14. Commands

Date
2024/11/22
Category
Devops
Tag
Kubernetes
CKA
Core Concept
๋ชฉ์ฐจ

Imperative vs Declarative

ย Imperative

๋‹จ๊ณ„์ ์œผ๋กœ ์ž‘์„ฑ๋œ ๋ช…๋ น์–ด๋“ค์˜ ์ง‘ํ•ฉ
โ€ข
YAML ํŒŒ์ผ์„ ๋‹ค๋ฃจ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ƒ์„ฑ๊ณผ ์ˆ˜์ •์ด ๋น ๋ฆ„
โ€ข
์–ด๋–ป๊ฒŒ ์ƒ์„ฑ๋๋Š”์ง€ ๊ธฐ์–ตํ•˜๊ธฐ ํž˜๋“ฆ
โ€ข
ํ•ญ์ƒ ํ˜„์žฌ ํ™˜๊ฒฝ ์„ค์ •์„ ์ธ์ง€ํ•˜๊ณ  ๋ณ€๊ฒฝํ•˜๊ธฐ ์ „์— ํ™•์ธํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ด€๋ฆฌ์ž์—๊ฒŒ ๊นŒ๋‹ค๋กœ์›€

Create Objects

kubectl run --image=nginx nginx
kubectl create deployment --image=nginx nginx
kubectl expose deployment nginx --port 80

Update Objects

kubectl edit deployment nginx
edit๋กœ ๋ณ€๊ฒฝํ•œ ๊ฒƒ์€ ๋‹ค๋ฅธ ๊ณณ์— ๊ธฐ๋ก๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— local์— ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ •์˜ ํŒŒ์ผ๊ณผ ์„ค์ •์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Œ
kubectl scale deployment nginx --replicas=5
kubectl set image deployment nginx nginx=nginx:1.18

Imperative Object Configuration Files

kubectl create -f nginx.yaml
kubectl replace -f nginx.yaml
kubectl replace --force -f nginx.yaml
kubectl delete -f nginx.yaml

ย Declarative

์š”๊ตฌ์‚ฌํ•ญ์„ ์„ ์–ธ (์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์„œ๋น„์Šค์˜ ์˜ˆ์ƒ ์ƒํƒœ๋ฅผ ์ •์˜ํ•˜๋Š” ํŒŒ์ผ ์ง‘ํ•ฉ์„ ์ƒ์„ฑ) ๊ธฐ์กด ์„ ์–ธ์—์„œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ์ด๋ฏธ ์ง„ํ–‰๋œ ์‚ฌํ•ญ์„ ํŒŒ์•…ํ•˜๊ณ  ํ•„์š”ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ๋งŒ ์ ์šฉํ•จ
โ€ข
๋‹จ์ผ kubectl ๋ช…๋ น์œผ๋กœ ์ƒ์„ฑ, ์—…๋ฐ์ดํŠธ, ์‚ญ์ œํ•˜๋Š” ๋ช…๋ น์ด ๊ฐ€๋Šฅ
kubectl apply -f nginx.yaml

Kubectl Apply Command

apply command๋Š” ์–ด๋–ค ์ˆ˜์ •์„ ํ• ์ง€ ๊ฒฐ์ •ํ•˜๊ธฐ ์ „ Local file, Live object definition, Last applied configuration์„ ๊ณ ๋ คํ•œ๋‹ค
โ€ข
Local file: Local system์— ์ €์žฅ๋œ configuration file (YAML)
โ€ข
Live object definition: Kubernetes Memory์— ์ €์žฅ๋˜๋Š” Configuration (YAML)
โ€ข
Last applied configuration: Live object definition์— annotation์œผ๋กœ ์ €์žฅ (JSON)

ย Creating Object

โ€ข
Object๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ object configuration์€ local file๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ status๋ฅผ ์ €์žฅํ•˜๋Š” ์ถ”๊ฐ€ ํ•„๋“œ๊ฐ€ ์กด์žฌ
โ—ฆ
Live object configuration
โ€ข
Local configuration file์˜ YAML์€ JSON์œผ๋กœ ๋ณ€ํ™˜๋˜์–ด Last applied Configuration์œผ๋กœ ์ €์žฅ๋จ

ย Updating Object

โ€ข
์—…๋ฐ์ดํŠธ ์‹œ ์•ž์„  ์„ธ ๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ๋น„๊ตํ•˜์—ฌ Live Object์— ์–ด๋–ค ๋ณ€ํ™”๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ

Example

1.
Local file์˜ nginx image ์—…๋ฐ์ดํŠธ
2.
Live object configuration ๊ณผ ๋น„๊ต
3.
์ฐจ์ด๊ฐ€ ์žˆ์„ ์‹œ Live object configuration ์—…๋ฐ์ดํŠธ
4.
๋ณ€ํ™”๊ฐ€ ์ƒ๊ธฐ๋ฉด Last applied Configuration ์—…๋ฐ์ดํŠธ

ย ์ฃผ์˜์ 

Imperative(๋ช…๋ น์ ) ์ ‘๊ทผ์œผ๋กœ ์ปค๋งจ๋“œ ์‹œ Last applied configuration์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Œ
โ€ข
kubectl create, kubectl replace