-
Skaffold๋ฅผ ๋ก์ปฌ ํ๊ฒฝ์์ ์ฌ์ฉํด๋ณด๊ธฐ ์ํ ์์ ๋ ํฌ์งํ ๋ฆฌ ์ ๋๋ค.
-
Helm์ ์ฌ์ฉํด ๊ฐ๋จํ ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ, ๊ตฌ์กฐ๋ ์๋์ ๊ฐ์ต๋๋ค.
|--- Dockerfile |--- go.mod |--- main.go |--- skaffold.yaml |--- helm |--- Chart.yaml |--- internal-values.yaml |--- templates |--- deployment.yaml |--- service.yaml
-
ํด๋น ๋ ํฌ์งํ ๋ฆฌ๋ฅผ clone ๋ฐ์ ํ,
minikube start๋ช ๋ น์ด๋ก Minikube๋ฅผ ์คํํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์๋ ๋ช ๋ น์ด๋กskaffold-pocnamespace๋ฅผ ์์ฑ ํ ์ฌ์ฉํฉ๋๋ค.$ kubectl create ns skaffold-poc $ kubectl config set-context --current --namespace skaffold-poc
-
Local ํ๊ฒฝ์์ ์๋ฆฌ๊ธฐ ์ํด ์๋ ๋ช ๋ น์ด๋ฅผ ์ํํฉ๋๋ค.
$ skaffold config set local-cluster true
- ์ด ์ค์ ์ผ๋ก ์ธํด ์๋กญ๊ฒ ๋น๋๋ ์ด๋ฏธ์ง๊ฐ registry์ push๋์ง ์์ต๋๋ค.
-
Skaffold๋ฅผ ์คํํด Minikube์ Kubernetes object๋ค์ ๋ฐฐํฌํฉ๋๋ค.
$ skaffold run
-
Pod์ HTTP ์์ฒญ์ ๋ณด๋ด๊ธฐ ์ํด ์๋ ๋ช ๋ น์ด๋ก pod์ ํฌํธ ๋ฒํธ๋ฅผ ์์๋ ๋๋ค.
$ minikube service skaffold-poc-service -n skaffold-poc --url http://127.0.0.1:60520
-
์๋์ฒ๋ผ pod์ ์์ฒญ์ ๋ณด๋ด ์๋ต์ ํ์ธํฉ๋๋ค.
$ curl localhost:60520/health {"message": "server is running."}% -
์ด์
main.go์ response body๋ฅผ ์์ ํด๋ด ๋๋ค.package main import "net/http" func main() { http.HandleFunc("/health", func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") _, _ = w.Write([]byte(`{"message": "UPDATED MESSAGE!"}`)) }) _ = http.ListenAndServe(":8080", nil) }`
-
๋ค์
skaffold run์ ์ํํด ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๊ณ , Minikube ๋ช ๋ น์ด๋ ๋ค์ ์คํํด ๋ด ๋๋ค.$ skaffold run # ์ด๋ฏธ์ง ๋น๋ ํ deploy ์ฑ๊ณต ๋ฉ์์ง ์ถ๋ ฅ $ minikube service skaffold-poc-service -n skaffold-poc --url http://127.0.0.1:60736 -
์ด์ ์ด์ ๊ณผ ๋์ผํ
/healthpath๋ก ์์ฒญ์ ๋ณด๋ด Skaffold๊ฐ ์ ์์ ์ผ๋ก ์๋ก์ด ์ด๋ฏธ์ง๋ฅผ
Kubernetes cluster์ ๋ฐฐํฌํ๋์ง ํ์ธํฉ๋๋ค.$ curl localhost:60736/health {"message": "UPDATED MESSAGE!"}%