1 watch -d kubectl get hpa,no,deploy,svc,pods --kubeconfig="/root/kubeconfig.yaml" k get pods -n kube-system 2 # 1. 테스트 Deployment 생성 cat <<'YAML' > deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: myapp spec: replicas: 2 selector: matchLabels: app: myapp template: metadata: labels: app: myapp spec: containers: - name: myapp image: nginx ports: - containerPort: 80 resources: requests: cpu: "200m" memory: "256Mi" limits: cpu: "500m" memory: "512Mi" YAML k apply -f deployment.yaml # kubectl apply -f deployment.yaml deployment.apps/myapp 2/2 2 2 11s 3 # 2. LoadBalancer 서비스 생성 cat <<'YAML' > service.yaml apiVersion: v1 kind: Service metadata: name: myapp-svc spec: type: LoadBalancer selector: app: myapp ports: - port: 80 targetPort: 80 YAML k apply -f service.yaml # kubectl apply -f service.yaml service/myapp-svc LoadBalancer 198.19.179.38 default-myapp-svc-037d4-133214676-6848656ec63b.kr.lb.naverncp.com 80:31963/TCP 53s (3분후 웹접속) 4 # 3. HPA 생성 cat <<'YAML' > hpa.yaml apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: myapp-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: myapp minReplicas: 2 maxReplicas: 10 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 60 YAML k apply -f hpa.yaml # kubectl apply -f hpa.yaml horizontalpodautoscaler.autoscaling/myapp-hpa Deployment/myapp cpu: 0%/60% 2 10 2 24s 5 dnf install -y httpd-tools ab -n 10000 -c 100 http://LB주소/ ab -n 10000 -c 100 http://default-myapp-svc-037d4-133214676-6848656ec63b.kr.lb.naverncp.com/ 6 wget https://hey-release.s3.us-east-2.amazonaws.com/hey_linux_amd64 chmod +x hey_linux_amd64 ./hey_linux_amd64 -z 2m -c 200 http://LB주소/ 2분 동안 동시 200 요청 ./hey_linux_amd64 -z 20m -c 2000 http://default-myapp-svc-037d4-133214676-6848656ec63b.kr.lb.naverncp.com/