๐Ÿ”– ์„œ๋ก 

๋งŒ๋“œ๋Š”๋ฒ•์€ ์ด์ „๊ธ€์„ ์ฐธ๊ณ  ํ•ด์ฃผ์„ธ์š”.

์ด๋ฒˆ์—๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์‹ค์Šต ํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.

์ฝ”๋“œ๋Š” ์œ„์˜ ๋งํฌ์— ์žˆ์œผ๋ฉฐ ๊ฐ„๋‹จํ•œ ์‹ค์Šต ๋‚ด์šฉ์ด๋ผ ์•ˆ๋˜๋Š” ๋ถ€๋ถ„์€ ๋Œ“๊ธ€๋กœ ๋ถ€ํƒ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

๐Ÿ–‹๏ธ ์‹ค์Šต GCP Kubernetes Engine Pod ์ƒ์„ฑ ๋ฐ ์ˆ˜์ •

์‹œ์ž‘ ์ „ ํ…Œ์ŠคํŠธ kubectl get pod ๋ช…๋ น์–ด ์‹œ ์—๋Ÿฌ๊ฐ€ ๋‚  ๊ฒฝ์šฐ ์ด์ „ ๋ธ”๋กœ๊ทธ ๊ธ€์„ ํ™•์ธํ•ด์ฃผ์„ธ์š”.

1. git clone ์„ ์ง„ํ–‰ํ•ด์ฃผ์„ธ์š”.

  git clone https://github.com/smk692/kubernetes-summarize.git

์ค€๋น„๋ฌผ: deployment.yaml

  apiVersion: apps/v1
  kind: Deployment
  metadata:
  name: nginx
  spec:
  selector:
  matchLabels:
        app: nginx
  replicas: 3
  template:
  metadata:
        labels:
        app: nginx
  spec:
        containers:
        - name: nginx
        image: nginx:1.21.1
        ports:
        - containerPort: 80
        resources:
        limits:
              memory: "64Mi"
              cpu: "50m"

2. ๋””๋ ‰ํ† ๋ฆฌ ์œ„์น˜ ๋ณ€๊ฒฝ

cd kubernetes-summarize/step1

3. pod ์ƒ์„ฑ

kubectl apply -f deployment.yaml

kubectl get deployment

gcp-kube1


GCP Kubernetes Engine ์ž˜ ์ƒ์„ฑ๋œ๊ฑธ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

gcp-kube2

์Šคํฌ๋ฆฐ์ƒท๊ณผ ๊ฐ™์ด ๋œจ๋ฉด Pod ์ƒ์„ฑ์ด ์™„๋ฃŒ!

4. pod ๋ณ€๊ฒฝ

kubectl get deployment

NAME    READY   UP-TO-DATE   AVAILABLE   AGE
nginx   3/3     3            3           6m33s

์œ„์—์„œ ํ™•์ธํ•œ Name ์œผ๋กœ ๋ณ€๊ฒฝ์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

kubectl edit deployment nginx

gcp-kube2

์ €์žฅ ์‹œ deployment.apps/nginx edited ์ˆ˜์ •์ด๋˜์—ˆ๋‹ค๊ณ  ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

gcp-kube2

์Šคํฌ๋ฆฐ์ƒท๊ณผ ๊ฐ™์ด ๋œจ๋ฉด Pod ๋ณ€๊ฒฝ์ด ์™„๋ฃŒ!


5. pod ์‚ญ์ œ

kubectl get pod

NAME                     READY   STATUS    RESTARTS   AGE
nginx-57858cd857-c8j25   1/1     Running   0          46m

kubectl delete pod nginx-57858cd857-c8j25

pod "nginx-57858cd857-c8j25" deleted # ์‹คํ–‰๋˜๋ฉด์„œ ์‚ญ์ œ ๋œ๋‹ค.

kubectl get pod # ๋‹ค์‹œ ํ™•์ธํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ƒˆ๋กœ ๋œน๋‹ˆ๋‹ค.

NAME                     READY   STATUS              RESTARTS   AGE
nginx-57858cd857-mj5vz   0/1     ContainerCreating   0          2s

yaml ์—์„œ ์ด๋ฏธ replicas ์ง€์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ญ์ œ๋˜์–ด๋„ ์ƒˆ๋กœ์šด pod ๊ฐ€ ๋œจ๋Š”๊ฑธ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ–Š๏ธ ์‹ค์Šต GCP Kubernetes Engine port-forward ํ…Œ์ŠคํŠธ

ํฌํŠธํฌ์›Œ๋”ฉ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹ค๋ฌด์—์„œ๋Š” ๋งŽ์ด ์‚ฌ์šฉ๋˜์ง€๋Š” ์•Š๊ณ  ๊ฐœ๋ฐœ์—์„œ ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  # pod ์กฐํšŒ
  kubectl get pod 
  
  NAME                     READY   STATUS    RESTARTS   AGE 
  nginx-57858cd857-c8j25   1/1     Running   0          16m


  kubectl port-forward nginx-57858cd857-c8j25 8080:80

์œ„์—๋Š” ๋ƒ…๋‘๊ณ  ์ด์ œ ๋‹ค๋ฅธ ํ„ฐ๋ฏธ๋„์œผ๋กœ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ๋‚ ๋ฆฌ๋ฉด ์ž˜ ์กฐํšŒ ๋˜๋Š”๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

curl localhost:8080/version

<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.21.1</center>
</body>
</html>

๐Ÿ“š Kubernetes ๋กœ๊ทธ ๋ณด๋Š” ๋ฐฉ๋ฒ•

# ์‹คํ–‰์ค‘์ธ ํฌ๋“œ๋ฅผ ์ ‘๊ทผํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ ํ™•์ธ 
kubectl attach deployment/nginx -c nginx

# ์‹คํ–‰์ค‘์ธ ํฌ๋“œ๋ฅผ ์ ‘๊ทผํ•˜์—ฌ ์ „์ฒด ๋ฐ ์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ ํ™•์ธ 
kubectl logs deployment/nginx -c nginx -f

gcp-kube2