zoukankan      html  css  js  c++  java
  • k8s pod 自动水平扩展

    1. 当前环境

    kubernetes        v1.17
    metrics-server    v0.3.6
    

    要实现hpa,metrics-server 需要部署到集群中, 它可以通过 resource metrics API 对外提供度量数据,Horizontal Pod Autoscaler 正是根据此 API 来获取度量数据。

    2. 部署metrics-server

    k8s部署参考网站 https://github.com/kubernetes-sigs/metrics-server/tree/master/deploy/kubernetes

    • metrics-server不能使用,报错不能解析node节点的主机名
    - --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
    
    • metrics-server报错,x509,证书是非信任的
    - --kubelet-insecure-tls
    

    加在 args 的参数里面,args 片段如下

    args:
        - --cert-dir=/tmp
        - --secure-port=4443
        - --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP
        - --kubelet-insecure-tls
    

    3. 部署一个应用与hpa

    hpa 全拼 horizontal pod autoscaler,可以实现pod根据条件实现水平扩展,比如cpu、内存、访问量等。
    测试一个根据cpu的水平扩展,cpu限制的片段,限制cpu为0.02,100mCPU就是100 miliCPU,等价于0.1CPU

    resources:
        limits:
            cpu: "20m"
        requests:
            cpu: "20m"
    

    部署一个hpa

    apiVersion: autoscaling/v2beta2
    kind: HorizontalPodAutoscaler
    metadata:
      name: spring-boot-demo-deployment
      namespace: default
    spec:
      scaleTargetRef:
        apiVersion: apps/v1
        kind: Deployment
        name: spring-boot-demo-deployment
      minReplicas: 1
      maxReplicas: 2
      metrics:
      - type: Resource
        resource:
          name: cpu
          target:
            type: Utilization
            averageUtilization: 15
    status:
      conditions: null
      observedGeneration: 1
      currentReplicas: 1
      desiredReplicas: 1
      currentMetrics:
      - type: Resource
        resource:
          name: cpu
          current:
            averageUtilization: 0
            averageValue: 0
    

    当cpu利用率超过15%,pod会水平扩展成2个,当cpu降下来后pod又会收缩成1个。
    当pod每秒超过服务1000个数据包请求时,触发扩展,样本如下。

    - type: Pods
       pods:
          metric:
            name: packets-per-second
          targetAverageValue: 1k
    

    参考网站 https://kubernetes.io/zh/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/

  • 相关阅读:
    UNIX常用shell
    exit函数
    linux消息队列
    互斥量
    RCS版本控制
    linux samba
    UML建模
    linux syslog
    python基础-列表List及内置方法
    仿美团详情页与购物车源码-详情页
  • 原文地址:https://www.cnblogs.com/wh-blog/p/12285599.html
Copyright © 2011-2022 走看看