---
# System prepended metadata

title: Kubernetes 101 (WIP)
tags: [onboarding]

---

---
tags: onboarding
---
# Kubernetes 101 (WIP)

## Background

Welcome to the Kubernetes community!

It's normal to feel a bit overwhelmed when jumping into a new project, but the Kubernetes community features a rich ecosystem of free material targeted at onboarding engineers! 

The goal of this document is to capture a curated list of resources that will provide you with enough background information so you may use and contribute to the Kubernetes project.

## Suggested Tools

Before diving into Kubernetes, it may benefit you to install and become familiar with the following tools.

- [Go](https://go.dev/doc/install) is the primary language used in the Kubernetes ecosystem.
- [Kind](https://kind.sigs.k8s.io/docs/user/quick-start/) provides a local kubernetes cluster on you laptop and includes a number of developer features. As you learn about features offered through Kubernetes I find it useful to mirror the demos.
- [VS Code](https://code.visualstudio.com/download) is a code editor, I suggest the following plugins:
-- [Go Plugin](https://marketplace.visualstudio.com/items?itemName=golang.Go)
-- [GitLens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens)


## Learning Resources

This section of the document is split into two parts, [Using Kubernetes](#using-kubernetes) and [Contributing to Kubernetes](#contributing-to-kubernetes). I recommend reviewing each resource in the suggested order, but you may visit them in any order that you wish.

### Kubernetes Core Concepts

If you plan to develop Kubernetes you must understand the project. After reviewing this list of resources you should be able to explain the benefits of Kubernetes and describe how the system is designed and the features it offers.

URLs:
- [The Illustrated Children’s Guide to Kubernetes](https://www.cncf.io/phippy/the-childrens-illustrated-guide-to-kubernetes/)
- [Official Kubernetes Docs](https://kubernetes.io/docs)
- [What is Kubernetes in 15 Minutes](https://www.youtube.com/watch?v=VnvRFRk_51k)
- [Kubernetes Tutorial for Beginners (4 hrs)](https://www.youtube.com/watch?v=VnvRFRk_51k)
- [Unofficial Kubernetes](https://unofficial-kubernetes.readthedocs.io/en/latest/) has some useful information that is missed in the official docs

#### Suggested Projects to Test your Knowledge

- Create a local Kuberenetes Cluster using Kind
- Build a "Hello, World" app that consists of a simple frontend and backend.
-- Run the frontend and backend in different pods

### Contributing to Kubernetes



#### Golang

Kubernetes is typically written in Go and your ability to contribute to the project will be impacted by your ability to read and use the language.

URLs:
- [A Tour of Go](https://go.dev/tour/welcome/1)
- [Go Documentation](https://go.dev/doc/)
- [Go Playground](https://go.dev/play/)
- [Dave Cheney](https://dave.cheney.net/) has a bunch of great docs on Go

#### Proposing a Change to Kubernetes

The [Kubernetes Enhancement Proposal (KEP)](https://github.com/kubernetes/enhancements/blob/master/keps/README.md) process should be followed when you wish to make an upstream change.

#### Extending Kubernetes

Although featured in the Kubernetes Docs, operators play such a big role in extending Kubernetes that they warrent their section in this document.

URLs: 
- [Extending Kubernetes Document](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/)
- [Kubernetes Operator simply explained in 10 mins](https://www.youtube.com/watch?v=ha3LjlD6g7g)
- [Introducing the Operator Framework Announcement](https://www.redhat.com/en/blog/introducing-operator-framework-building-apps-kubernetes)
- Operator SDK [Docs](https://sdk.operatorframework.io/docs/) and [Repository](https://github.com/operator-framework/operator-sdk)
- Operator Lifecycle Manager (OLM) [Docs](https://olm.operatorframework.io/docs/) and [Repository](https://github.com/operator-framework/operator-lifecycle-manager)
- Kubebuilder [Docs](https://book.kubebuilder.io/) and [Repository](https://github.com/kubernetes-sigs/kubebuilder)
- [Controller-Runtime Repository](https://github.com/kubernetes-sigs/controller-runtime)

#### Suggested Books
- https://www.oreilly.com/library/view/programming-kubernetes/9781492047094/

#### Suggested Projects to Test your Knowledge

- Create an operator
- [Apply a hotfix to an operator](https://docs.google.com/document/d/18UCaka2mGcRzvdhktvZi5cPLe29ssQ1WzUc4faxvDBA/edit#heading=h.88v8zffb5wvy)
