11. ๋ฆฌ์†Œ์Šค ์ œ์–ด

    / [pdf]

11.1 ๋ถ€ํ•˜ ๋ฐœ์ƒ์šฉ ์• ํ”Œ๋ฆฌ ์ผ€์ด์…˜ ์ž‘์„ฑ

11.1.1 PHP ์• ํ”Œ๋ฆฌ ์ผ€์ด์…˜ ์ž‘์„ฑ

ํŒŒ์ผ๋ช… : index.php

  <?php
  $x = 0.0001;
  for ($i = 0; $i <= 1000000; $i++) {
    $x += sqrt($x);
  }
  echo "OK!";
?>
  

11.1.2 ๋„์ปค ์ด๋ฏธ์ง€ ๋นŒ๋“œ

  FROM php:5-apache
ADD index.php /var/www/html/index.php
RUN chmod a+rx index.php
  
  docker build -t dangtong/php-apache .
docker login
docker push dangtong/php-apache
  

11.2 ํฌ๋“œ ๋ฐ ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ

12.2.1 Deployment ๋กœ Pod ์ƒˆ์„ฑ

ํŒŒ์ผ๋ช… : php-apache-deploy.yaml

  apiVersion: apps/v1
kind: Deployment
metadata:
  name: php-apache-dp
spec:
  selector:
    matchLabels:
      app: php-apache
  replicas: 1
  template:
    metadata:
      labels:
        app: php-apache
    spec:
      containers:
      - name: php-apache
        image: dangtong/php-apache
        ports:
        - containerPort: 80
        resources:
          limits:
            cpu: 500m
          requests:
            cpu: 200m
  

12.2.2 ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ ์„œ๋น„์Šค ์ž‘์„ฑ

ํŒŒ์ผ๋ช… : php-apache-svc.yaml

  apiVersion: v1
kind: Service
metadata:
  name: php-apache-lb
spec:
  type: LoadBalancer
  ports:
  - port: 80
    targetPort: 80
  selector:
    app: php-apache
  
  kubectl apply -f ./php-apache-deploy.yaml
kubectl apply -f ./php-apache-svc.yaml
  

[์—ฐ์Šต๋ฌธ์ œ] 10-1 Pod ๋ฆฌ์†Œ์Šค ์ œ์–ดํ•˜๊ธฐ

์•„๋ž˜ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž๋Š” deploy ๋ฅผ ๊ตฌํ˜„ ํ•˜์„ธ์š”

  1. Deploy name : nginx
  2. image : nginx
  3. cpu 200m
  4. ๋ฉ”๋ชจ๋ฆฌ : 300Mi
  5. Port : 80

12.3 HPA ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

12.3.1 HPA ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

  kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=5
  

12.3.2 HPA ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ ํ™•์ธ

  kubectl get hpa
  

12.4 Jmeter ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ

12.4.1 Jmeter ์„ค์น˜๋ฅผ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ฒƒ๋“ค

12.4.2 Jmeter ๋ฅผ ํ†ตํ•œ ๋ถ€ํ•˜ ๋ฐœ์ƒ

12.4.3 ๋ถ€ํ•˜ ๋ฐœ์ƒํ›„ Pod ๋ชจ๋‹ˆํ„ฐ๋ง

  $ kubectl get hpa

$ kubectl top pods

NAME                          CPU(cores)   MEMORY(bytes)
nodejs-sfs-0                  0m           7Mi
nodejs-sfs-1                  0m           7Mi
php-apache-6997577bfc-27r95   1m           9Mi


$ kubectl exec -it nodejs-sfs-0 top

Tasks:   2 total,   1 running,   1 sleeping,   0 stopped,   0 zombie
%Cpu(s):  4.0 us,  1.0 sy,  0.0 ni, 95.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   3786676 total,  3217936 used,   568740 free,   109732 buffers
KiB Swap:        0 total,        0 used,        0 free.  2264392 cached Mem
    PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
      1 root      20   0  813604  25872  19256 S  0.0  0.7   0:00.17 node
     11 root      20   0   21924   2408   2084 R  0.0  0.1   0:00.00 top
  

[์—ฐ์Šต๋ฌธ์ œ] 12-1 HPA ์ ์šฉ ์‹ค์Šต

์ด๋ฏธ์ง€๋ฅผ nginx ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  HPA ๋ฅผ ์ ์šฉํ•˜์„ธ์š”

  • Max : 8
  • Min : 2
  • CPU ์‚ฌ์šฉ๋Ÿ‰์ด 40% ๊ฐ€ ๋˜๋ฉด ์Šค์ผ€์ผ๋ง ๋˜๊ฒŒ ํ•˜์„ธ์š”