• Stars
    star
    230
  • Rank 174,053 (Top 4 %)
  • Language
    Shell
  • License
    Apache License 2.0
  • Created almost 7 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

☁️ Challenges Your Kubernetes Skills And Knowledge

1 Deep Dive Into Kubernetes

1.1 Kubernetes Topics

github tag #denny-kubernetes

https://cdn.dennyzhang.com/images/github/k8s_github_repo.png

1.2 Kubernetes BootCamp

linkedin github slack

PRs Welcome

File me Issues or star this repo.

See more Kubernetes from Denny: #denny-kubernetes

1.2.1 Scenario-101: 1-Node K8S Deployment I

  • 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.

1.2.2 Scenario-102: 1-Node K8S Deployment II

  • 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.

1.2.3 Scenario-103: 1-Node K8S Deployment III

  • 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)

1.2.4 Scenario-201: 3-Nodes K8S Deployment I

  • 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.

1.2.5 Scenario-202: 3-Nodes K8S Deployment II

  • Objective: Improve service availability by choosing service type wisely.
  • Requirements:
1. Deploy 3 nodes k8s. One controller, others as workers
2. Create a nginx service with 6 instances.
3. Make sure nginx requests will be balanced across 6 instances.
   (Hint: ClusterIP + Ingress, or External Loadbalancer)

1.2.6 Scenario-203: 3-Nodes K8S Deployment II

  • Objective: k8s cluster env with stateful service
  • Requirements:
1. Deploy 3 nodes k8s. One controller, others as workers
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.

1.2.7 Scenario-301: Use helm To Deploy Service I

  • Objective: Know the basic usage of helm
  • Requirements:
1. Use helm to deploy a mysql service with single instance
2. Customize the deployment

1.2.8 Scenario-302: Use helm To Deploy Service II

  • Objective: Advanced usage of helm
  • Requirements:
1. Deploy a single instance wordpress service with helm
2. Scale frontend to 2 instance (Hint: kubectl scale)
3. Enforce daily db backup (Hint: CronJob)

1.2.9 Scenario-303: Use helm To Deploy Service III

  • Objective: HA deployemnt with helm
  • Requirements:
1. Create a wordpress Chart by yourself
2. Deploy a HA wordpress service with your helm chart

1.2.10 Scenario-304: Use helm To Deploy Service IV

  • Objective: Deploy elasticsearch cluster with 5 instances
  • Requirements:
1. Create an elasticsearch cluster
2. Scale the env to 5 instances

1.2.11 Scenario-401: Deploy a stateful service I

  • Objective: Deploy Jenkins in k8s
  • Requirements:
1. Deploy Jenkins service by helm.
2. Make sure JENKINS_HOME directory persist
3. Install slack and git Jenkins plugins during helm install
4. Enable Jenkins slave agents during helm install
5. Start 2 Jenkins masters.

1.2.12 Scenario-402: Deploy a stateful service II

  • Objective: Deploy Jenkins in k8s
  • Requirements:
1. Deploy Jenkins service by helm. 2 Jenkins master and 2 Jenkins agents
2. Add health check for Jenkins agents (Hint: livenessProbe)
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

1.2.13 Scenario-501: Day2 Mission: Setup Prometheus monitoring

  • Objective: Setup k8s monitoring
  • Requirements:
1. Setup prometheus monitoring for infra level
2. Setup prometheus monitoring for application level

1.2.14 Scenario-502: Day2 Mission: Prometheus Operator

  • Objective: Learn more about k8s operator concept
  • Requirements:
1. Enable prometheus operator
2. AIOps: Use operator to respond to repetitive issues from monitoring system

1.3 More Resources

License: Code is licensed under MIT License.

  • 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

More Repositories

1

cheatsheet-kubernetes-A4

📖 Kubernetes CheatSheets In A4
Shell
1,851
star
2

cheatsheet.dennyzhang.com

Apply best practices via CheatSheets
Shell
649
star
3

kubernetes-yaml-templates

Kubernetes Yaml Templates
594
star
4

cheatsheet-jenkins-groovy-A4

📖 Groovy CheatSheet For Jenkins Usage In A4
Groovy
325
star
5

devops_public

🎩 DevOps Scripts
Shell
179
star
6

cheatsheet-gcp-A4

☁️ GCP gcloud, gsutil, etc.
110
star
7

cheatsheet-python-A4

📖 Advanced Python Syntax In A4
Python
100
star
8

code.dennyzhang.com

❓ Algorithms & Coding Problems
CSS
95
star
9

cheatsheet-docker-A4

📖 Docker CheatSheets In A4
Dockerfile
90
star
10

monitor-docker-slack

⏰ Get Slack Notifications, When Containers Run Into Issues
Python
71
star
11

challenges-cloudformation-jenkins

🏫 Challenges Your AWS And Cloudformation Skills By Solving Real Questions.
Shell
60
star
12

cheatsheet-golang-A4

📖 Advanced Golang Syntax In A4
Go
56
star
13

prepare-k8s-cka

📖 Preparation For Kubernetes CKA/CKAD Exam
51
star
14

