Home > Mobile >  Horizontal scaling of a deployment on GCP Kubernetes
Horizontal scaling of a deployment on GCP Kubernetes

Time:08-20

I have a cluster where I have deployed multiple applications and I want to horizontally scale one of the deployment. Following is my Yaml for the deployment, how can I achieve it ? Note : I have tried changing the replicas to more than 1 and applied the new config and restarted the deployment but want to know if I need to add any policies, specs, etc to achieve the right horizontal scaling.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: preview
  namespace: default
  resourceVersion: {}
  uid: {}
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: preview
  strategy:
    type: Recreate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: preview
    spec:
      containers:
      - image: gcr.io/{project name}/{image name}
        imagePullPolicy: Always
        name: preview
        resources:
          requests:
            cpu: 10m
            memory: 450Mi
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /app/data
          name: data
        - mountPath: /app/conf
          name: config
          readOnly: true
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
      volumes:
      - name: data
        persistentVolumeClaim:
          claimName: preview
      - name: config
        secret:
          defaultMode: 420
          secretName: preview-secrets

CodePudding user response:

In GKE, you can achieve this with Horizontal Pod Autoscaler (HPA). The autoscaling event can be configured to be triggered by system (eg. cpu or memory) or custom metrics (eg. pubsub queued messages count). You can also set the minimum and maximum number of pods to scale up to.

Here is a link from GCP for a sample HPA yaml file

CodePudding user response:

Menu > GKE > Workloads > click on your deployment > 3 dots (more actions) > Actions > Autoscale > set metrics > Save

CodePudding user response:

You can use the HPA (Horizontal Pod Autoscaler). Here is what the typical yaml configuration looks like.

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: hpa_name
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: deployment_name_to_autoscale
  minReplicas: 1
  maxReplicas: 3
  targetCPUUtilizationPercentage: 80

You can monitor the scaling using kubectl get hpa

  • Related