Thanks to visit codestin.com
Credit goes to github.com

Skip to content

kubeskills/k8s-practice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kubernetes (K8s) Practice

12 week routine of practice and implementation details

WEEK 1

Practice creating a cluster

WEEK 2

CHALLENGES

Put all YAML files in WEEK2 directory

  1. Create the YAML for a certificate signing request.
  2. Create the YAML for a role named "pod-reader" that allows users to perform get, watch and list on pods.
  3. Create the YAML for a roleBinding named "admin-binding", in the namespace "acme", granting permissions for the "admin" ClusterRole to a user named "bob".

WEEK 3

CHALLENGES

Put all YAML files in WEEK3 directory

  1. Take the image that you built in the first video above and deploy it as a pod in Kubernetes
  2. Create a deployment with the image used in the previous challenge and scale it to 5 replicas
  3. Create a second deployment that uses the image "mysql:8" and include an environment variable that is the MYSQL default password

WEEK 4

CHALLENGES

Put all YAML files in WEEK4 Directory

  1. Install the nginx ingress controller nginx-stable via https://helm.nginx.com/stable
  2. Install Hashicorp Vault via helm chart hashicorp/vault at https://helm.releases.hashicorp.com
  3. Override the values file for vault using the default here: https://github.com/hashicorp/vault-helm/blob/main/values.yaml
  4. Create a helm chart from scratch and deploy it to Kubernetes

WEEK 5

CHALLENGES

Put all the files for these exercises in the WEEK5 directory

  1. Create a NodePort service in K8s that uses port 30000 on the node and port 8080 on the container
  2. Only use the kubectl command-line to create a deployment named 'nginx-deploy' that uses the nginx image, exposed on port 80. Only 1 replica will be used.
  3. Again, only use the kubectl command-line to expose the deployment 'nginx-deploy' and use the target port of 8080.
  4. Change the service named 'kubernetes' already running in the default namespace to a NodePort type service using the kubectl command line

WEEK 6

CHALLENGES

Put all files in WEEK6 Directory

  1. Create a deployment named “apache” that uses the image httpd:2.4.54 and contains three pod replicas.
  2. After the deployment has been created, scale the deployment to five replicas
  3. Change the image for the "apache" deployment to httpd:alpine
  4. Look at the rollout history, then go back to the previous rollout (roll back)

WEEK 7

CHALLENGES

  1. Deploy the following resources in Kubernetes: https://gist.github.com/chadmcrowell/7e5cbb782bf2b9e90c6abe8cd8cd39b0
  2. Start a new pod with the image radial/busyboxplus:curl, get a shell to it, and run curl http://db:15984 to try to communicate from pod to pod
  3. Create a network policy that will deny all traffic from pod to pod
  4. Create another network policy that applies to pods that have the label app=db. Allow traffic from pods that have the label app=api and only over port 5984.
  5. Create another network policy that applies to pods that have the label app=web. Allow traffic from pods that have the label app=web on port 3000. Allow traffic out to pods that have the label app=db over port 5984. Also allow traffic to pods in the kube-system namespace that match label k8s-app=kube-dns on port 53.
  6. Start a new pod with the image radial/busyboxplus:curl and label app=api, get a shell to it, and run curl http://db:15984 to try to communicate from pod to pod

WEEK 8

WEEK 9

WEEK 10

WEEK 11

WEEK 12

About

12 week routine of practice and implementation detail

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published