Kubernetes Introduction
Monolithic Architecture
Micro Services Architecture
Monolithic Vs. Micro Services Architecture
Containers Overview
Container Orchestration Engines
Managed Kubernetes Services
Kubernetes Architecture
Kubernetes Cluster Setup
POD Management
Replication Controller
ReplicaSet Controller
Deployment Controller
Kubernetes Services
Configure aws-provider on kubernetes cluster
Load Balancer service on Kubernetes
116 Followers
What is Deployment?
Deployment is the process of running the application work load on the POD.
Create manifest file for Deployment in Kubernetes cluster
Create "createDeployment.yaml" file with the below manifest file definitions
#Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deploy
labels:
app: nginx-app
spec:
replicas: 3
selector:
matchLabels:
app: nginx-app
template:
metadata:
labels:
app: nginx-app
spec:
containers:
- name: nginx-container
image: nginx
ports:
- containerPort: 80Create Deployment in K8s cluster
[root@ ~]$kubectl apply -f createDeployment.yaml
deployment.apps/nginx-deploy created
[root@ ~]$Verify Deployments
[root@ ~]$kubectl get deploy
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-deploy 3/3 3 3 36s
[root@ ~]$kubectl get deploy -o wide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
nginx-deploy 3/3 3 3 39s nginx-container nginx app=nginx-app
[root@ ~]$
Verify Replica Sets
[root@ ~]$kubectl get rs
NAME DESIRED CURRENT READY AGE
nginx-deploy-7dcc9fb9c4 3 3 3 2m19s
[root@ ~]$kubectl get rs -o wide
NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES SELECTOR
nginx-deploy-7dcc9fb9c4 3 3 3 2m21s nginx-container nginx app=nginx-app,pod-template-hash=7dcc9fb9c4
[root@ ~]$
Verify running PODs
[root@ ~]$kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-deploy-7dcc9fb9c4-2zkwg 1/1 Running 0 2m54s
nginx-deploy-7dcc9fb9c4-5pl8l 1/1 Running 0 2m54s
nginx-deploy-7dcc9fb9c4-pvflw 1/1 Running 0 2m54s
[root@ ~]$kubectl get po
NAME READY STATUS RESTARTS AGE
nginx-deploy-7dcc9fb9c4-2zkwg 1/1 Running 0 2m57s
nginx-deploy-7dcc9fb9c4-5pl8l 1/1 Running 0 2m57s
nginx-deploy-7dcc9fb9c4-pvflw 1/1 Running 0 2m57s
[root@ ~]$
Describe Replica Set configuration
[root@ ~]$kubectl describe rs
Name: nginx-deploy-7dcc9fb9c4
Namespace: default
Selector: app=nginx-app,pod-template-hash=7dcc9fb9c4
Labels: app=nginx-app
pod-template-hash=7dcc9fb9c4
Annotations: deployment.kubernetes.io/desired-replicas: 3
deployment.kubernetes.io/max-replicas: 4
deployment.kubernetes.io/revision: 1
Controlled By: Deployment/nginx-deploy
Replicas: 3 current / 3 desired
Pods Status: 3 Running / 0 Waiting / 0 Succeeded / 0 Failed
Pod Template:
Labels: app=nginx-app
pod-template-hash=7dcc9fb9c4
Containers:
nginx-container:
Image: nginx
Port: 80/TCP
Host Port: 0/TCP
Environment: <none>
Mounts: <none>
Volumes: <none>
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal SuccessfulCreate 3m24s replicaset-controller Created pod: nginx-deploy-7dcc9fb9c4-5pl8l
Normal SuccessfulCreate 3m24s replicaset-controller Created pod: nginx-deploy-7dcc9fb9c4-2zkwg
Normal SuccessfulCreate 3m24s replicaset-controller Created pod: nginx-deploy-7dcc9fb9c4-pvflw
[root@ ~]$Describe Deployment configuration
[root@ ~]$kubectl describe deploy
Name: nginx-deploy
Namespace: default
CreationTimestamp: Sat, 04 Jul 2020 06:32:36 +0000
Labels: app=nginx-app
Annotations: deployment.kubernetes.io/revision: 1
Selector: app=nginx-app
Replicas: 3 desired | 3 updated | 3 total | 3 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: app=nginx-app
Containers:
nginx-container:
Image: nginx
Port: 80/TCP
Host Port: 0/TCP
Environment: <none>
Mounts: <none>
Volumes: <none>
Conditions:
Type Status Reason
---- ------ ------
Available True MinimumReplicasAvailable
Progressing True NewReplicaSetAvailable
OldReplicaSets: <none>
NewReplicaSet: nginx-deploy-7dcc9fb9c4 (3/3 replicas created)
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ScalingReplicaSet 3m53s deployment-controller Scaled up replica set nginx-deploy-7dcc9fb9c4 to 3
[root@ ~]$Scale Out POD Replicas in the Replica Set managed by Deployment
[root@ ~]$kubectl scale deployment nginx-deploy --replicas=5
deployment.apps/nginx-deploy scaled
[root@ ~]$kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-deploy-7dcc9fb9c4-8dtc2 1/1 Running 0 43s
nginx-deploy-7dcc9fb9c4-c5tg2 1/1 Running 0 43s
nginx-deploy-7dcc9fb9c4-tt2fc 1/1 Running 0 43s
nginx-deploy-7dcc9fb9c4-z29qq 1/1 Running 0 4s
nginx-deploy-7dcc9fb9c4-zjf78 1/1 Running 0 4s
[root@ ~]$kubectl get rs
NAME DESIRED CURRENT READY AGE
nginx-deploy-7dcc9fb9c4 5 5 5 50s
[root@ ~] POD Replicas in the Replica Set managed by Deployment[root@ ~]$kubectl scale deployment nginx-deploy --replicas=3
deployment.apps/nginx-deploy scaled
[root@ ~]$kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-deploy-7dcc9fb9c4-8dtc2 1/1 Running 0 2m3s
nginx-deploy-7dcc9fb9c4-c5tg2 1/1 Running 0 2m3s
nginx-deploy-7dcc9fb9c4-tt2fc 1/1 Running 0 2m3s
nginx-deploy-7dcc9fb9c4-z29qq 0/1 Terminating 0 84s
[root@ ~]$kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-deploy-7dcc9fb9c4-8dtc2 1/1 Running 0 2m6s
nginx-deploy-7dcc9fb9c4-c5tg2 1/1 Running 0 2m6s
nginx-deploy-7dcc9fb9c4-tt2fc 1/1 Running 0 2m6s
nginx-deploy-7dcc9fb9c4-z29qq 0/1 Terminating 0 87s
[root@ ~]$kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-deploy-7dcc9fb9c4-8dtc2 1/1 Running 0 2m9s
nginx-deploy-7dcc9fb9c4-c5tg2 1/1 Running 0 2m9s
nginx-deploy-7dcc9fb9c4-tt2fc 1/1 Running 0 2m9s
[root@ ~]$kubectl get rs
NAME DESIRED CURRENT READY AGE
nginx-deploy-7dcc9fb9c4 3 3 3 2m14s
[root@ ~]$
Delete Deployment
[root@ ~]$kubectl delete deploy nginx-deploy
deployment.apps "nginx-deploy" deleted
[root@ ~]$kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-deploy-7dcc9fb9c4-pvflw 0/1 Terminating 0 6m30s
[root@ ~]$kubectl get pods
No resources found in default namespace.
[root@ ~]$kubectl get rs
No resources found in default namespace.
[root@ ~]$kubectl get deploy
No resources found in default namespace.
[root@ ~]$