- A collection of Hands-on labs for Kubernetes (K8S).
- Each lab is a standalone lab and does not require to complete the previous labs.
- An existing cluster or any other local tool as described here
- kubectl - The Kubernetes command-line tool, kubectl
- List of the labs in this repository:
📗 00-VerifyCluster
📗 01-Namespace
📗 02-Deployments-Imperative
📗 03-Deployments-Declarative
📗 04-Rollout
📗 05-Services
📗 06-DataStore
📗 07-nginx-Ingress
📗 08-Kustomization
📗 09-StatefulSet
📗 10-Istio
📗 11-CRD-Custom-Resource-Definition
📗 12-Wordpress-MySQL-PVC
📗 13-HelmChart
📗 15-Prometheus-Grafana
📗 16-Affinity-Taint-Tolleration
📗 17-PodDisruptionBudgets-PDB
📗 19-CustomScheduler
📗 20-CronJob
📗 21-KubeAPI
- 01. Installing minikube
- 02. Start minikube
- 03. Check the minikube status
- 04. Verify that the cluster is up and running
- 05. Verify that you can "talk" to your cluster
- 01. Create Namespace
- 02. Setting the default Namespace for
kubectl
- 03. Verify that you've updated the namespace
- 01. Create namespace
- 02. Deploy nginx using yaml file (declarative)
- 03. Verify that the deployment is created:
- 04. Check if the pods are running:
- 05. Update the yaml file with replica's value of 5
- 06. Update the deployment using
kubectl apply
- 07. Scaling down with
kubectl scale
- 01. Create namespace
- 02. Create the desired deployment
- 03. Expose nginx as service
- 04. Verify that the pods and the service are running
- 05. Change the number of replicas to 3
- 06. Verify that now we have 3 replicas
- 07. Test the deployment
- 08. Deploy another version of nginx
- 09. Investigate rollout history:
- 10. Lets see what was changed during the previous updates:
- 11. Undo the version upgrade by rolling back and restoring previous version
- 12. Rolling Restart
- 01. Create namespace and clear previous data if there is any
- 02. Create the required resources for this hand-on
- 03. Expose the nginx with ClusterIP
- 04. Test the nginx with ClusterIP
- 05. Create NodePort
- 06. Create LoadBalancer (only if you are on real cloud)
- 01. Create namespace and clear previous data if there is any
- 02. Build the docker container
- 03. Using K8S deployment & Secrets/ConfigMap
- 04. Using Secrets & config maps
- 01. Create namespace and clear previous data if there is any
- 02. Create and test the Stateful application
- 03. Test the Stateful application
- 04. Scale down the StatefulSet and check that its down
- 05. Scale up again and verify that we still have the prevoius data
📗 10-Istio
- 01. Download latest Istio release (Linux)
- 01.01 Add the istioctl client to your path (Linux or macOS):
- 02. Deploy the demo application
📗 11-CRD-Custom-Resource-Definition