快盘下载:好资源、好软件、快快下载吧!

快盘排行|快盘最新

当前位置:首页软件教程安卓软件教程 → k8s如何实现pods弹性扩容

k8s如何实现pods弹性扩容

时间:2020-01-26 17:10:39人气:作者:快盘下载我要评论

Kubernetes在autoscalingV2版本的api中支持了Resource、Object、Pods三种指标类型,其中

  • Resource类型:主要用于受限于requests和limits的资源,比如cpu、memory

  • Object类型:主要用于Kubernetes内置的资源对象,如Ingress的每秒请求数指标

  • Pods类型: 主要用于每个pod内的指标,比如tps等。


k8s如何实现pods弹性扩容

要使用hpa,第一步是安装heapster(下面的10.135.19.77换成自己k8s可以访问到的ip)

wget https://github.com/kubernetes/heapster/archive/master.zip  
unzip master.zip  
cd heapster-master/

sed -i "s/gcr.io/Google_containers/heapster-grafana-amd64:v4.4.3/index.tenxcloud.com/jimmy/heapster-grafana-amd64:v4.0.2/g" deploy/kube-config/influxdb/grafana.yaml

sed -i "s/gcr.io/google_containers/heapster-amd64:v1.4.0/index.tenxcloud.com/jimmy/heapster-amd64:v1.3.0-beta.1/g" deploy/kube-config/influxdb/heapster.yaml

sed -i "s/https://kubernetes.default/http://10.135.19.77:8080?inClusterConfig=false&useServiceAccount=false/g" deploy/kube-config/influxdb/heapster.yaml

sed -i "s/monitoring-influxdb.kube-system.svc/10.135.19.77/g" deploy/kube-config/influxdb/heapster.yaml

sed -i "s/gcr.io/google_containers/heapster-influxdb-amd64:v1.3.3/index.tenxcloud.com/jimmy/heapster-influxdb-amd64:v1.1.1/g" deploy/kube-config/influxdb/influxdb.yaml


/bin/bash deploy/kube.sh start

编写测试例子

编写文件a.yaml

apiVersion: extensions/v1beta1  
kind: Deployment  
metadata:  
  name: my-app
spec:  
  replicas: 2
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: registry.alauda.cn/yubang/paas_base_test
        ports:
        - containerPort: 80
        command: ["/bin/bash", "/var/start.sh"] 
        resources:  
          limits:  
            cpu: 0.01  
            memory: 64Mi

编写文件b.yaml

apiVersion: v1  
kind: Service  
metadata:  
  name: my-app-svc
  labels:
    app: my-app
spec:  
  ports:
  - port: 80
    targetPort: 80
    nodePort: 30964
  type: NodePort
  selector:
    app: my-app

编写文件c.yaml

apiVersion: autoscaling/v1  
kind: HorizontalPodAutoscaler  
metadata:  
  name: my-app-hpa
  namespace: default
spec:  
  scaleTargetRef:
    apiVersion: extensions/v1beta1
    kind: Deployment
    name: my-app
  minReplicas: 1
  maxReplicas: 10
  targetCPUUtilizationPercentage: 5

启动服务

kubectl apply -f a.yaml --validate  
kubectl apply -f b.yaml --validate  
kubectl apply -f c.yaml --validate

查看是否正常运行

kubectl get horizontalpodautoscaler

相关文章

  • k8s实战-创建ConfigMap

    k8s的ConfigMap用来保存配置数据,以键值对形式存储,既可以保存单个属性,也可以保存配置文件。使用ConfigMao前请确保已经安装好了k8s集群,在m...

网友评论

快盘下载暂未开通留言功能。

关于我们| 广告联络| 联系我们| 网站帮助| 免责声明| 软件发布

Copyright 2019-2029 【快快下载吧】 版权所有 快快下载吧 | 豫ICP备10006759号公安备案:41010502004165

声明: 快快下载吧上的所有软件和资料来源于互联网,仅供学习和研究使用,请测试后自行销毁,如有侵犯你版权的,请来信指出,本站将立即改正。