One of the first things you’re going to want to do do with your Kubernetes deployments is to scale them to meet growing demand. Jack Wallen shows you how.
In basic terms, a deployment is a Kubernetes object that manages the creation of pods via ReplicaSets. The deployment creates pods by way of a specification from a template. With a deployment, it is possible to quickly scale up or down a set of identical pods.
Say, for instance, you want to deploy a set of identical NGINX pods to your cluster. By using a deployment, you can very quickly scale those pods to meet demand.
I want to show you how to create an NGINX deployment, and then scale it up.
SEE: Serverless computing: A guide for IT leaders (TechRepublic Premium)
What you’ll need
To make this work, you’ll need a running Kubernetes cluster. If you don’t already have one at the ready, follow my guide: How to deploy a Kubernetes cluster on Ubuntu server. Once you have the cluster up and running, you’re set to work.
How to create the deployment
The first thing we’re going to do is create the nginx-deploy.yaml file. Do this with the command:
nano nginx-deploy.yaml
In the file paste the following:
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80
Take a look at the line:
replicas: 3
That line tells Kubernetes we’re going to create three identical Pods, named nginx.
Save and close the file.
To create the deployment, issue the command:
kubectl apply -f nginx-deploy.yaml
If you issue the command:
kubectl get deployments
You should see that nginx-deployment is listed with 3/3 Pods ready (Figure A).
Figure A
How to scale the deployment
With our deployment created, we can now scale it up. Let’s say you have a need to scale the number of NGINX pods from three to five. There are two ways to do this. First, you could edit the YAML file and change the line:
replicas: 3
to:
replicas: 5
Once you’ve changed that value, save and close the file, and rerun the command:
kubectl apply -f nginx-deploy.yaml
After running the above command, you should see nginx-deployment listed as 5/5 (Figure B).
Figure B
Another way of doing this is via the command line (without editing the YAML file). Say we want to take the NGINX pods up to 11. For that, we use the kubectl scale command like so:
kubectl scale deployments/nginx-deployment --replicas=11
At this point, our NGINX pods should be listed as 11/11 (Figure C).
Figure C
How to scale down your pods
You can also scale those pods down in the same way you scaled them up. Within the YAML file, you could change the:
replicas: 5
line to:
replicas: 3
And with the kubectl command you could scale them from 11 to 3 like so:
kubectl scale deployments/nginx-deployment --replicas=3
You could even scale them down to 0 if you need.
And that’s the basics of scaling Kubernetes deployments up and down. Although this is a very simple example, you can apply that to far more complicated deployments and get them scaled to meet your growing container demands.
Also see
Source of Article