cheatsheet-aws-A4

☁️ AWS CheatSheets In A4
48
star
15

cheatsheet-paper-A4

https://cheatsheet.dennyzhang.com/cheatsheet-paper-A4
46
star
16

Denny-s-emacs-configuration

🤖 Emacs shapes me to be a better programmer
Emacs Lisp
41
star
17

kubernetes-scripts

Handy kubernetes scripts for common scenarios
Shell
37
star
18

challenges-chef

📖 Challenges Your Chef Skills By Solving Real Questions.
Ruby
26
star
19

cheatsheet-git-A4

CheatSheet For Git & GitHub
25
star
20

developer-free-saas

🕸️ A curated list Of Free Web-based Tools For Developers
Shell
23
star
21

devops_jenkins

🤖 VisualOps via Jenkins jobs
21
star
22

architect.dennyzhang.com

☝️ Learn system design in a solid way
Shell
21
star
23

cheatsheet-tmux-A4

tmux/tmate Usage in A4
20
star
24

cheatsheet-vim-A4

Vim usage and personal knowledge base
18
star
25

cheatsheet-pks-A4

CheatSheet For PKS: Pivotal Kubernetes Service
Shell
16
star
26

popular-github-template

📗 Repo Template: Make Your GitHub Repos More Popular
16
star
27

cheatsheet-shell-A4

🏫 Examine your shell skills
Shell
16
star
28

xiaozibao

Your personal magzine, adjusted by your taste.
Objective-C
13
star
29

python-selenium

Use Python Selenium For GUI Automation Test
Python
11
star
30

cheatsheet-bosh-A4

📖 CheatSheet For CloudFoundry Bosh
Shell
10
star
31

remote-commands-servers

👪 Run remote ssh commands on multiple servers
Python
9
star
32

monitoring

Checks for various monitoring
Shell
9
star
33

chatops_slack

🚀 Python Slack ChatOps
Python
7
star
34

elasticsearch-cli-tool

🏪 CLI tools for ealsticsearch
Python
6
star
35

developer-technical-selling

💵 Do a better technical selling as a developer
5
star
36

linkedin-grow-influence

🔌 How To Improve Professional Influence In Linkedin
5
star
37

challenges-k8s-monitoring

Notes for deep dive into Kubernetes monitoring
5
star
38

cheatsheet-emacs-A4

📖 Emacs lisp cheatsheet
Emacs Lisp
5
star
39

challenges-aws-ecs

✍️ Case study using AWS ECS to setup personal wordpress
PHP
5
star
40

challenges-k8s-crd

Kubernets CRD: extend k8s resource
Dockerfile
4
star
41

cheatsheet-ruby-A4

📖 Advanced Ruby Syntax In A4
4
star
42

detect_suspicious_process

Detect suspicious process
Python
4
star
43

directory-cli-tool

📁 CLI tools for directories
Shell
3
star
44

python-hosts-tool

📍 Manage /etc/hosts in an organized way by Python
Python
3
star
45

code-with-docker

Use docker to write code in different languages
Shell
3
star
46

www.dennyzhang.com

Personal blog: DevOps, Cloud, Life
Shell
3
star
47

challenges-k8s-logging

Notes for deep dive into Kubernetes logging
3
star
48

challenges-k8s-storage

Notes for deep dive into Kubernetes storage
3
star
49

maintain-github-repos

👪 KnowledgeBase: Grow Influence From Maintaining Github Projects
3
star
50

maintain-it-blog

📚 Be a better IT Blogger
3
star
51

chef_community_cookbooks

🍖 Chef cookbooks for devops
Python
3
star
52

nmap-scan-docker

nmap network scan via docker
Python
3
star
53

shadowsocks-vpn-docker

🏗️ Docker shadowsocks VPN
Shell
2
star
54

dennytest

Github Repo to host various test scripts
Go
2
star
55

jenkins_image

💂‍♂️ Jenkins Docker Image
Shell
2
star
56

my-slides

Host my slides: devops, kubernetes, life, etc
2
star
57

cleanup_old_files

Clean old files in an organized way
Python
2
star
58

terraform_jenkins_digitalocean

Define Jenkins job to create and provision digitalocean VMs by terraform
Shell
2
star
59

python-aws-cli-wrapper

☁️ Wrapper layer of AWS CLI in Python
Python
2
star
60

cheatsheet-living-in-ca

👪 CheatSheet for living in Canifornia
2
star
61

quiz.dennyzhang.com

📖 Examine skills in a hard way
Shell
1
star
62

dennyzhang.github.io

dummy website
1
star
63

check_logfiles

nagios plugin to check log files
Perl
1
star
64

book-reading-cloud

📖 My book reading to be a good cloud engineer/architect
1
star
65

couchbase-cli-tool

Couchbase CLI Tools
Python
1
star
66

node_status_in_json

Query node status and return a structured json
Python
1
star
67

challenges-fluent-bit

Deep dive into fluent-bit
1
star
68

today-learning

Personal memo for #today-learnings in our DevOps slack group
1
star