์ด ๊ธ์ ์ฟ ๋ฒ๋คํฐ์ค ๊ณต๋ถํ ํ์ ์ ๋จ๊ธฐ๊ธฐ ์ํ ๊ธ์ ๋๋ค.
๊ธฐ๋ณธ ์ค๋ธ์ ํธ๋ก ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ฑํ ์ ์์ง๋ง ํ๊ณ๊ฐ ์์ต๋๋ค. ์ด๋ฌํ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ณ ์ ๊ธฐ๋ณธ ์ค๋ธ์ ํธ ์ธ ๋ค์ํ ์ค๋ธ์ ํธ๋ค์ด ์กด์ฌํ๋๋ฐ ์ด๋ฒ์ ๋ํ๋ก์ด๋จผํธ ์ค๋ธ์ ํธ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
๋ํ๋ก์ด๋จผํธ
๋ํ๋ก์ด๋จผํธ๋ ํ๋ง๋๋ก ํ๋ + ๋ ํ๋ฆฌ์นด์ ์ ๋๋ค.
* ์ฐธ๊ณ : ๋ ํ๋ฆฌ์นด์ ์ ํ๋์ ์๋ฅผ ๋ณด์ฅํด์ฃผ๋ ์ค๋ธ์ ํธ์ ๋๋ค.
์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ์์์ API ์๋ฒ์ ์ปจํธ๋กค๋ฌ ๋งค๋์ ๋ ๋จ์ํ ํ๋์ ๊ฐ์๊ฐ ์๋ ๋ํ๋ก์ด๋จผํธ์ฒ๋ผ ๋ค์ํ ์ค๋ธ์ ํธ๋ฅผ ๊ฐ์ํฉ๋๋ค.
๋ํ๋ก์ด๋จผํธ๋ฅผ ์์ฑํ ๋ ์ฌ์ฉํ๋ ๋ช ๋ น์ด๋ก๋ ๊ธฐ๋ณธ์ ์ผ๋ก create, apply ์ ์ฌ์ฉํฉ๋๋ค.
๋ํ๋ก์ด๋จผํธ๋ก ์์ฑํ ํ๋๋ฅผ ๋๋ฆฌ๊ณ ์ถ์ผ๋ฉด scale ๋ช ๋ น์ด๋ฅผ ๋ค์ ์ณ์ผํ์ง๋ง yaml์ ์ฌ์ฉํ์ฌ ๋ํ๋ก์ด๋จผํธ์ spec์ ์ ํด์ฃผ๋ฉด ์ฒ์๋ถํฐ ์ํ๋๋๋ก ๋ํ๋ก์ด๋จผํธ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
yaml ์์ฑ์ด ์ข ๋ณต์กํ๊ธด ํ์ง๋ง ๋ํ๋ก์ด๋จผํธ๋ฅผ ์ ๋์ ์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค.
yaml์ผ๋ก ๋ํ๋ก์ด๋จผํธ spec ์์ฑํ๊ธฐ
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
์ด ์์์ ๋ํ ์ค๋ช ์ ๋ค์๊ณผ ๊ฐ๋ค.
- .metadata.name ํ๋์ ๋ฐ๋ผ nginx-deployment ์ด๋ฆ์ผ๋ก ๋ํ๋ก์ด๋จผํธ๊ฐ ์์ฑ๋๋ค.
- .spec.replicas ํ๋์ ๋ฐ๋ผ ๋ํ๋ก์ด๋จผํธ๋ 3๊ฐ์ ๋ ํ๋ฆฌ์นด ํ๋๋ฅผ ์์ฑํ๋ค.
- .spec.selector ํ๋๋ ๋ํ๋ก์ด๋จผํธ๊ฐ ๊ด๋ฆฌํ ํ๋๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ์ ์ ์ํ๋ค. ์ด ์ฌ๋ก์์๋ ํ๋ ํ ํ๋ฆฟ์ ์ ์๋ ๋ ์ด๋ธ(app: nginx)์ ์ ํํ๋ค. ๊ทธ๋ฌ๋ ํ๋ ํ ํ๋ฆฟ ์์ฒด์ ๊ท์น์ด ๋ง์กฑ๋๋ ํ, ๋ณด๋ค ์ ๊ตํ ์ ํ ๊ท์น์ ์ ์ฉ์ด ๊ฐ๋ฅํ๋ค.
์ถ๊ฐ๋ก .metadata.labels์ app์ ํฅํ ์ด๋ ๋ฆฌ์์ค๊ฐ ์ด app ๊ฐ์ ๋ํ๋ก์ด๋จผํธ๋ฅผ ์ฐธ๊ณ ํ๋ คํ ๋ ํ์ํ ๊ฐ์ ์ง์ ํด์ฃผ๊ธฐ ์ํ ๊ฒ์ด๊ณ , .spec.selector.matchLabels์ app์ .spec.template.metadata.labels์ app์ ์ฐธ์กฐํ๋ ๊ฒ์ด๋ค.
.spec.template.metadata.labels์ app์ ์ง์ ํด์ค์ผ๋ก์จ .selector.matchLabels์์ ๋ฆฌ์์ค๋ฅผ ์ฐพ์ ์ ์๋ค.
์ฐธ๊ณ :
.spec.selector.matchLabels ํ๋๋ {key,value}์ ์์ผ๋ก ๋งคํ๋์ด์๋ค. matchLabels ์ ๋งคํ๋ ๋จ์ผ {key,value}์ matchExpressions ์ ์์์ ํด๋นํ๋ฉฐ, key ํ๋๋ "key"์ ๊ทธ๋ฆฌ๊ณ operator๋ "In"์ ๋์๋๋ฉฐ value ๋ฐฐ์ด์ "value"๋ง ํฌํจํ๋ค. ๋งค์นญ์ ์ํด์๋ matchLabels ์ matchExpressions ์ ๋ชจ๋ ์๊ฑด์ด ์ถฉ์กฑ๋์ด์ผ ํ๋ค.
- template ํ๋์๋ ๋ค์ ํ์ ํ๋๊ฐ ํฌํจ๋์ด์๋ค.
- ํ๋๋ .metadata.labels ํ๋๋ฅผ ์ฌ์ฉํด์ app: nginx ๋ผ๋ ๋ ์ด๋ธ์ ๋ถ์ธ๋ค.
- ํ๋ ํ ํ๋ฆฟ์ ์ฌ์ ๋๋ .template.spec ํ๋๋ ํ๋๊ฐ ๋์ปค ํ๋ธ์ nginx 1.14.2 ๋ฒ์ ์ด๋ฏธ์ง๋ฅผ ์คํํ๋ nginx ์ปจํ ์ด๋ 1๊ฐ๋ฅผ ์คํํ๋ ๊ฒ์ ๋ํ๋ธ๋ค.
- ์ปจํ ์ด๋ 1๊ฐ๋ฅผ ์์ฑํ๊ณ , .spec.template.spec.containers[0].name ํ๋๋ฅผ ์ฌ์ฉํด์ nginx ์ด๋ฆ์ ๋ถ์ธ๋ค.
์์ํ๊ธฐ ์ ์, ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๊ฐ ์์๋๊ณ ์คํ ์ค์ธ์ง ํ์ธํ๋ค. ์์ ๋ํ๋ก์ด๋จผํธ๋ฅผ ์์ฑํ๋ ค๋ฉด ๋ค์ ๋งํฌ๋ฅผ ๋ฐ๋ฅธ๋ค.
'...' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kubernetes] kubectl exec -it ๋ช ๋ น์ด์์ -- ์๋ฏธ (0) | 2021.08.24 |
---|---|
[Node.js] Ubuntu์์ Node.js ๋ฒ์ ์ ํ๊ธฐ (0) | 2021.08.24 |
[Kubernetes] ์ค๋ธ์ ํธ(Object)๋? (0) | 2021.08.20 |
[Kubernetes] ์ค๋ธ์ ํธ ์์ฑ์ run, create, apply ์ฐจ์ด (0) | 2021.08.20 |
[JS] ์๋ฐ์คํฌ๋ฆฝํธ ์ฟ ํค ์์ฑ, ์ ์ฅ, ์ญ์ ๊ตฌํํ๊ธฐ (0) | 2021.08.20 |