资讯

展开

k8s如何实现pods弹性扩容

作者:快盘下载 人气:

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


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

加载全部内容

相关教程
猜你喜欢
用户评论
快盘暂不提供评论功能!