部署keda

keda 部署十分简单直接下载yaml文件就可用部署了

  1. $ kubectl create namespace keda
  2. $ kubectl apply -f https://github.com/kedacore/keda/releases/download/v2.6.1/keda-2.6.1.yaml

KEDA测试demo

同样也是测试

  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4. name: hpa-demo
  5. spec:
  6. selector:
  7. matchLabels:
  8. app: nginx
  9. template:
  10. metadata:
  11. labels:
  12. app: nginx
  13. spec:
  14. containers:
  15. - name: nginx
  16. image: docker.io/library/nginx:1.11.3
  17. ports:
  18. - containerPort: 80
  19. resources:
  20. requests:
  21. memory: 50Mi
  22. cpu: 50m
  23. ---
  24. apiVersion: v1
  25. kind: Service
  26. metadata:
  27. labels:
  28. app: nginx
  29. name: hpa-demo
  30. spec:
  31. ports:
  32. - name: http
  33. port: 80
  34. protocol: TCP
  35. targetPort: 80
  36. selector:
  37. app: nginx
  38. type: ClusterIP
  39. ---
  40. apiVersion: keda.sh/v1alpha1
  41. kind: ScaledObject
  42. metadata:
  43. name: hpa-demo
  44. spec:
  45. scaleTargetRef:
  46. apiVersion: apps/v1
  47. kind: Deployment
  48. name: hpa-demo
  49. minReplicaCount: 1
  50. maxReplicaCount: 5
  51. triggers:
  52. - type: cpu
  53. metadata:
  54. type: Utilization
  55. value: "10"

部署到k8s上,由于创建cpu hpa,所以keda也是在

  1. $ kubectl apply -f ./demo-hpa.yaml -n default

检验scaledobject.keda.sh

  1. $ kubectl get scaledobject.keda.sh hpa-demo
  2. NAME SCALETARGETKIND SCALETARGETNAME MIN MAX TRIGGERS AUTHENTICATION READY ACTIVE FALLBACK AGE
  3. hpa-demo apps/v1.Deployment hpa-demo 1 5 cpu True True Unknown 6m25s

感觉没有什么信息,重新检查一下hpa对象

  1. $ kubectl get hpa -n defaul
  2. NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
  3. keda-hpa-hpa-demo Deployment/hpa-demo 0%/10% 1 5 5 8m14s

检查keda-hpa-hpa-demo是和k8s hpa 设置的一致

测试命令

获取demo-hpa service 服务地址, 发送请求

  1. $ kubectl get service
  2. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
  3. hpa-demo ClusterIP 10.235.51.171 <none> 80/TCP 12m
  4. $ while true; do wget -q -O- http://10.235.51.171; done

其他相关