๐ฏ Goals
- service yaml ์ ์ํด๋ณธ๋ค.
- deployment yaml ์ ์ ์ํด๋ณธ๋ค.
- ๋ฆฌ์์ค ๋ฐฐํฌ๋ฅผ yaml ํ์ผ๋ก ํด๋ณธ๋ค.
- ์ ์ฒด ๋ฆฌ์์ค๊ฐ ๋ด๊ธด 1๊ฐ yaml ์ ์ ์ํด๋ณธ๋ค.
- Selector & Label ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์๋ค.
service.yaml ์ ์
"type 'LoadBalancer' ๋ก port 80 - targetPort 8080"
LB์ port 80 ์ Listen ํ์ฌ Pod ์ ๋ ธ์ถ๋ ํฌํธ 8080์ผ๋ก ๋ณด๋ด์ฃผ๊ฒ ๋ค.
deployment.yaml ์ ์
์ฌ๊ธฐ์์ template ์ PodTemplate์ผ๋ก ์๋ ์ง์ ๋์ด์๋ค. (kind ๊ฐ Deploymenta์ธ ๊ฒฝ์ฐ/)
3๊ฐ์ Pod ReplicaSet ์ ๊ฐ๋ deployment ํ์ผ์ ์ ์ํ๋ค.
Deployment, Service ๋๊ฐ์ ๋ฆฌ์์ค ์ ์๊ฐ ์๋ฃ๋์๋ค๋ฉด ์คํํด๋ณด์.
์คํ ๊ฒฐ๊ณผ
๋ก์ปฌ ํ๊ฒฝ minikube ์คํ์ค์ด๋ผ๋ฉด
LB Endpoint ๋ฅผ ์์๋ด์ผํ๋ค.
๋ก๋๋ฐธ๋ฐ์ค ์๋น์ค๋ฅผ ์ ์ํ๊ณ ๋์ ์์๋ External IP ๊ฐ pending ์ํ๋ก ์ ์ง๋๋ ๋ฌธ์ ๊ฐ ์๋๋ฐ
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ๋ค์ ๋ช ๋ น์ด๋ก ์๋น์ค์ ์๋ํฌ์ธํธ๋ฅผ ์ฐพ์๋ด์ผํ๋ค.
$ minikube service [service-name]
ํตํฉ ํ์ผ ์ ์
๋ฆฌ์์ค๋ณ๋ก ์ฌ๋ฌ ํ์ผ์ ๋๋ ๊ด๋ฆฌํ ์๋ ์์ง๋ง, ํ๋์ ํ์ผ๋ก ํตํฉ๊ด๋ฆฌ ํ๋ ๊ฒ๋ ๊ด์ฐฎ์ ๋ฐฉ๋ฒ์ด๋ค.
๊ฐ์ข ๋ฆฌ์์ค๋ฅผ ํ์ค์ ๋ช ๋ น์ด๋ก ๋์์ orchestration ํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
yaml ํ์ผ์ด ์์์ ์๋๋ก ํด์๋๋ค.
ํตํฉ Yaml์ ์ด๋ค๋ฉด,
Service ๋ฆฌ์์ค๋ฅผ ์๋จ์ ์ ์ํ๋ผ.
์๋จ์ Service ๋ฅผ ์ ์ํด์ผ ํ๋์ ์ธ๋ถ ์์ฒญ์ฉ ๋คํธ์ํฌ ์ ๋ณด(ex. ๋จ์ผ Endpoint) ๋ฅผ ํ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐ๋์ ๋ฐ๋ผ์ผ ํ๋ ๊ฒ์ ์๋๋, ๊ด๋ก์ฒ๋ผ ์ฐ์ธ๋ค.
๋จ์ผ ํ์ผ์ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ์ ์ํ๋ฉด ํ์ค์ ๋ช ๋ น์ด๋ก ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ์ ์ดํ๊ธฐ ํธํ๋ค๋ ์ฅ์ ์ด ์๋ค.
CLI ํ์ค๋ก ํตํฉ ํ์ผ์ธ both.yaml ์ ์ ์ํ deployment ์ service ๋ฅผ ๋์์ ์ ๊ฑฐ๋์๋ค.
Selector - Label
Label
์ฟ ๋ฒ๋คํฐ์ค์์ label ์ ๊ณตํต์ ์ ๊ฐ๋ ํน์ ๊ณตํต์ ์ ์ด ๋์์ธ ๊ทธ๋ฃน์ ๋ฌถ๊ธฐ ์ํ key-value ๋ค.
๊ตฌ์ฒด์ ์ธ ์๋ฅผ ์ดํด๋ณด์.
์ด์ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ฆฌ์์ค๋ฅผ ๊ทธ๋ฃนํ ํ๋ค๊ณ ์๋ฅผ ๋ค์ด๋ณด์.
- "environment" : "dev"
- "environment" : "qa"
- "environment" : "production"
์์ ๊ฐ์ด ์ด์ํ๊ฒฝ - ๊ฐ์ label ๋ก ๋๋ฉด ๊ณตํต ํ๊ฒฝ์ ๋ฆฌ์์ค๋ฅผ ํ๋ฒ์ ์ ์ดํ ์ ์๋ค.
Selector
์๋ ์ด๋ฆ์ Label Selector ์ด๋ค.
Selector ๋จ์ด ์์ Label ์ ์๋ตํ์ฌ ๋ถ๋ฅธ๋ค.
์ด๋ฆ ๊ทธ๋๋ก Selector ๋ ํน์ ๋ผ๋ฒจ์ ์ง์ ํ์ฌ ์ ์๋ ๋ช ๋ น์ ๋ด๋ฆฌ๊ธฐ ์ํ ๊ตฌ๋ถ์๋ค.
๐ Reference
'๊ธฐํ > Kubernetes' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[k8s] Service & kube-proxy (0) | 2023.08.10 |
---|---|
[k8s] VirtualBox k8s cluster ์์ฑ ์คํจ ์ด์ ํด๊ฒฐ (0) | 2023.08.09 |