56 lines
2.1 KiB
Markdown
56 lines
2.1 KiB
Markdown
# Kubernetes The Hard Way
|
|
|
|
This tutorial is partially based on [Kubernetes The Hard Way](https://github.com/kelseyhightower/kubernetes-the-hard-way).
|
|
|
|
The main focus of this tutorial is to explain the necessity of Kubernetes components. That is why there is no need to configure multiple instances of each component and allow us to set up a single-node Kubernetes cluster. Of course, the cluster created can't be used as a production-ready Kubernetes cluster.
|
|
|
|
To run the labs you need one of the following:
|
|
- vm with ubuntu 20.04
|
|
- preconfigured docker container ([here is the manual how to do that](./docs/00-docker.md))
|
|
|
|
## Copyright
|
|
|
|
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a><br />This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License</a> (whatever it means).
|
|
|
|
## Labs
|
|
|
|
* [Cluster architecture](./docs/00-kubernetes-architecture.md)
|
|
* [Container runtime](./docs/01-container-runtime.md)
|
|
* [Kubelet](./docs/02-kubelet.md)
|
|
* [Pod networking](./docs/03-pod-networking.md)
|
|
* [ETCD](./docs/04-etcd.md)
|
|
* [Api Server](./docs/05-apiserver.md)
|
|
* [Apiserver - Kubelet integration](./docs/06-apiserver-kubelet.md)
|
|
* [Scheduler](./docs/07-scheduler.md)
|
|
* [Controller manager](./docs/08-controller-manager.md)
|
|
* [Kube-proxy](./docs/09-kubeproxy.md)
|
|
|
|
|
|
|
|
docker build -t ubuntu-systemd .
|
|
|
|
|
|
docker run -d \
|
|
--name ubuntu-systemd-container \
|
|
--privileged \
|
|
--security-opt seccomp=unconfined \
|
|
--security-opt apparmor=unconfined \
|
|
--cap-add=NET_ADMIN \
|
|
--cap-add=NET_RAW \
|
|
-v /sys/fs/cgroup:/sys/fs/cgroup:rw \
|
|
--tmpfs /tmp \
|
|
--tmpfs /run \
|
|
--tmpfs /run/lock \
|
|
ubuntu-systemd
|
|
|
|
|
|
docker run -d \
|
|
--name ubuntu-systemd-container \
|
|
--privileged \
|
|
--security-opt seccomp=unconfined \
|
|
--security-opt apparmor=unconfined \
|
|
-v /sys/fs/cgroup:/sys/fs/cgroup:rw \
|
|
--tmpfs /tmp \
|
|
--tmpfs /run \
|
|
--tmpfs /run/lock \
|
|
ubuntu-systemd |