Skip to content

unvercan/kubernetes-tutorial

Repository files navigation

Kubernetes Tutorial


Cluster Control

kubectl get nodes
kubectl get pods
kubectl get deployments
kubectl get services

Create Deployment

kubectl create -f ./echo-deployment.yaml
kubectl create -f ./nginx-deployment.yaml

Create Service

kubectl create -f ./echo-service.yaml
kubectl create -f ./nginx-service.yaml

Create ConfigMap

kubectl create -f ./nginx-config.yaml

Deployment Control

kubectl describe deployment echo-deployment
kubectl describe deployment nginx-deployment

Restart Pods in Deployment

kubectl rollout restart deployment echo-deployment
kubectl rollout restart deployment nginx-deployment

Apply Deployment Changes

kubectl apply -f ./echo-deployment.yaml
kubectl apply -f ./nginx-deployment.yaml

Apply Service Changes

kubectl apply -f ./echo-service.yaml
kubectl apply -f ./nginx-service.yaml

Apply ConfigMap Changes

kubectl apply -f ./nginx-config.yaml

Read Pod Logs

kubectl logs <pod>

Connect to Pod Terminal and Execute Commands

kubectl exec -it <pod> -- /bin/bash

Scale Manually

kubectl scale deployment echo-deployment --replicas=5
kubectl scale deployment nginx-deployment --replicas=3

Create HPA via File

kubectl create -f ./echo-hpa.yaml
kubectl create -f ./nginx-hpa.yaml

Create HPA via Command

kubectl autoscale deployment echo-deployment --cpu-percent=50 --min=2 --max=10
kubectl autoscale deployment nginx-deployment --cpu-percent=15 --min=1 --max=5

Apply HPA Changes via File

kubectl apply -f ./echo-hpa.yaml
kubectl apply -f ./nginx-hpa.yaml

Control HPA

kubectl get hpa

Port Forwarding

kubectl port-forward pod/<nginx-pod> 8080:80

Check on Browser

http://localhost:8080

Check on Terminal

# Bash / Linux / macOS
curl http://localhost:8080

# PowerShell / Windows
Invoke-WebRequest http://localhost:8080

Simulate 10,000 Requests to Increase Load

# Bash / Linux / macOS
for i in {1..10000}; do curl http://localhost:8080; done

# PowerShell / Windows
for ($i=1; $i -le 10000; $i++) { Invoke-WebRequest http://localhost:8080 }

Control HPA While Watching

kubectl get hpa -w

Control Pods While Watching

kubectl get pods -w

Control Events

kubectl get events

Export Deployment as YAML

kubectl get deployment echo-deployment -o yaml > echo-deployment-export.yaml
kubectl get deployment nginx-deployment -o yaml > nginx-deployment-export.yaml

Export Service as YAML

kubectl get svc echo-service -o yaml > echo-service-export.yaml
kubectl get svc nginx-service -o yaml > nginx-service-export.yaml

Export ConfigMap as YAML

kubectl get configmap nginx-config -o yaml > nginx-config-export.yaml

Export HPA as YAML

kubectl get hpa echo-deployment -o yaml > echo-hpa-export.yaml
kubectl get hpa nginx-deployment -o yaml > nginx-hpa-export.yaml

Delete HPA

kubectl delete -f ./echo-hpa.yaml
kubectl delete -f ./nginx-hpa.yaml

Delete Service

kubectl delete -f ./echo-service.yaml
kubectl delete -f ./nginx-service.yaml

Delete ConfigMap

kubectl delete -f ./nginx-config.yaml

Delete Deployment

kubectl delete -f ./echo-deployment.yaml
kubectl delete -f ./nginx-deployment.yaml

About

Kubernetes Tutorial

Topics

Resources

Stars

Watchers

Forks