๋ชฉ์ฐจ
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