dennyzhang / Challenges Kubernetes
Programming Languages
Labels
- Deep Dive Into Kubernetes ** Kubernetes Topics github tag [[https://github.com/topics/denny-kubernetes][#denny-kubernetes]]
[[https://github.com/topics/denny-kubernetes][https://cdn.dennyzhang.com/images/github/k8s_github_repo.png]]
** Kubernetes BootCamp #+BEGIN_HTML
File me [[https://github.com/DennyZhang/challenges-kubernetes/issues][Issues]] or star [[https://github.com/DennyZhang/challenges-kubernetes][this repo]].
See more Kubernetes from Denny: [[https://github.com/topics/denny-kubernetes][#denny-kubernetes]] *** Scenario-101: 1-Node K8S Deployment I
- Objective: Get familiar with K8S concept. Here K8S stands for Kubernetes.
- Requirements: #+BEGIN_EXAMPLE
- Start one node of k8s in your laptop. Mac or Linux
- Start a nginx webserver with one instance
- Scale nginx service into 2 instances.
- Get familiar with k8s dashboard. Find pods from GUI, check nginx log. #+END_EXAMPLE
- Main Tech: minikube, nginx, dashboard
- See more: [[bootcamp/Scenario-101][bootcamp/Scenario-101]]
*** Scenario-102: 1-Node K8S Deployment II
- Objective: Single node deployment for stateful service
- Requirements: #+BEGIN_EXAMPLE
- Use yaml to start one mysql server service with 1 instance.
- Use yaml to start one mysql client service with 2 instances.
- Delete the db server instance, make sure a new one will be created automatically.
- When db server is recreated, make sure no data loss. #+END_EXAMPLE
- Main Tech: minikube, mysql, volume
- See more: [[bootcamp/Scenario-102][bootcamp/Scenario-102]]
*** Scenario-103: 1-Node K8S Deployment III
- Objective: Advanced k8s deployment for one single db service
- Requirements: #+BEGIN_EXAMPLE
- Suppose your k8s/minikube have multiple cluster, how you can segrate them? (Hint: namespace)
- When we initialize mysql via yaml, avoid store mysql root password in plain text. (Hint: secrets)
- Make sure we can create no more than 1 pods for DB server. (Hint: ResourceQuota) #+END_EXAMPLE
- Main Tech: minikube, mysql, volume, Job
- See more: [[bootcamp/Scenario-103][bootcamp/Scenario-103]]
*** Scenario-201: 3-Nodes K8S Deployment I
- Objective: Know how to deployment k8s cluster env
- Requirements: #+BEGIN_EXAMPLE
- Deploy 3 nodes k8s env in your virtualbox. One as controller, the other two as worker
- Deploy k8s web UI, which is missing by default. #+END_EXAMPLE
*** Scenario-202: 3-Nodes K8S Deployment II
- Objective: Improve service availability by choosing service type wisely.
- Requirements: #+BEGIN_EXAMPLE
- Deploy 3 nodes k8s. One controller, others as workers
- Create a nginx service with 6 instances.
- Make sure nginx requests will be balanced across 6 instances. (Hint: ClusterIP + Ingress, or External Loadbalancer) #+END_EXAMPLE
- Main Tech:
- See more: [[bootcamp/Scenario-202][bootcamp/Scenario-202]]
- TODO
*** Scenario-203: 3-Nodes K8S Deployment II
- Objective: k8s cluster env with stateful service
- Requirements: #+BEGIN_EXAMPLE
- Deploy 3 nodes k8s. One controller, others as workers
- Create an elasticsearch service with 4 instances. 2 as master, 2 as data.
- Create a nightly job to backup elasticsearch cluster. (Hint: Cron Jobs)
- If any es instance has crashed, get alerts. #+END_EXAMPLE
- Main Tech:
- See more: [[https://github.com/dennyzhang/challenges-kubernetes/tree/master/bootcamp/Scenario-203][bootcamp/Scenario-203]]
- TODO
*** Scenario-301: Use helm To Deploy Service I
- Objective: Know the basic usage of helm
- Requirements: #+BEGIN_EXAMPLE
- Use helm to deploy a mysql service with single instance
- Customize the deployment #+END_EXAMPLE
- Main Tech: minikube, helm, volume
- See more: [[bootcamp/Scenario-301][bootcamp/Scenario-301]]
*** Scenario-302: Use helm To Deploy Service II
- Objective: Advanced usage of helm
- Requirements: #+BEGIN_EXAMPLE
- Deploy a single instance wordpress service with helm
- Scale frontend to 2 instance (Hint: kubectl scale)
- Enforce daily db backup (Hint: CronJob) #+END_EXAMPLE
- Main Tech: minikube, helm, volume
- See more: [[https://github.com/dennyzhang/challenges-kubernetes/tree/master/bootcamp/Scenario-302][bootcamp/Scenario-302]]
*** Scenario-303: Use helm To Deploy Service III
- Objective: HA deployemnt with helm
- Requirements: #+BEGIN_EXAMPLE
- Create a wordpress Chart by yourself
- Deploy a HA wordpress service with your helm chart #+END_EXAMPLE
- Main Tech: helm, volume
- See more: [[bootcamp/Scenario-303][bootcamp/Scenario-303]]
- TODO
*** Scenario-304: Use helm To Deploy Service IV
- Objective: Deploy elasticsearch cluster with 5 instances
- Requirements: #+BEGIN_EXAMPLE
- Create an elasticsearch cluster
- Scale the env to 5 instances #+END_EXAMPLE
- Main Tech: helm, volume
- See more: [[https://github.com/dennyzhang/challenges-kubernetes/tree/master/bootcamp/Scenario-304][bootcamp/Scenario-304]]
- TODO
*** Scenario-401: Deploy a stateful service I
- Objective: Deploy Jenkins in k8s
- Requirements: #+BEGIN_EXAMPLE
- Deploy Jenkins service by helm.
- Make sure JENKINS_HOME directory persist
- Install slack and git Jenkins plugins during helm install
- Enable Jenkins slave agents during helm install
- Start 2 Jenkins masters. #+END_EXAMPLE
- Main Tech:
- See more: [[https://github.com/dennyzhang/challenges-kubernetes/tree/master/bootcamp/Scenario-401][bootcamp/Scenario-401]]
- TODO
*** Scenario-402: Deploy a stateful service II
- Objective: Deploy Jenkins in k8s
- Requirements: #+BEGIN_EXAMPLE
- Deploy Jenkins service by helm. 2 Jenkins master and 2 Jenkins agents
- Add health check for Jenkins agents (Hint: livenessProbe)
- Use nginx as an ingress for Jenkins master
- Simulate Jenkins slave crash events, and confirm service is fine
- Simulate Jenkins master crash events, and confirm service is fine #+END_EXAMPLE
- Main Tech:
- See more: [[https://github.com/dennyzhang/challenges-kubernetes/tree/master/bootcamp/Scenario-402][bootcamp/Scenario-402]]
- TODO
*** Scenario-501: Day2 Mission: Setup Prometheus monitoring
- Objective: Setup k8s monitoring
- Requirements: #+BEGIN_EXAMPLE
- Setup prometheus monitoring for infra level
- Setup prometheus monitoring for application level #+END_EXAMPLE
- Main Tech:
- See more: [[bootcamp/Scenario-501][bootcamp/Scenario-501]]
- TODO
*** Scenario-502: Day2 Mission: Prometheus Operator
- Objective: Learn more about k8s operator concept
- Requirements: #+BEGIN_EXAMPLE
- Enable prometheus operator
- AIOps: Use operator to respond to repetitive issues from monitoring system #+END_EXAMPLE
-
Main Tech:
-
See more: [[https://github.com/dennyzhang/challenges-kubernetes/tree/master/bootcamp/Scenario-502][bootcamp/Scenario-502]]
-
TODO #+BEGIN_HTML #+END_HTML ** More Resources License: Code is licensed under [[https://www.dennyzhang.com/wp-content/mit_license.txt][MIT License]].
-
More resources: run services on k8s cluster #+BEGIN_EXAMPLE 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 #+END_EXAMPLE
- More resources: k8s cluster itself #+BEGIN_EXAMPLE 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 #+END_EXAMPLE
- org-mode configuration :noexport:
#+STARTUP: overview customtime noalign logdone showall
#+DESCRIPTION:
#+KEYWORDS:
#+AUTHOR: Denny Zhang
#+EMAIL: [email protected]
#+TAGS: noexport(n)
#+PRIORITIES: A D C
#+OPTIONS: H:3 num:t toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
#+OPTIONS: TeX:t LaTeX:nil skip:nil d:nil todo:t pri:nil tags:not-in-toc
#+EXPORT_EXCLUDE_TAGS: exclude noexport
#+SEQ_TODO: TODO HALF ASSIGN | DONE BYPASS DELEGATE CANCELED DEFERRED
#+LINK_UP:
#+LINK_HOME: - TODO export folder to github repo :noexport: ** TODO export challenges-k8s-networking to github :noexport: ** TODO export challenges-k8s-sourcecode to github :noexport:
-
- Blog: 10 Kubenetes Depcreated Features, But I still miss them :noexport: ** gitRepo https://github.com/kubernetes/kubernetes/issues/17676#issuecomment-228650586 ** heapster
- TODO How I can easily list all questions for k8s sub-domains :noexport:
- TODO manage sns bottom: /Users/zdenny/Dropbox/git_code/quiz.dennyzhang.com/posts/kubernetes-concept :noexport:
- TODO Adsense page view count is so so wrong :noexport:
- TODO less indentation: https://kubernetes.dennyzhang.com/challenges-k8s-federation :noexport:
- TODO Put adsense to lower position: https://kubernetes.dennyzhang.com/challenges-k8s-monitoring :noexport: