File me tickets or star the repo.
Similar Challenges: https://www.dennyzhang.com/battle
Challenges Your Kubernetes Skills And Knowledge
- Objective: Get familiar with K8S concept. Here K8S stands for Kubernetes.
- Requirements:
1. Start one node of k8s in your laptop. Mac or Linux
2. Start a nginx webserver with one instance
3. Scale nginx service into 2 instances.
4. Get familiar with k8s dashboard. Find pods from GUI, check nginx log.
- See kubernetes.yaml
- Main Tech: minikube, nginx, dashboard
- See more: Scenario-101
- Objective: Single node deployment for stateful service
- Requirements:
1. Use yaml to start one mysql server service with 1 instance.
2. Use yaml to start one mysql client service with 2 instances.
3. Delete the db server instance, make sure a new one will be created automatically.
4. When db server is recreated, make sure no data loss.
- See kubernetes.yaml
- Main Tech: minikube, mysql, volume
- See more: Scenario-102
- Objective: Advanced k8s deployment for one single db service
- Requirements:
1. Suppose your k8s/minikube have multiple cluster, how you can segrate them? (Hint: namespace)
2. When we initialize mysql via yaml, avoid store mysql root password in plain text. (Hint: secrets)
3. Make sure we can create no more than 1 pods for DB server. (Hint: ResourceQuota)
- See kubernetes.yaml
- Main Tech: minikube, mysql, volume, Job
- See more: Scenario-103
- Objective: Know how to deployment k8s cluster env
- Requirements:
1. Deploy 3 nodes k8s env in your virtualbox.
One as controller, the other two as worker
2. Deploy k8s web UI, which is missing by default.
3. Create a nginx service with 6 instances.
They should be balanced across worker nodes.
4. Visit nginx service by loadbalancer. (Hint: Ingress)
- Main Tech:
- See more: Scenario-201
- TODO
- Objective: k8s cluster env with stateful service
- Requirements:
1. Deploy 3 nodes k8s. One controller, others as worker
2. Create an elasticsearch service with 4 instances.
2 as master, 2 as data.
3. Create a nightly job to backup elasticsearch cluster. (Hint: Cron Jobs)
4. If any es instance has crashed, get alerts.
- Main Tech:
- See more: Scenario-202
- TODO
- Objective: Real service deployment
- Requirements:
1. Deploy 3 nodes k8s. One controller, others as worker
1. Deploy jenkins service with 1 master 2 agents
2. When Jenkins crash, get alerts
- Main Tech:
- See more: Scenario-301
- TODO
- Objective: Real service deployment
- Requirements:
1. Deploy 3 nodes k8s. One controller, others as worker
2. Deploy Jenkins service by helm
3. Use nginx as an ingress for Jenkins master
4. Simulate Jenkins slave crash events, and confirm service is fine
5. Simulate Jenkins master crash events, and confirm service is fine
- Main Tech:
- See more: Scenario-302
- TODO
- More resources: run services on k8s cluster
http://containertutorials.com/get_started_kubernetes/k8s_example.html
Kubernetes Example
https://kubernetes.io/docs/tutorials/
kubernetes kubernetes
https://kubernetes.io/docs/getting-started-guides/scratch/
Creating a Custom Cluster from Scratch
https://github.com/kubernetes/examples
kubernetes examples in GitHub From Google
https://kubernetes.io/docs/concepts/configuration/overview/
Configuration Best Practices
- More resources: k8s cluster itself
https://github.com/kelseyhightower/kubernetes-the-hard-way
Bootstrap Kubernetes the hard way on Google Cloud Platform. No scripts.
https://github.com/davidkbainbridge/k8s-playground
Simple VM based Kubernetes cluster setup
Below are folks who have contributed via GitHub!
- Code is licensed under MIT License.