- Lab
- A Cloud Guru
Scaling Pods in Kubernetes
For the last six months, the Acme Anvil Corporation has been migrating their bare metal infrastructure to Docker containers. A schism has developed between the members of your team on whether to use Docker Swarm or Kubernetes. To settle the dispute, your manager has decided to create a series of challenges. You have been tasked with setting up a Kubernetes cluster with 3 nodes: 1 master and 2 workers. First, you will create a deployment with 3 replicas using the `httpd` image. Next, you will create a service that will make the pod publicly accessible. Finally, you will scale the pod up to 5 replicas and then down to 2.
Path Info
Table of Contents
-
Challenge
Complete the Kubernetes Install
Initialize the cluster:
kubeadm init --pod-network-cidr=10.244.0.0/16 --kubernetes-version=v1.11.3 mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
Install Flannel on the master:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.9.1/Documentation/kube-flannel.yml
-
Challenge
Create the Deployment
vi deployment.yml
Add the following to
deployment.yml
:apiVersion: apps/v1 kind: Deployment metadata: name: httpd-deployment labels: app: httpd spec: replicas: 3 selector: matchLabels: app: httpd template: metadata: labels: app: httpd spec: containers: - name: httpd image: httpd:latest ports: - containerPort: 80
Spin up the deployment:
kubectl create -f deployment.yml
-
Challenge
Create the Service
vi service.yml
Add the following to
service.yml
:kind: Service apiVersion: v1 metadata: name: service-deployment spec: selector: app: httpd ports: - protocol: TCP port: 80 targetPort: 80 type: NodePort
Create the service:
kubectl create -f service.yml
-
Challenge
Scale the Deployment Up to 5 Replicas
vi deployment.yml
Change the number of replicas to 5:
spec: replicas: 5
Apply the changes:
kubectl apply -f deployment.yml
-
Challenge
Scale the Deployment Down to 2 Replicas
vi deployment.yml
Change the number of replicas to 2:
spec: replicas: 2
Apply the changes:
kubectl apply -f deployment.yml
What's a lab?
Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.
Provided environment for hands-on practice
We will provide the credentials and environment necessary for you to practice right within your browser.
Guided walkthrough
Follow along with the author’s guided walkthrough and build something new in your provided environment!
Did you know?
On average, you retain 75% more of your learning if you get time for practice.