From 217491ef5782343788fba981dff77942175320c6 Mon Sep 17 00:00:00 2001 From: cristian-paris Date: Sun, 3 Aug 2025 11:43:35 +0300 Subject: [PATCH 1/3] Add cloud operatios track --- docs/cloud_operations/docker/_category_.json | 9 + docs/cloud_operations/docker/docker-arch.png | Bin 0 -> 280485 bytes docs/cloud_operations/docker/docker-basics.md | 909 ++++++++++++++++++ .../cloud_operations/docker/docker-compose.md | 217 +++++ .../docker/docker-overview.md | 75 ++ .../docker/overview.drawio.png | Bin 0 -> 88689 bytes docs/cloud_operations/final/_category_.json | 9 + .../final/development-strategy.md | 15 + .../final/minikube-deployment.md | 15 + docs/cloud_operations/final/next-steps.md | 15 + docs/cloud_operations/index.md | 3 - .../kubernetes/_category_.json | 8 + .../kubernetes/kubernetes-overview.md | 79 ++ .../kubernetes/kubernetes-setup.md | 89 ++ .../kubernetes/resources/_category_.json | 8 + .../resources/configmaps_and_secrets.md | 286 ++++++ .../kubernetes/resources/ingress.md | 94 ++ .../resources/persistent-volumes.md | 100 ++ .../kubernetes/resources/pods.md | 233 +++++ .../kubernetes/resources/replicasets.md | 112 +++ .../kubernetes/resources/services.md | 164 ++++ .../kubernetes/resources/statefulsets.md | 110 +++ .../cloud_operations/overview/_category_.json | 9 + .../overview/container-basics.md | 73 ++ .../overview/containerization.drawio.png | Bin 0 -> 23639 bytes .../cloud_operations/overview/introduction.md | 64 ++ .../overview/virtualization.drawio.png | Bin 0 -> 29919 bytes static/img/docs/kubernetes/1.svg | 412 ++++++++ static/img/docs/kubernetes/2.png | Bin 0 -> 68210 bytes 29 files changed, 3105 insertions(+), 3 deletions(-) create mode 100644 docs/cloud_operations/docker/_category_.json create mode 100644 docs/cloud_operations/docker/docker-arch.png create mode 100644 docs/cloud_operations/docker/docker-basics.md create mode 100644 docs/cloud_operations/docker/docker-compose.md create mode 100644 docs/cloud_operations/docker/docker-overview.md create mode 100644 docs/cloud_operations/docker/overview.drawio.png create mode 100644 docs/cloud_operations/final/_category_.json create mode 100644 docs/cloud_operations/final/development-strategy.md create mode 100644 docs/cloud_operations/final/minikube-deployment.md create mode 100644 docs/cloud_operations/final/next-steps.md delete mode 100644 docs/cloud_operations/index.md create mode 100644 docs/cloud_operations/kubernetes/_category_.json create mode 100644 docs/cloud_operations/kubernetes/kubernetes-overview.md create mode 100644 docs/cloud_operations/kubernetes/kubernetes-setup.md create mode 100644 docs/cloud_operations/kubernetes/resources/_category_.json create mode 100644 docs/cloud_operations/kubernetes/resources/configmaps_and_secrets.md create mode 100644 docs/cloud_operations/kubernetes/resources/ingress.md create mode 100644 docs/cloud_operations/kubernetes/resources/persistent-volumes.md create mode 100644 docs/cloud_operations/kubernetes/resources/pods.md create mode 100644 docs/cloud_operations/kubernetes/resources/replicasets.md create mode 100644 docs/cloud_operations/kubernetes/resources/services.md create mode 100644 docs/cloud_operations/kubernetes/resources/statefulsets.md create mode 100644 docs/cloud_operations/overview/_category_.json create mode 100644 docs/cloud_operations/overview/container-basics.md create mode 100644 docs/cloud_operations/overview/containerization.drawio.png create mode 100644 docs/cloud_operations/overview/introduction.md create mode 100644 docs/cloud_operations/overview/virtualization.drawio.png create mode 100644 static/img/docs/kubernetes/1.svg create mode 100644 static/img/docs/kubernetes/2.png diff --git a/docs/cloud_operations/docker/_category_.json b/docs/cloud_operations/docker/_category_.json new file mode 100644 index 0000000..6e43e99 --- /dev/null +++ b/docs/cloud_operations/docker/_category_.json @@ -0,0 +1,9 @@ +{ + "label": "Docker", + "position": 2, + "link": { + "type": "generated-index", + "description": "Simple Guide to Docker" + } + } + \ No newline at end of file diff --git a/docs/cloud_operations/docker/docker-arch.png b/docs/cloud_operations/docker/docker-arch.png new file mode 100644 index 0000000000000000000000000000000000000000..cb01d5069b732963cc4e6e2162fefc3b29d56631 GIT binary patch literal 280485 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

Hh)CbfH`qgMVIPloX@zw+eu&jC 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ǂsAs?lHRHQy4Aw0UFDLTd&E>N;KKz(@Qs z;yIm!)0U3HZi{=`wLdCPkiO_T!=eHsF(gJr(x!29oB69m9E+2MWJ)%zR4DMxI5j17 zQd-)M0o2U~bsX?H5QmPEM7IOk=8ajA#FhU=gBgTBi<5`R`wetr4->_IZ59IJUGlj{ z5b44s3Z28{UdP>Re<3Y>Hyk%NHwlV3y(KGrgy}*>lQrL4vyI*mz+M5H>1voF1#jkq zk`27VBO*`$6`F0LnIFwot<6Fnx=+Ewd01^*r!W{ z1hw|_ej?kp91kd*9f`@NOcF2|XTVxbVcu zOw7;!`CFn6=o_$?I;V%}4-z<-L?azmxRv>3PVI_8Q(G9f#FQP&qcP>?{n@3K^PRO? zSIJ$PvbO{(D|>3)g2x#DHhw2~83rbLntVoqhLG0i3$L~16gO{7v~dV)1^d)sjG~YG zKi<{>BDVsVex1@?b=ktd8~>NK4n7eZ4{{B9)^V*ieGXX3EQaXKF~ezTgzv*8n0JpJ zPrJt7S~SnTs==w51cVLzuVdFPC*_4W0R02~COVY^pOv&o5x(AB$H-WNx8<2QVo zz*B%UKpN%@Ah}^5HUVZGIp%5R6j^j>wfA|RK3txmQ_r<7I$O^3H@mIMMCuMi?Hmn3 ztuj72nuH6W`cHBe9S>02+#o+GaAcK=dw&hpJ=&|^wFxu-W0;;>->cIM+Uvkio)e4y zS%Gy|-<_TBTGm+77YBZ?Z<62p$9Vo~WfiVaivaW%fGd|Ax&(n4^flVO4~NsSIXFCQ+4~vUe770- z=8eod4Uo*qv|vU{&FS1e{Uzvx%o^4o(+b}sLjj@()pk^i%CqW0xtrmF9wA=U z1dI$lw{e6X_9(fRY&jSh8C}*49ed!3z4mfPGWf9ehyv4NPe(@0>sm~13>8M#=4zRe zSPaL0P|E|y*B&nbDg=Vo4f$CYz^b1=0gJ_{Ia-ay5AU3k+zl2vXIXd8q1sg}5PF#_c-oL9EPG;F9TDwD7 zXV%<-yzXQHXL>g_CcTcYdJaf`F7Ur=F{6oJ-TxQ>^Hmhi9Va32^Bjt{ww|O291f8U zq8<~Oq-3zR3Y@<8YlXI^zIV?z?P@h_F%0DWX^WGNE@7HobDGrP04gfStZ`be6u#Sp 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 EKfiot-~a#s literal 0 HcmV?d00001 diff --git a/docs/cloud_operations/docker/docker-basics.md b/docs/cloud_operations/docker/docker-basics.md new file mode 100644 index 0000000..793e372 --- /dev/null +++ b/docs/cloud_operations/docker/docker-basics.md @@ -0,0 +1,909 @@ +--- +id: docker-basics +title: Docker Basics +description: Essential Docker CLI commands +slug: /docker/basics +sidebar_position: 2 +--- + +## Starting a container + +:::warning + +Make the distinction between a **docker image** and a **docker container**. We can see the docker +image as the template, containing a set of instructions, used for creating and running a container. +A docker container is the running instance of an image. This is similar to the distinction between +a program and a process (i.e. a process is a running instance of a program). You can read more +about this difference [here](https://aws.amazon.com/compare/the-difference-between-docker-images-and-containers/#:~:text=A%20Docker%20container%20is%20a%20self%2Dcontained%2C%20runnable%20software%20application,containers%20over%20an%20application's%20lifecycle.). + +::: + +In order to start a Docker container we use the following command: + +```bash +cristian@cristianson:~/Desktop/ipw-docker$ docker run -it ubuntu:22.04 bash +Unable to find image 'ubuntu:22.04' locally +22.04: Pulling from library/ubuntu +3713021b0277: Already exists +Digest: sha256:340d9b015b194dc6e2a13938944e0d016e57b9679963fdeb9ce021daac430221 +Status: Downloaded newer image for ubuntu:22.04 +root@78f701a0d391:/# ls +bin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run sbin srv sys tmp usr var +root@78f701a0d391:/# +``` + +:::info + +If the above command requires superuser privileges, (i.e. run with **sudo**), then follow these +[steps](https://docs.docker.com/engine/install/linux-postinstall/) to avoid prefixing every command +with **sudo**. + +::: + +Let's break down the arguments of the `docker` command: + +- `run`, starts the container +- `-i`, the container is started in **interactive** mode, which means that it can accept keyboard +input +- `-t`, associates a terminal to the run command +- `ubuntu:22.04` is the name of the **image** : **version** we want to use. Keep in mind that if we +do not explicitly specify the version, than the latest image will be pulled from +[Dockerhub](https://hub.docker.com/) +- `bash`, the command we want to run in the container + +:::info + +Dockerhub is a public image repository that contains prebuilt images that we can download. + +::: + +If we want to see the local images we have downloaded from Dockerhub or created locally, we can do +`docker image ls`. + +```bash + +cristian@cristianson:~/Desktop/ipw-docker$ docker image ls +REPOSITORY TAG IMAGE ID CREATED SIZE +ubuntu 22.04 8a3cdc4d1ad3 4 weeks ago 77.9MB +ubuntu latest 35a88802559d 7 weeks ago 78.1MB + +``` + +:::tip + +If you do not know what an argument does or what is the purpose of a command, use `man docker` or + `docker help`. + +::: + +We can also run non-interactive commands in containers: + +```bash +cristian@cristianson:~/Desktop/ipw-docker$ docker run ubuntu:22.04 ls +bin +boot +dev +etc +home +lib +lib32 +lib64 +libx32 +media +mnt +opt +proc +root +run +sbin +srv +sys +tmp +usr +var +``` + +:::note + +This time, the command just shows us the output of **ls** and the container exits immediately. This +is because we have run this command in the **foreground**. + +::: + +:::tip + +Try to also run the `sleep 5` command and see what happens! + +::: + +Sometimes, however, running commands in the foreground is not ideal, especially if the command +takes a long time to run/output something. During that time, our terminal input is basically +blocked and we have to open another terminal tab if we want to do something else. This is why, when +we are required to run a command or a script that takes a long time, it is better to run the +command in the background. + +In order to start a container in the background, we use the `-d` option for the `docker run` +command as follows: + +```bash +cristian@cristianson:~/Desktop/ipw-docker$ docker run -d ubuntu:22.04 sleep 100 +8b3d484ae9ad92f669d2780faaa1b1dc850922029391bf13a12de84014610758 +cristian@cristianson:~/Desktop/ipw-docker$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +8b3d484ae9ad ubuntu:22.04 "sleep 100" 2 seconds ago Up 2 seconds distracted_sammet +``` + +The breakdown of the columns in the `docker ps` output are: + +- `CONTAINER ID` - a unique id assigned by docker to each container. +- `IMAGE` - the name of the image that served as a template for this container +- `COMMAND` - the command we have issued when starting the container +- `PORTS` - ports the container exposes for communication with the outside world +- `NAMES` - a name which is randomly assigned by Docker + +:::tip + +You can change the name of the container when you are starting it. Do `docker run --help`, find the +option and then restart the ubuntu container with a new name! Do `docker ps` to see if the name +changed. Also, whenever you are in doubt about what a command is supposed to do or what options it +takes, the general form is `docker --help` to list all of the available options. + +::: + +Observe the fact that this time the container did not exit, and is running in the background. The +container will stop after the provided command, in our case, `sleep 100`, finishes its execution. +Running `docker ps` after 100 seconds confirms this: + +```bash + +cristian@cristianson:~/Desktop/ipw-docker$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES + +``` + +:::tip + +Run the `docker ps` command after starting a container in the foreground! You need to open another +terminal tab in order to do this. + +::: + +After starting a container in the background using the `-d` option, we can also connect to it +interactively with the `docker exec` command. + +```bash + +cristian@cristianson:~/Desktop/ipw-docker$ docker run -d ubuntu:22.04 sleep 1000 +48d58d5ab0a17c69dadcf5e3c6cfd8be519845cae3c67f41da19fe5ffc1f6382 +cristian@cristianson:~/Desktop/ipw-docker$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +48d58d5ab0a1 ubuntu:22.04 "sleep 1000" 11 seconds ago Up 10 seconds zen_hodgkin +cristian@cristianson:~/Desktop/ipw-docker$ docker exec -it 48d58d5ab0a1 /bin/bash +root@48d58d5ab0a1:/# ls +bin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run sbin srv sys tmp usr var +root@48d58d5ab0a1:/# + +``` + +The format of the `docker exec` command is similar to that of `docker run`. We have used the `-it` +flags to start an interactive session with an attached terminal and we have chosen to run the +`/bin/bash` command. It is important to note that the container is uniquely identified via its +**ID** or assigned name in the **NAMES** column. + +Now, we want to stop the running container because we its no fun to wait 1000 seconds to exit +automatically. In order to do this, we use the `docker stop` command with the container's **ID** or +**NAME**. + +```bash + +cristian@cristianson:~/Desktop/ipw-docker$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +48d58d5ab0a1 ubuntu:22.04 "sleep 1000" 5 minutes ago Up 5 minutes zen_hodgkin +cristian@cristianson:~/Desktop/ipw-docker$ docker stop 48d58d5ab0a1 +48d58d5ab0a1 +cristian@cristianson:~/Desktop/ipw-docker$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +cristian@cristianson:~/Desktop/ipw-docker$ docker ps -a +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +48d58d5ab0a1 ubuntu:22.04 "sleep 1000" 5 minutes ago Exited (137) 3 seconds ago zen_hodgkin +8b3d484ae9ad ubuntu:22.04 "sleep 100" 24 hours ago Exited (0) 24 hours ago distracted_sammet +a236cc7b0efa ubuntu:22.04 "sleep 5" 24 hours ago Exited (0) 24 hours ago hardcore_ritchie +94ef886a0e61 ubuntu:22.04 "sleep 1" 24 hours ago Exited (0) 24 hours ago serene_keller +c7591793567d ubuntu:22.04 "ls" 24 hours ago Exited (0) 24 hours ago adoring_jang +d5cd0c63b9bb ubuntu:22.04 "ps aux" 24 hours ago Exited (0) 24 hours ago condescending_mcclintock +f81e1edf1b36 ubuntu:22.04 "lsdir" 24 hours ago Created condescending_wu +77fa7ff22c40 ubuntu:22.04 "ls" 24 hours ago Exited (0) 24 hours ago pedantic_lewin +707ae3470fe6 ubuntu:22.04 "ps -ef" 24 hours ago Exited (0) 24 hours ago exciting_heisenberg +cf3998b22236 ubuntu:22.04 "cat" 24 hours ago Exited (0) 24 hours ago bold_ritchie +78f701a0d391 ubuntu:22.04 "bash" 25 hours ago Exited (130) 24 hours ago unruffled_feistel +081fcd62be22 ubuntu "bash" 25 hours ago Exited (130) 25 hours ago interesting_swanson +f65bb2661f94 ubuntu "bash" 25 hours ago Exited (130) 25 hours ago friendly_liskov +5b7f19201652 alpine "shell" 25 hours ago Created youthful_roentgen +eb2c9ced368b alpine "bash" 25 hours ago Created magical_satoshi +5b27ae6a1c47 alpine "bash" 25 hours ago Created epic_volhard +cristian@cristianson:~/Desktop/ipw-docker$ + +``` + +We can see that the container is no longer running. Sometimes the stop command takes a while, so +do not abort it. Also, if we pass the `-a` argument to the `docker stop` command, it will also list +the containers that were stopped. We can see that the first container, **zen_hodgkin** is the one +we stopped earlier. + +## Exercise 1 + +- Start a container of your choice in background. Name it 'IPW-ROCKS'. +- Once started, connect to the container and install the `fzf` tool. +- Disconnect from the container. +- **NEW!** Try to pause and unpause the container. After each command, do a `docker ps`. +- Stop the container. +- **NEW** Completely remove the stopped container. + +:::tip + +You must start your container with a long running command or script, otherwise it will exit +immediately. + +Also, **you are not allowed** to use Google to search how to do the pause/unpause/container removal. +💀 Use `docker help` and `grep` in order to find what you need. 😉 +::: + +## Let's create our own docker image + +### Why would we want to create multiple images for multiple containers? + +So far, we have used the containers interactively. Most of the times, however, this is not the case. +A container is a separate unit of computing with a well defined purpose. That is, it should do one +single thing, and do it well. + +For example, we might have a web application with multiple components, and we have decided to split +encapsulate each component in its own docker container. That is: + +- a database container +- a backend container +- a frontend container + +Each of the above containers does one thing, and in the case of a backend or frontend change, the +rest of the containers remain unaffected and running. Even if one container crashes, we can easily +restart it without affecting the rest of the components. + +### Building an image + +The flow of building an image and deploying a container looks like this: + +![Docker image build](overview.drawio.png "Build process") + +In order to create our custom container, we need to create a custom template, that is, a custom +docker image. To accomplish this, we will create a `Dockerfile`. + +```text + +FROM ubuntu:22.04 + +ARG DEBIAN_FRONTEND=noninteractive +ARG DEBCONF_NONINTERACTIVE_SEEN=true + +ENV HELLO="hello" + +RUN apt-get update +RUN apt-get install -y firefox + +``` + +Let's break down each line of the above document: + +- `FROM` - the first instruction in each Dockerfile, specifies the base container image, which means +that subsequent modifications will add/remove from this image. +- `ARG` - represents a variable that is available only when the container is built and can be +referenced throughout the Dockerfile. +- `ENV` - sets an environment variable that will be available in the resulting container at +runtime. +- `RUN` - runs a command when building the image. In this case, the resulting image will have +`firefox` pre-installed. + +:::info + +You can read more about the differences between **ARG** and **ENV** +[here](https://vsupalov.com/docker-arg-vs-env/). + +::: + +Once we have created the `Dockerfile`, we can build our image using the following command: +`docker build -t my-container .` + +```bash + +cristian@cristianson:~/Desktop/ipw-docker$ docker build -t my-container . +[+] Building 30.7s (7/7) FINISHED +[...] + => exporting to image 1.0s + => => exporting layers 0.9s + => => writing image sha256:7493be1166b06d3521599a21c1ece1c5b4e2d438c3dacef0935e74d927aa875e 0.0s + => => naming to docker.io/library/my-container + +``` + +Let's break down the arguments to the `docker build` command: + +- `-t` - specifies the tag of the image. +- **my-container** is the assigned tag. +- **.** - specifies that the Dockerfile is located in the current directory + +:::note + +In larger projects, we may have multiple Dockerfiles, each specifying the recipe for another image. +It is useful, then, to name them differently. However, by default, Docker recognizes only files +named `Dockerfile`. In order to have files named `Dockerfile.backend` or `Dockerfile.frontend` or +any other name we may come up with, we need to specify this to the `docker build` command via the +`-f` parameter. See `docker build --help` for more info. + +::: + +Now that we have built our image, let's run `docker image ls`: + +```bash +cristian@cristianson:~/Desktop/ipw-docker$ docker image ls +REPOSITORY TAG IMAGE ID CREATED SIZE +my-container latest 7493be1166b0 13 minutes ago 369MB + +``` + +This is the confirmation that the build was successful. Let's create a brand new container from this +image and verify if the environment variable has been correctly set up: + +```bash + +cristian@cristianson:~/Desktop/ipw-docker$ docker run -it my-container bash +root@40b9e8dae8f1:/# echo $HELLO +hello +root@40b9e8dae8f1:/# + +``` + +Nice! We did it. We could have also checked that the image had the **HELLO** environment variable +set by using the `docker image inspect` command. + +```bash + +cristian@cristianson:~/Desktop/ipw-docker$ docker image inspect my-container +[ + { + "Id": "sha256:7493be1166b06d3521599a21c1ece1c5b4e2d438c3dacef0935e74d927aa875e", + "RepoTags": [ + "my-container:latest" + ], + "RepoDigests": [], + "Parent": "", + "Comment": "buildkit.dockerfile.v0", + "Created": "2024-08-01T13:51:50.003474082+03:00", + "Container": "", + "ContainerConfig": { + "Hostname": "", + "Domainname": "", + "User": "", + "AttachStdin": false, + "AttachStdout": false, + "AttachStderr": false, + "Tty": false, + "OpenStdin": false, + "StdinOnce": false, + "Env": null, + "Cmd": null, + "Image": "", + "Volumes": null, + "WorkingDir": "", + "Entrypoint": null, + "OnBuild": null, + "Labels": null + }, + "DockerVersion": "", + "Author": "", + "Config": { + "Hostname": "", + "Domainname": "", + "User": "", + "AttachStdin": false, + "AttachStdout": false, + "AttachStderr": false, + "Tty": false, + "OpenStdin": false, + "StdinOnce": false, + "Env": [ + "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "HELLO=hello" + ], + "Cmd": [ + "/bin/bash" + ], + "Image": "", + "Volumes": null, + "WorkingDir": "", + "Entrypoint": null, + "OnBuild": null, + "Labels": { + "org.opencontainers.image.ref.name": "ubuntu", + "org.opencontainers.image.version": "22.04" + } + }, + "Architecture": "amd64", + "Os": "linux", + "Size": 369369133, + "GraphDriver": { + "Data": { + "LowerDir": "/var/lib/docker/overlay2/p323vqywxcogfgl6sadeqwrsc/diff:/var/lib/docker/overlay2/372a31c779498a88a96829322ca93f496d0cf79a3a23f4c46b276f6670199ccc/diff", + "MergedDir": "/var/lib/docker/overlay2/aakuflif4l5nqvh24azlltsw4/merged", + "UpperDir": "/var/lib/docker/overlay2/aakuflif4l5nqvh24azlltsw4/diff", + "WorkDir": "/var/lib/docker/overlay2/aakuflif4l5nqvh24azlltsw4/work" + }, + "Name": "overlay2" + }, + "RootFS": { + "Type": "layers", + "Layers": [ + "sha256:931b7ff0cb6f494b27d31a4cbec3efe62ac54676add9c7469560302f1541ecaf", + "sha256:7b75401998b8840828c675a5956ab91e405aec86d363e76b4a0d645bb1a8414e", + "sha256:c7e0e739bfbbcc8f59a777e8bb57b845ece9598a8a1df45833dc215104ad7dd1" + ] + }, + "Metadata": { + "LastTagTime": "2024-08-01T13:51:50.961377181+03:00" + } + } +] + +``` + +We can see that in the `Env` section we have our **HELLO** env variable. + +:::info + +Each Docker image is comprised of layers. Each command in the Dockerfile basically adds a new layer +that can be cached and later be used in other builds. Talking about the very inner workings of +Docker is beyond the scope of this workshop, but you can read more information here: + +- [Docker storage driver](https://docs.docker.com/storage/storagedriver/) +- [Docker image optimization](https://cloudyuga.guru/blogs/understanding-docker-image-optimization-techniques-for-effective-deployment/#:~:text=Minimize%20The%20Number%20Of%20Layers,-In%20this%20technique&text=Each%20instruction%20like%20FROM%2C%20COPY,size%20of%20the%20resulting%20image.) +- [Number of docker layers](https://stackoverflow.com/questions/47079114/should-i-minimize-the-number-of-docker-layers) + +::: + +:::tip + +With time, a system can accumulate lots of local images, containers and build caches. That means +that a user may end up with 0 space left on its laptop/PC. So, it is useful to see how much storage +Docker occupies. In order to do this, run the `docker system df` command. Ask one of the course +instructors for more details about the output and how you can free up disk space. + +::: + +## Exercise 2 + +- Write a `Dockerfile.image` file containing the instructions for generating a container image +based on `ubuntu`. The image should have the `24.04` version. +- **NEW** Create a file called `test.txt` in the same folder with `Dockerfile.image`. Copy this file +inside the container with some content inside. +- Set an environment variable called **MESSAGE** to whatever message you want. +- **NEW** Using `echo`, append the output of the environment variable to the copied file. +- Using a specific command, create the image such as, when running it non-interactively, it +outputs the contents of the file. Basically, add a default for executing the container. + +:::tip + +Have a look on the [Dockerfile reference](https://docs.docker.com/reference/dockerfile/) for the +required commands. + +::: + +## Docker networking + +The Docker networking subsystem is plugable and uses a variety of drivers in order to offer implicit +behavior for network components. Why do we care about the networking subsystem? Because in order to +build useful apps, we need to make the containers communicate with each other. Moreover, we may +even want to isolate the traffic between certain containers and create sub-networks. + +:::info + +You can read for about docker networking [here](https://docs.docker.com/network/). + +::: + +Containers residing in the same network can communicate with each other using **named DNS**. This +means that we can access a container using its name, and not necessarily its IP. In order to +communicate with the outside world (the host machine, containers which are outside the network), +you must expose [ports](https://www.mend.io/blog/how-to-expose-ports-in-docker/). + +Moving forward, we are going to demonstrate how the `bridge` networks work in Docker. You can read +more about them [here](https://docs.docker.com/network/drivers/bridge/). We are going to start two +containers and try to send pings from one another to see if anything happens. In order to do this, +it is easier if you open two separate terminal tabs. + +```bash + +cristian@cristianson:~$ docker container run --name first -it alpine ash +/ # + + +``` + +```bash + +cristian@cristianson:~$ docker container run --name second -it alpine ash +/ # + +``` + +This time, we have started two alpine containers, because they are more lightweight than the ubuntu +ones. `ash` is the default shell for the `alpine` containers. Now, if we try to ping from the `first` +container the `second` container, we see that this does not work. Same story if we try the same +thing from the `second` container. + +```bash + +cristian@cristianson:~$ docker container run --name first -it alpine ash +/ # ping second +ping: bad address 'second' +/ # + +``` + +```bash + +cristian@cristianson:~$ docker container run --name second -it alpine ash +/ # ping first +ping: bad address 'first' +/ # + +``` + +If we do an `ifconfig` inside one of the containers, we see that there are only two networks +available to us right now: + +- lo +- eth0 + +You can ask the course instructors about more information about these two networks. + +```bash + +/ # ifconfig +eth0 Link encap:Ethernet HWaddr 02:42:AC:11:00:02 + inet addr:172.17.0.2 Bcast:172.17.255.255 Mask:255.255.0.0 + UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 + RX packets:67 errors:0 dropped:0 overruns:0 frame:0 + TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:0 + RX bytes:8933 (8.7 KiB) TX bytes:216 (216.0 B) + +lo Link encap:Local Loopback + inet addr:127.0.0.1 Mask:255.0.0.0 + UP LOOPBACK RUNNING MTU:65536 Metric:1 + RX packets:0 errors:0 dropped:0 overruns:0 frame:0 + TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:1000 + RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) + +/ # + + +``` + +Let's make these containers communicate! First, create a docker network object: + +```bash + +cristian@cristianson:~$ docker network create -d bridge my-bridge +8508d7585c6b8145da8afac4bf159de14293c4fd11ebcf2662e3367fc46d92c9 +cristian@cristianson:~$ docker network ls +NETWORK ID NAME DRIVER SCOPE +9ccf3f0b6346 bridge bridge local +1e22e9263c46 host host local +8508d7585c6b my-bridge bridge local +294f9f02c5c1 none null local + +``` + +:::tip + +Use `docker network --help` to find out more about the command. Ask one of the course instructors +for more information if necessary. + +::: + +Listing the available networks with `docker network ls` shows the newly created `my-bridge` network +of type `bridge`. Now, let's connect the two containers to the network. Keep in mind we are adding +the containers to the network while they are still running. We could have also added them at creation. + +```bash + +cristian@cristianson:~$ docker network connect my-bridge first +cristian@cristianson:~$ docker network connect my-bridge second + +``` + +It was that easy! Running an `ifconfig` now yields: + +```bash + +/ # ifconfig +eth0 Link encap:Ethernet HWaddr 02:42:AC:11:00:02 + inet addr:172.17.0.2 Bcast:172.17.255.255 Mask:255.255.0.0 + UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 + RX packets:129 errors:0 dropped:0 overruns:0 frame:0 + TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:0 + RX bytes:18254 (17.8 KiB) TX bytes:216 (216.0 B) + +eth1 Link encap:Ethernet HWaddr 02:42:AC:14:00:02 + inet addr:172.20.0.2 Bcast:172.20.255.255 Mask:255.255.0.0 + UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 + RX packets:66 errors:0 dropped:0 overruns:0 frame:0 + TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:0 + RX bytes:9143 (8.9 KiB) TX bytes:0 (0.0 B) + +lo Link encap:Local Loopback + inet addr:127.0.0.1 Mask:255.0.0.0 + UP LOOPBACK RUNNING MTU:65536 Metric:1 + RX packets:0 errors:0 dropped:0 overruns:0 frame:0 + TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:1000 + RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) + + +``` + +We have one extra network interface, `eth1`. Let's ping again the `second` container from `first`. + +```bash + +/ # ping -c2 second +PING second (172.20.0.3): 56 data bytes +64 bytes from 172.20.0.3: seq=0 ttl=64 time=0.328 ms +64 bytes from 172.20.0.3: seq=1 ttl=64 time=0.181 ms + +--- second ping statistics --- +2 packets transmitted, 2 packets received, 0% packet loss +round-trip min/avg/max = 0.181/0.254/0.328 ms +/ # + +``` + +Nice! This time everything works as expected. Observe the fact that we have used the container's +name and not the IP. You can stop and remove the containers now. + +## Exercise 3 + +- Create a network called `ipw` of type `bridge`. +- **NEW** Create two containers and assign them to the `ipw` network at creation. +- Check if the containers can communicate. +- **NEW** In another terminal tab, do `docker network inspect ipw` and comment on the output with +one of the course instructors. +- **NEW** Do a `cat /etc/hosts` in each container and comment on the output with one of the course +instructors. +- Stop the containers, remove them and also remove the newly created network. + +:::warning + +You are not allowed to use Google! Use `docker --help` whenever you can to get more +information, or ask one of the course instructors. + +::: + +## Docker persistence + +In Docker, data we create or edit inside a container is not persisted in the outside world. This is +due to the way Docker works and the particularities of its filesystem. Let's illustrate this: + +:::info + +You can read more about this here: + +- [MobyLab](https://mobylab.docs.crescdi.pub.ro/docs/softwareDevelopment/laboratory1/persistence) +- [OverlaysFs](https://www.kernel.org/doc/Documentation/filesystems/overlayfs.txt) +- [AuFs](https://www.kernel.org/doc/Documentation/filesystems/overlayfs.txt) + +::: + +### Volumes + +In order to persist data from a container, Docker uses a mechanism called **volumes**. These volumes +represent a mapping between files in the container and files on the host system. The major advantage +of Docker volume is the fact that they are not tied to the lifetime of the container they are +attached to. This means that even if a container crashes, stops or is deleted, its data will still +persist in the outside world, because volumes are an outside abstraction that are just linked to +container, but have a standalone lifetime. Other advantages of volumes include: + +- easy migration between containers and machines +- can be configured via the CLI or Docker API +- can be shared between multiple container, which means that volumes represent a way of +*communication* via storage +- by employing different storage drivers, volumes can be used to persist data on remote machines, +cloud environments, network drives etc. + +Volumes managed by the Docker engine are also called **named volumes**. There are multiple ways of +defining volumes: + +- by using the **VOLUME** command inside the Dockerfile when creating the image, see the +[Docker reference](https://docs.docker.com/reference/dockerfile/#volume) +- at runtime, when creating a volume +- with a docker compose file (more on that later) and the docker volume API: `docker volume create`, +`docker volume ls`, etc. + +Let's see how we can create a volume a runtime with the following command: + +```bash + +cristian@cristianson:~$ docker container run --name ipw -d -v /test alpine sh -c 'ping 8.8.8.8 > /test/ping.txt' +3e6beddbd15e43365be7f863023a43cffcdbab86916d78c553ec0822b58f9b6a4 +cristian@cristianson:~$ docker ps +CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES +3e6beddbd15e alpine "sh -c 'ping 8.8.8.8…" 2 seconds ago Up 1 second ipw + +``` + +The `-v` argument followed by the volume name defines a volume at the `/test` path inside the +container. Every file we create or modify in that folder will basically alter the volume. Also note +that we are using a long running command, `sh -c 'ping 8.8.8.8 > /test/ping.txt'`, in order to +continuously append data to the file. + +Now, if we do a `docker volume ls` we should see: + +```bash + +cristian@cristianson:~$ docker volume ls +DRIVER VOLUME NAME +local a5ec5808eb58a6cc5551bd5f979f038f99015668f79314bec28ada192880d065 + +``` + +Let's see if we can get more information about our newly created volume: + +```bash + +cristian@cristianson:~$ docker volume inspect a5ec5808eb58a6cc5551bd5f979f038f99015668f79314bec28ada192880d065 +[ + { + "CreatedAt": "2024-08-02T12:20:22+03:00", + "Driver": "local", + "Labels": { + "com.docker.volume.anonymous": "" + }, + "Mountpoint": "/var/lib/docker/volumes/a5ec5808eb58a6cc5551bd5f979f038f99015668f79314bec28ada192880d065/_data", + "Name": "a5ec5808eb58a6cc5551bd5f979f038f99015668f79314bec28ada192880d065", + "Options": null, + "Scope": "local" + } +] + +``` + +The `Mountpoint` label specifies the location on the host machine were the volume data is stored. If +we list the contents of that folder than we would get the following output: + +```bash + +cristian@cristianson:~$ sudo ls /var/lib/docker/volumes/a5ec5808eb58a6cc5551bd5f979f038f99015668f79314bec28ada192880d065/_data +[sudo] password for cristian: +ping.txt + +``` + +Doing a `cat` inside the file we get: + +```bash + +cristian@cristianson:~$ sudo cat /var/lib/docker/volumes/a5ec5808eb58a6cc5551bd5f979f038f99015668f79314bec28ada192880d065/_data/ping.txt +PING 8.8.8.8 (8.8.8.8): 56 data bytes +64 bytes from 8.8.8.8: seq=0 ttl=57 time=20.006 ms +64 bytes from 8.8.8.8: seq=1 ttl=57 time=20.352 ms +64 bytes from 8.8.8.8: seq=2 ttl=57 time=18.195 ms +64 bytes from 8.8.8.8: seq=3 ttl=57 time=18.668 ms + +``` + +Now, if we stop and remove the container, with + +- `docker container stop ipw` +- `docker container rm ipw` + +we see that the volume data is still intact, event though the container was destroyed: + +```bash + +cristian@cristianson:~$ sudo cat /var/lib/docker/volumes/a5ec5808eb58a6cc5551bd5f979f038f99015668f79314bec28ada192880d065/_data/ping.txt +PING 8.8.8.8 (8.8.8.8): 56 data bytes +64 bytes from 8.8.8.8: seq=0 ttl=57 time=20.006 ms +64 bytes from 8.8.8.8: seq=1 ttl=57 time=20.352 ms +64 bytes from 8.8.8.8: seq=2 ttl=57 time=18.195 ms +64 bytes from 8.8.8.8: seq=3 ttl=57 time=18.668 ms + +``` + +This proves the fact that the volume and container have separate lifetimes. + +### Bind mounts + +Besides volumes, we also have the concept of a **bind mount**. These are somewhat similar, the main +difference being that bind mounts are not managed by Docker, but by the file system of the host +machine and can be accessed by any external process which does not belong to Docker. A bind mount is, +in its purest form, a path to a location in the host machine, while a volume is a Docker abstraction +that behind the scenes uses bind mounts. All in all, bind mounts allow us to **import** and access +folders, files and paths from the host machine in our Docker container and persist any modification. + +:::info + +You can read more about volumes and bind mounts [here](https://docs.docker.com/storage/bind-mounts/). + +::: + +We can add a bind mount to a container in a similar fashion, when we are creating it. + +```bash + +cristian@cristianson:~/Desktop/ipw-docker$ docker container run --name first -d --mount type=bind,source=/home/cristian/Desktop/ipw-docker/test.txt,target=/root/test.txt alpine sh -c 'ping 8.8.8.8 > /root/test.txt' +8438bfb2f16d940770ed3e4ba48cb67428e78ff530ec73de859a5f168d36e8ab +cristian@cristianson:~/Desktop/ipw-docker$ cat test.txt +PING 8.8.8.8 (8.8.8.8): 56 data bytes +64 bytes from 8.8.8.8: seq=0 ttl=57 time=21.369 ms +64 bytes from 8.8.8.8: seq=1 ttl=57 time=20.204 ms +64 bytes from 8.8.8.8: seq=2 ttl=57 time=20.705 ms +64 bytes from 8.8.8.8: seq=3 ttl=57 time=18.625 ms +64 bytes from 8.8.8.8: seq=4 ttl=57 time=20.626 ms +64 bytes from 8.8.8.8: seq=5 ttl=57 time=20.248 ms +64 bytes from 8.8.8.8: seq=6 ttl=57 time=18.777 ms +cristian@cristianson:~/Desktop/ipw-docker$ docker container stop first +first +cristian@cristianson:~/Desktop/ipw-docker$ docker container rm first +first +cristian@cristianson:~/Desktop/ipw-docker$ cat test.txt +PING 8.8.8.8 (8.8.8.8): 56 data bytes +64 bytes from 8.8.8.8: seq=0 ttl=57 time=21.369 ms +64 bytes from 8.8.8.8: seq=1 ttl=57 time=20.204 ms +64 bytes from 8.8.8.8: seq=2 ttl=57 time=20.705 ms +64 bytes from 8.8.8.8: seq=3 ttl=57 time=18.625 ms +64 bytes from 8.8.8.8: seq=4 ttl=57 time=20.626 ms +64 bytes from 8.8.8.8: seq=5 ttl=57 time=20.248 ms +64 bytes from 8.8.8.8: seq=6 ttl=57 time=18.777 ms + +``` + +This is a lot to take in, so let's break it down. We are creating a mount by specifying the `--mount` +argument, of `type=bind`, we specify the source file from the host system that we want to share with +our container, and the target file in the container, which does not necessarily need to exist. + +We see that the running ping command outputs into the file on our local system, and even if we delete +the container and remove it, the data persists. + +### Exercise 4 + +- Using a container image of your choice, create a container which has a volume that will contain +the output of the `ps -aux` command inside. +- **NEW** Mount a read-only bind mount into the container which contains an image of your choice. + +## Exercise 5 (wrapping things up) + +- Inspect the source code in [this repository](https://github.com/IPW-CloudOps/simple-node-app) and +create a Dockerfile that builds a container image for that application. +- Run the newly created container image to make sure everything works. + +:::info + +This task is intentionally written ambiguous in order to make you search the official documentation, +ask the course instructors questions and familiarize yourself with what a DevOps engineer has to do +on a day-to-day basis. So do not feel bad if, at first, the task seems hard. Do your best, solve it +at your own pace, collaborate with your colleagues, and, most importantly, have fun while learning +new things! + +::: + +:::note + +This course borrows many things, as well as its structure from: + +- [SCGC Pages UPB](https://scgc.pages.upb.ro/cloud-courses/docs/security/containers) +- [Mobylab Pages UPB](https://mobylab.docs.crescdi.pub.ro/docs/softwareDevelopment/laboratory1/) + +This note is here then to give credits to the teams that created the above resources. For more +information on Docker and other things, feel free to check them out! + +::: diff --git a/docs/cloud_operations/docker/docker-compose.md b/docs/cloud_operations/docker/docker-compose.md new file mode 100644 index 0000000..8b51c1d --- /dev/null +++ b/docs/cloud_operations/docker/docker-compose.md @@ -0,0 +1,217 @@ +--- +id: docker-compose +title: Docker Compose +description: Working with Docker compose +slug: /docker/compose +sidebar_position: 3 +--- + +## Why Docker Compose? + +As we have previously seen in the [Docker Basics](./docker-basics.md) tutorial, we can create and +run containers from the CLI. But this method gets increasingly tedious as soon as we try to create +multiple containers that need to interact with one another. Would it not be nice if we also had +some kind of universal format that could allow us to specify which containers we want, how they +communicate over the network or share data? + +This is where Docker Compose comes into play. It allows a user to write a specification file for +an environment. That specification file is then run by using the `docker compose` command and +Docker takes care of creating all of the required resources. + +## Installation + +On Windows and MacOS, Docker Compose is part of the installation bundle for Docker Desktop. On, +Linux, you can check if you have Docker Compose installed by using the command: + +```bash + +cristian@cristianson:~$ docker compose version +Docker Compose version v2.24.5 + +``` + +If the command fails, you can follow [this guide](https://docs.docker.com/compose/install/) to +install Docker Compose. + +## YAML file format + +The file format we are going to use write Docker Compose files is called +[YAML](https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html) (Yet Another +Markup Language). The format assumes the following concepts: + +- each entry is of type `key:value` +- indentations in YAML are important as indented paragraphs are children of previous paragraphs +- list items are marked with `-` + +## Docker Compose example file + +```yaml + +version: "3.8" +services: + api: + build: . # use a Dockerfile located in the current directory to build the image + environment: # set some environment variables that will be available in the container at runtime + NODE_ENV: development + MY_ENV_VAR: my_custom_value + ports: + - "HOST_PORT:CONTAINER_PORT" + - "5000:80" # bind the 5000 port on the host machine to the port 80 inside the container + networks: + - my-network # the container will be assigned to this network and will be able to + # communicate only with containers which are part of the same network + + postgres: + image: postgres:12 # use the official postgres image, version 12 + secrets: # the secret which is created at the bottom of the file is referenced here + - my_ultra_secret_password + environment: + PGPASSWORD_FILE: /run/secrets/my_ultra_secret_password + volumes: + - my-volume:/var/lib/postgresql/data + - ./init-script/init-db.sql:/docker-entrypoint-init.d/init-db.sql + networks: + - my-network + +volumes: + my-volume: + +networks: + my-network: + +secrets: + my_ultra_secret_password: + file: './who-stores-passwords-in-plain-text.txt' + +``` + +The inspiration for this Docker Compose file is from [here](https://mobylab.docs.crescdi.pub.ro/docs/softwareDevelopment/laboratory2/compose#exemplu-de-fi%C8%99ier-docker-compose). + +Let's break it down line by line: + +- `version`: the set of Docker Compose functionalities that will be used. This is the first line of +each compose file and is **mandatory**. Omitting this line will result in an error. + +- `services`: the containers that will run after the configuration is loaded by the Compose agent. +Each service is basically a container. In the provided file, we have two services/containers, called +**api** and **postgres** + - `build`: the directory where the Dockerfile used for creating the container image is located + - `image`: the image used for running the container + - `ports`: a list of `HOST_MACHINE_PORT: CONTAINER_PORT` entries + - `volumes`: a list of `HOST_VOLUME: PATH_IN_CONTAINER` entries, where `HOST_VOLUME` can be either +a Docker managed volume or a bind mount + - `networks`: a list of assigned networks for the container. + - `secrets`: a list of secrets used inside the container + - `environment`: object with multiple fields of type `ENV_VARIABLE_NAME: ENV_VARIABLE_VALUE` + +:::warning + +The `build` and `image` properties are mutually exclusive! + +::: + +### Volumes + +Top level property (written of the same level as `services`). These are Docker managed objects, and +can have multiple properties, such as the storage driver that should be used or if the volume already +exists on the host machine. More information on volumes [here](https://docs.docker.com/compose/compose-file/07-volumes/). + +```yaml + +volumes: + db-data: + driver: foobar + external: false + +``` + +### Networks + +Top level property (written of the same level as `services`). These are Docker managed objects, and +can have multiple properties, such as the driver that should be used of if the network already exists +on the host machine. More information on networks [here](https://docs.docker.com/compose/compose-file/06-networks/). + +```yaml + +networks: + db-data: + driver: bridge + external: false + +``` + +### Secrets + +Top level property (written of the same level as `services`). These are Docker managed objects, and +can have multiple properties. These are a flavor of [Configs](https://docs.docker.com/compose/compose-file/08-configs/), +focusing on hiding sensitive data. More information on secrets [here](https://docs.docker.com/compose/compose-file/09-secrets/). + +```yaml + +secrets: + server-certificate: + file: ./server.cert + +``` + +`server-certificate` secret is created as `_server-certificate` when the application +is deployed, by registering content of the `server.cert` as a platform secret. + +## List of Docker Compose commands + +A list with all of the important Docker Compose commands is [here](https://docs.docker.com/compose/reference/). +The instructor will perform a demo to showcase the most important ones, but when you do not know +the meaning of a command, do `docker compose --help`. + +```bash + +docker compose up -d # services run in the background, detached from the terminal that initialized them +docker compose up --build # creates images before starting +docker compose start # starts the containers +docker compose pause # pauses the containers of a service (SIGPAUSE is sent) +docker compose unpause # unpauses the containers +docker compose ps # lists active containers +docker compose ls # lists all container stacks +docker compose -p my-project -f my-docker-compose.yml up # uses the specified Compose file instead of the default one and with a project name +docker compose down # stops the containers and deletes them, along with networks, volumes, and images created at up +docker compose rm # deletes all stopped containers (you can specify the name of the container to be deleted at the end) +docker compose rm -s -v # with -s it stops all containers and with -v it also deletes the attached anonymous volumes + +``` + +## Exercise (final boss) + +- Inspect the source code in [this repository](https://github.com/IPW-CloudOps/simple-node-app) and +create a Docker Compose manifest file for that application. +- Check that the required services are up and running. +- Do some requests to test the service. +- Delete the stack + +:::tip + +If you have solved the last exercise in the Docker Basics section, then you should already have the +Dockerfile created. Just reference it in the Docker Compose manifest! + +::: + +:::info + +This task is intentionally written ambiguous in order to make you search the official documentation, +ask the course instructors questions and familiarize yourself with what a DevOps engineer has to do +on a day-to-day basis. So do not feel bad if, at first, the task seems hard. Do your best, solve it +at your own pace, collaborate with your colleagues, and, most importantly, have fun while learning +new things! + +::: + +:::note + +This course borrows many things, as well as its structure from: + +- [SCGC Pages UPB](https://scgc.pages.upb.ro/cloud-courses/docs/security/containers) +- [Mobylab Pages UPB](https://mobylab.docs.crescdi.pub.ro/docs/softwareDevelopment/laboratory1/) + +This note is here then to give credits to the teams that created the above resources. For more +information on Docker and other things, feel free to check them out! + +::: diff --git a/docs/cloud_operations/docker/docker-overview.md b/docs/cloud_operations/docker/docker-overview.md new file mode 100644 index 0000000..64a57b7 --- /dev/null +++ b/docs/cloud_operations/docker/docker-overview.md @@ -0,0 +1,75 @@ +--- +id: docker-overview +title: Introduction and Setup +description: General Overview of Docker and Setup +slug: /docker/overview +sidebar_position: 1 +--- + +## What is Docker? + +Docker is a software containerization platform used to package and run applications both locally +and on cloud systems, eliminating "it works on my machine" problems. It provides an environment for +running containers on any platform, based on containerd. + +Key benefits of Docker include: + +- Faster building, testing, deployment, updating, and error recovery compared to standard +application deployment methods. +- A uniform development and production environment, eliminating compatibility issues with operating +systems and conflicts between library/package versions on the host system. +- Ephemeral containers, meaning the failure or shutdown of one container doesn't crash the entire +system. +- Consistency between development and production environments. +- Maximum flexibility for large-scale projects, allowing easy integration of new software tools as +requirements change. +- Easy replication of infrastructure in different environments using saved Docker images from a +registry. +- Simple updates of components by rewriting images, ensuring the latest versions are always +deployed as containers. + +Docker thus provides a versatile and efficient solution for modern software development and +deployment challenges. + +## Docker architecture + +![Docker architecture](docker-arch.png) + +Above picture taken from [Medium](https://medium.com/@basecs101/understanding-docker-architecture-latest-c7a165571d89). + +## Docker Setup + +- [Linux setup](https://docs.docker.com/engine/install/debian/) +- [Windows setup](https://docs.docker.com/desktop/install/windows-install/) +- [Mac setup](https://docs.docker.com/desktop/install/mac-install/) + +If you get stuck or do not know what steps need to be taken, please ask the course instructors to +help you. It is very important that you have your Docker engine properly set-up as this is the basis +for the Kubernetes tutorial, also. + +## Overview of docker concepts that will be discussed in this course + +- Containers +- Images +- Dockerfile +- Docker Hub +- Docker Compose +- Volumes +- Networks +- Docker Registry +- Container orchestration (basic concept) +- Multi-stage builds +- Docker security best practices +- Docker CLI commands +- Container lifecycle management +- Image layering and caching +- Environment variables in Docker +- Port mapping and exposure +- Docker logging and monitoring +- Container resource management (CPU, memory limits) +- Docker healthchecks +- Docker build context +- Docker image tagging strategies +- Docker networking modes +- Docker storage drivers +- Containerization of different application types (web, database, etc.) \ No newline at end of file diff --git a/docs/cloud_operations/docker/overview.drawio.png b/docs/cloud_operations/docker/overview.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..d9cc89601b8fc4d09995ea7a0e851e9758aff66c GIT binary patch literal 88689 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 EH@fK6H~;_u literal 0 HcmV?d00001 diff --git a/docs/cloud_operations/final/_category_.json b/docs/cloud_operations/final/_category_.json new file mode 100644 index 0000000..5a79737 --- /dev/null +++ b/docs/cloud_operations/final/_category_.json @@ -0,0 +1,9 @@ +{ + "label": "Grand Finale", + "position": 4, + "link": { + "type": "generated-index", + "description": "Deplyoment of Your App" + } + } + \ No newline at end of file diff --git a/docs/cloud_operations/final/development-strategy.md b/docs/cloud_operations/final/development-strategy.md new file mode 100644 index 0000000..e02b2f1 --- /dev/null +++ b/docs/cloud_operations/final/development-strategy.md @@ -0,0 +1,15 @@ +--- +id: deployment-strategy +title: Deployment Strategy +description: Best practices for deploying applications on Kubernetes +slug: /deployment/strategy +sidebar_position: 1 +--- + +# Deployment Strategy + +### Deployment Considerations + +### CI/CD Overview + +### Best Practices for Kubernetes Deployments \ No newline at end of file diff --git a/docs/cloud_operations/final/minikube-deployment.md b/docs/cloud_operations/final/minikube-deployment.md new file mode 100644 index 0000000..6a81e54 --- /dev/null +++ b/docs/cloud_operations/final/minikube-deployment.md @@ -0,0 +1,15 @@ +--- +id: minikube-deployment +title: Deploying to Minikube +description: Practical guide to deploying an application on Minikube +slug: /deployment/minikube +sidebar_position: 2 +--- + +# Deploying to Minikube + +### Deploying the Node.js App to Minikube + +### Exposing the Application + +### Scaling and Updating the Deployment \ No newline at end of file diff --git a/docs/cloud_operations/final/next-steps.md b/docs/cloud_operations/final/next-steps.md new file mode 100644 index 0000000..63ff20d --- /dev/null +++ b/docs/cloud_operations/final/next-steps.md @@ -0,0 +1,15 @@ +--- +id: next-steps +title: Next Steps +description: Further learning resources and advanced topics +slug: /next-steps +sidebar_position: 3 +--- + +# Next Steps + +### Further Learning Resources + +### Advanced Topics (Helm, Operators, etc.) + +### Cloud-native Landscape Overview \ No newline at end of file diff --git a/docs/cloud_operations/index.md b/docs/cloud_operations/index.md deleted file mode 100644 index b382a27..0000000 --- a/docs/cloud_operations/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# Intorduction - - diff --git a/docs/cloud_operations/kubernetes/_category_.json b/docs/cloud_operations/kubernetes/_category_.json new file mode 100644 index 0000000..d1c6bd8 --- /dev/null +++ b/docs/cloud_operations/kubernetes/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Kubernetes", + "position": 3, + "link": { + "type": "generated-index", + "description": "Simple Guide to Kubernetes" + } +} \ No newline at end of file diff --git a/docs/cloud_operations/kubernetes/kubernetes-overview.md b/docs/cloud_operations/kubernetes/kubernetes-overview.md new file mode 100644 index 0000000..8f26d03 --- /dev/null +++ b/docs/cloud_operations/kubernetes/kubernetes-overview.md @@ -0,0 +1,79 @@ +--- +id: kubernetes-overview +title: Kubernetes Overview +description: Introduction to Kubernetes +slug: /kubernetes/overview +sidebar_position: 1 +--- + +# Kubernetes Overview + +## What is Kubernetes? + +Kubernetes is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. Key points include: + +- Developed originally by Google, now maintained by the Cloud Native Computing Foundation +- Designed to run distributed systems resiliently +- Provides features like service discovery, load balancing, storage orchestration, and self-healing +- Enables declarative configuration and automation + +## Kubernetes Architecture + +Kubernetes uses a master-worker architecture: + +1. Master Node (Control Plane): + - API Server: Central management point for the cluster (this is the frontend for the cluster) + - Scheduler: Assigns work to nodes + - Controller Manager: Regulates the state of the system + - Cloud Controller Manager: Regulates the state of the system, in case we are using a cloud provider + - etcd: Distributed key-value store for cluster data (mini database) + +2. Worker Nodes: + - Kubelet: Ensures containers are running in a pod + - Container Runtime: Software for running containers (e.g., Docker) + - Kube-proxy: Manages network rules on nodes + +![cluster](/img/docs/kubernetes/1.svg) + +## Other architectures + +### Orchestrated architecture + +![orchestrated-architecture](/img/docs/kubernetes/2.png) + + +## Key Kubernetes Concepts + +1. Clusters: + - A set of nodes that run containerized applications + - Provides high availability and scalability (you can have replicas in different datacenters) + +1. Nodes: + - Physical or virtual machines in the Kubernetes cluster + - Can be master nodes (part of the control plane) or worker nodes + +1. Namespaces: + - Virtual clusters within a physical cluster + - Used for organizing resources and multi-tenancy + +1. [Pods](./resources/pods.md): + - Smallest deployable units in Kubernetes + - Can contain one or more containers + - Share network namespace and storage + +1. [Replica Sets](./resources/replicasets.md): + - Describe the desired state for a set of pods + - Provide basic scaling and self-healing mechanisms + +1. [Services](./resources/services.md): + - An abstract way to expose applications running on pods + - Provide a stable network endpoint + +1. [Persistent Volumes (and Persistent Volume Claims)](./resources/persistent-volumes.md): + - Abstraction for storage resources in the cluster + +1. [ConfigMaps and Secrets](./resources/configmaps_and_secrets.md): + - Manage configuration data and sensitive information + +1. [Ingress](./resources/ingress.md): + - Manage external access to services in a cluster \ No newline at end of file diff --git a/docs/cloud_operations/kubernetes/kubernetes-setup.md b/docs/cloud_operations/kubernetes/kubernetes-setup.md new file mode 100644 index 0000000..96b8ffd --- /dev/null +++ b/docs/cloud_operations/kubernetes/kubernetes-setup.md @@ -0,0 +1,89 @@ +--- +id: kubernetes-setup +title: Kubernetes Setup +description: Setting up a local Kubernetes environment +slug: /kubernetes/setup +sidebar_position: 2 +--- + +# Kubernetes Setup + +## Installing Minikube + + https://minikube.sigs.k8s.io/docs/start + +## Installing kubectl + + https://kubernetes.io/docs/tasks/tools/ + + Don't forget autocompletion! + +## Setting up a Local Kubernetes Cluster + +1. Start Minikube: + + ```shell + > minikube start + ``` + + :::warning + + If you have `VirtualBox` or `VMWare`(?), minikube defaults to using them over docker. This might be fine on your machine, but for some this operation will fail due to some configuration issues inside the BIOS. The simple solution is to tell minikube to use `docker` as the driver. + + ```shell + > minikube start --driver=docker + ``` + + ::: + +2. Verify the cluster status: + + ```shell + > minikube status + > kubectl cluster-info + ``` + +3. Enable necessary addons: + + ```shell + > minikube addons enable ingress + > minikube addons enable dashboard + ``` + +4. Access the Kubernetes dashboard: + + ```shell + > minikube dashboard + ``` + +5. Deploy a sample application: + + ```shell + > kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.10 + > kubectl expose deployment hello-minikube --type=NodePort --port=8080 + ``` + +6. Access the deployed application: + + ```shell + > minikube service hello-minikube + ``` + + A browser should have launched showing you some information about the sample application. Optionally, you can play with the app using `curl`: + + ```shell + > curl 127.0.0.1: -d "edit me" + ``` + +7. Clean up: + + ```shell + > kubectl delete service hello-minikube + > kubectl delete deployment hello-minikube + ``` + +8. Stop the Minikube cluster: + + ```shell + > minikube stop + ``` \ No newline at end of file diff --git a/docs/cloud_operations/kubernetes/resources/_category_.json b/docs/cloud_operations/kubernetes/resources/_category_.json new file mode 100644 index 0000000..a220d77 --- /dev/null +++ b/docs/cloud_operations/kubernetes/resources/_category_.json @@ -0,0 +1,8 @@ +{ + "position": 5, + "label": "Resources", + "link": { + "type": "generated-index", + "title": "Resources" + } +} \ No newline at end of file diff --git a/docs/cloud_operations/kubernetes/resources/configmaps_and_secrets.md b/docs/cloud_operations/kubernetes/resources/configmaps_and_secrets.md new file mode 100644 index 0000000..2801235 --- /dev/null +++ b/docs/cloud_operations/kubernetes/resources/configmaps_and_secrets.md @@ -0,0 +1,286 @@ +--- +title: ConfigMaps and Secrets +description: '' +sidebar_position: 3 +--- + +# [ConfigMaps](https://kubernetes.io/docs/concepts/configuration/configmap/) and [Secrets](https://kubernetes.io/docs/concepts/configuration/secret/) + +### Goals +1. **Understand ConfigMaps and Secrets**: + - Learn what ConfigMaps and Secrets are, and their roles in Kubernetes. +1. **Basic Examples**: + - Provide basic examples of ConfigMaps and Secrets. + - Show how to define ConfigMaps and Secrets using YAML. +1. **Usage in Pods**: + - Demonstrate how to use ConfigMaps and Secrets to manage configuration and sensitive data within pods. +1. **Exercise**: + - Hands-on activities to create and use ConfigMaps and Secrets in a Kubernetes cluster. + +## Understanding ConfigMaps + +**ConfigMaps** are Kubernetes objects used to store non-confidential data in key-value pairs. They can be used to configure application settings and pass configuration data into pods. + +### Basic ConfigMap Example + +Here is a basic example of a Kubernetes ConfigMap specification in YAML: + +```yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: example-configmap +data: + config.json: | + { + "key1": "value1", + "key2": "value2" + } +``` + +Save this to a file named `configmap.yaml` and create the ConfigMap using: + +```bash +> kubectl apply -f configmap.yaml +``` + +You can view all config maps and read their contents using: + +``` +> kubectl get configmaps +NAME DATA AGE +example-configmap 1 54s +kube-root-ca.crt 1 46m + +> kubectl describe configmaps example-configmap +Name: example-configmap +Namespace: default +Labels: +Annotations: + +Data +==== +config.json: +---- +{ + "key1": "value1", + "key2": "value2" +} + + +BinaryData +==== + +Events: +``` + +### Using ConfigMaps in Pods + +To use a ConfigMap in a pod, you can reference it in the pod specification. For example: + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: configmap-pod +spec: + containers: + - name: app-container + image: nginx:latest + volumeMounts: + - name: config-volume + mountPath: /etc/config + volumes: + - name: config-volume + configMap: + name: example-configmap +``` + +In this example, the ConfigMap `example-configmap` is mounted as a volume in the pod at `/etc/config`. + +After you `apply` the pod, you can see the config by `cat`-ing the file contents: + +```bash +> kubectl exec -it configmap-pod -- cat /etc/config/config.json +``` + +## Understanding Secrets + +**Secrets** are Kubernetes objects designed to hold sensitive data, such as passwords, OAuth tokens, and SSH keys. The data in Secrets is encoded as base64 strings. + +### Basic Secret Example + +Here is a basic example of a Kubernetes Secret specification in YAML: + +```yaml +apiVersion: v1 +kind: Secret +metadata: + name: example-secret +data: + username: YWRtaW4= + password: MWYyZDFlMmU2N2Rm +``` + +The values for `username` and `password` are base64-encoded strings (`admin` and `1f2d1e2e67df`, respectively). + +Save this to a file named `secret.yaml` and create the Secret: + +```bash +> kubectl apply -f secret.yaml +``` + +### Using Secrets in Pods + +To use a Secret in a pod, you can reference it similarly to a ConfigMap: + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: secret-pod +spec: + containers: + - name: app-container + image: nginx:latest + env: + - name: USERNAME + valueFrom: + secretKeyRef: + name: example-secret + key: username + - name: PASSWORD + valueFrom: + secretKeyRef: + name: example-secret + key: password +``` + +In this example, the Secret `example-secret` is used to set environment variables in the pod. + +## Exercises + +### Exercise 1: Creating and Using a ConfigMap (Easy) + +**Objective**: Create a ConfigMap and use it to configure a pod. + +**Task**: +- Create a ConfigMap with a configuration file. +- Use this ConfigMap in a pod. + +**Instructions**: +1. Create a YAML file named `my-configmap.yaml`: + +```yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: my-configmap +data: + app.properties: | + setting1=value1 + setting2=value2 +``` + +2. Apply the ConfigMap: + +```bash +> kubectl apply -f my-configmap.yaml +``` + +3. Create a YAML file named `configmap-pod.yaml`: + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: configmap-pod +spec: + containers: + - name: app-container + image: busybox + command: ["sh", "-c", "cat /etc/config/app.properties && sleep 3600"] + volumeMounts: + - name: config-volume + mountPath: /etc/config + volumes: + - name: config-volume + configMap: + name: my-configmap +``` + +4. Apply the pod configuration: + +```bash +> kubectl apply -f configmap-pod.yaml +``` + +5. Verify the pod is running and inspect the logs to see the ConfigMap data: + +```bash +> kubectl logs configmap-pod +``` + +--- + +### Exercise 2: Creating and Using a Secret (Medium) + +**Objective**: Create a Secret and use it in a pod. + +**Task**: +- Create a Secret containing sensitive information. +- Use this Secret in a pod to set environment variables. + +**Instructions**: +1. Create a YAML file named `my-secret.yaml`: + +```yaml +apiVersion: v1 +kind: Secret +metadata: + name: my-secret +data: + api-key: c2VjcmV0YXBpa2V5 +``` + +(The value `c2VjcmV0YXBpa2V5` is base64 for `secretapikey`.) + +2. Apply the Secret: + +```bash +> kubectl apply -f my-secret.yaml +``` + +3. Create a YAML file named `secret-pod.yaml`: + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: secret-pod +spec: + containers: + - name: app-container + image: busybox + command: ["sh", "-c", "echo $API_KEY && sleep 3600"] + env: + - name: API_KEY + valueFrom: + secretKeyRef: + name: my-secret + key: api-key +``` + +4. Apply the pod configuration: + +```bash +> kubectl apply -f secret-pod.yaml +``` + +5. Verify the pod is running and inspect the logs to see the API key: + +```bash +> kubectl logs secret-pod +``` + +These exercises cover the basics of creating and using ConfigMaps and Secrets in Kubernetes, providing both practical examples and explanations. diff --git a/docs/cloud_operations/kubernetes/resources/ingress.md b/docs/cloud_operations/kubernetes/resources/ingress.md new file mode 100644 index 0000000..d4d7969 --- /dev/null +++ b/docs/cloud_operations/kubernetes/resources/ingress.md @@ -0,0 +1,94 @@ +--- +title: Ingress +description: '' +sidebar_position: 5 +--- +# [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/) + +## Goals +1. **Understand Kubernetes Ingress**: + - Learn what an Ingress is and its role in the Kubernetes architecture. +1. **Basic Example(s)**: + - Provide (a) basic example(s) of Ingress resources. + - Show how to define an Ingress using YAML. +1. **Ingress Spec Explanation**: + - Explain the components of the Ingress specification using the example(s) above. +1. **Ingress Controllers**: + - Describe different Ingress controllers and their use cases. +1. **Exercise**: + - Hands-on activity to create a simple Ingress. + +## Understanding Kubernetes Ingress + +An **Ingress** in Kubernetes is an API object that manages external access to the services in a cluster, typically HTTP. Ingress can provide load balancing, SSL termination, and name-based virtual hosting. + +## Basic Ingress Example + +### Simple Ingress + +Here is a basic example of a Kubernetes Ingress specification in YAML: + +``` +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: example-ingress +spec: + rules: + - host: example.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: example-service + port: + number: 80 +``` + +This Ingress routes traffic to the `example-service` service when accessing `example.com`. + +Save this to a file `ingress.yaml` and create the resource using `kubectl apply -f ingress.yaml`: + +``` +> kubectl apply -f ingress.yaml +ingress.networking.k8s.io/example-ingress created +``` + +## Ingress Spec Explanation + +1. apiVersion: networking.k8s.io/v1 (API group and version) +1. kind: Ingress (type of the resource) +1. metadata: [ObjectMeta](./object-meta.md) +1. spec: [IngressSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#ingressspec-v1-networking-k8s-io) +1. status: [IngressStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#ingressstatus-v1-networking-k8s-io) + +## Ingress Controllers + +- **Nginx Ingress Controller**: A popular choice that uses Nginx as the backend for managing Ingress resources. (Easiest to set up) +- **Traefik**: A dynamic and modern HTTP reverse proxy and load balancer. +- **Contour**: An open-source ingress controller for Kubernetes that provides advanced routing features. +- **Istio**: A service mesh that provides a powerful way to manage ingress and other traffic within a Kubernetes cluster. + +## Exercises + +### Exercise 1: Create a Simple Ingress + +**Objective**: Deploy an application and expose it externally using an Ingress resource. + +**Task**: +- Deploy a pod running a simple HTTP server (e.g., `nginx` or `httpd`). +- Create a Service to expose this HTTP server. +- Define an Ingress resource to route external traffic to the service. +- Verify that the service is accessible via the Ingress. + +:::tip + +Make sure your cluster has an Ingress controller installed. If using Minikube, you can enable the Nginx Ingress controller using: + +``` +minikube addons enable ingress +``` + +::: \ No newline at end of file diff --git a/docs/cloud_operations/kubernetes/resources/persistent-volumes.md b/docs/cloud_operations/kubernetes/resources/persistent-volumes.md new file mode 100644 index 0000000..b0c023a --- /dev/null +++ b/docs/cloud_operations/kubernetes/resources/persistent-volumes.md @@ -0,0 +1,100 @@ +--- +title: Persistent Volumes +description: '' +sidebar_position: 7 +--- + +# [Persistent Volumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) + +## Goals + +1. **Understand Kubernetes Persistent Volumes**: + - Learn what a Persistent Volume (PV) is and its role in Kubernetes storage architecture. +1. **Basic Example(s)**: + - Provide (a) basic example(s) of Persistent Volume and Persistent Volume Claim (PVC) resources. + - Show how to define a PV and PVC using YAML. +1. **Persistent Volume Spec Explanation**: + - Explain the components of the Persistent Volume specification using the example(s) above. +1. **Persistent Volume Claims**: + - Describe the relationship between Persistent Volumes and Persistent Volume Claims. +1. **Exercise**: + - Hands-on activity to create and use a Persistent Volume. + +## Understanding Kubernetes Persistent Volumes + +A **Persistent Volume** (PV) in Kubernetes is a piece of storage in the cluster that has been provisioned by an administrator or dynamically provisioned using Storage Classes. PVs are independent of the lifecycle of a pod and provide a way to persist data beyond the lifespan of individual pods. + +## Basic Persistent Volume Example + +### Simple Persistent Volume and Persistent Volume Claim + +Here is a basic example of a Kubernetes Persistent Volume and Persistent Volume Claim in YAML: + +```yaml +apiVersion: v1 +kind: PersistentVolume +metadata: + name: example-pv +spec: + capacity: + storage: 1Gi + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + storageClassName: manual + hostPath: + path: /mnt/data +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: example-pvc +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + storageClassName: manual +``` + +This example defines a 1Gi PV using a hostPath and a PVC requesting 1Gi of storage. + +Save this to a file `pv-pvc.yaml` and create the resources using: + +```sh +> kubectl apply -f pv-pvc.yaml +persistentvolume/example-pv created +persistentvolumeclaim/example-pvc created +``` + +## Persistent Volume Spec Explanation + +1. **apiVersion**: v1 (API group and version) +1. **kind**: PersistentVolume (type of the resource) +1. **metadata**: [ObjectMeta](./object-meta.md) +1. **spec**: [PersistentVolumeSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#persistentvolumespec-v1-core) +1. **status**: [PersistentVolumeStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#persistentvolumestatus-v1-core) + +## Persistent Volume Claims + +- A **Persistent Volume Claim (PVC)** is a request for storage by a user. It is similar to a pod in that pods consume node resources, and PVCs consume PV resources. +- PVCs can request specific size and access modes (e.g., ReadWriteOnce, ReadOnlyMany). + +## Exercises + +### Exercise 1: Create a Simple Persistent Volume + +**Objective**: Deploy an application that uses a Persistent Volume for storage. + +**Task**: +- Define a Persistent Volume with a suitable storage capacity. +- Create a Persistent Volume Claim to request storage. +- Deploy a pod that uses the PVC for persistent storage. +- Verify that the pod can write and read data from the Persistent Volume. + +:::tip + +Make sure your cluster has a storage provider configured. For local testing, using a hostPath as shown in the example above is a simple way to simulate PV functionality. + +::: diff --git a/docs/cloud_operations/kubernetes/resources/pods.md b/docs/cloud_operations/kubernetes/resources/pods.md new file mode 100644 index 0000000..8eea7ee --- /dev/null +++ b/docs/cloud_operations/kubernetes/resources/pods.md @@ -0,0 +1,233 @@ +--- +title: Pods +description: '' +sidebar_position: 1 +--- +# [Pods](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/) + +## Goals +1. **Understand Kubernetes Pods**: + - Learn what a pod is and its role in the Kubernetes architecture. +1. **Basic Example(s)**: + - Provide (a) basic example(s) of Pods. + - Show how to define a Pod using YAML. +1. **Pod Spec Explanation**: + - Visit the Pod specification while following the example(s) above. +1. **Direct Pod Access**: + - Describe how to create a direct network tunnel to a Pod for testing and/or debugging purposes. +1. **Exercise**: + - Hands-on activity to create a simple Pod (using only the spec). + +## Understanding Kubernetes Pods: + +A **Pod** is the smallest, most basic deployable object in Kubernetes. It represents a single instance of a running process in your cluster. A pod encapsulates one or more containers, storage resources, a unique network IP, and options that govern how the containers should run. + +## Basic Pod Example + +Here is a basic example of a Kubernetes pod specification in YAML: + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: nginx-pod +spec: + containers: + - name: nginx-container + image: nginx:1.21 + ports: + - containerPort: 80 +``` + +Save this to a file `pod.yaml` and create the resource using `kubectl apply -f pod.yaml`: + +```bash +> kubectl apply -f pod.yaml +pod/nginx-pod created +``` + +Next, let's take a look at the pods running in our cluster and see if we can find the newly created Pod using `kubectl get pods`: + +```bash +> kubectl get pods +NAME READY STATUS RESTARTS AGE +nginx-pod 1/1 Running 0 72s +``` + +Let's explain this a little: +1. `NAME`: As we can see on the left side we have the name of the Pod we've just created (remember the `metadata.name`?) +1. `READY`: To the right of it, we have the `READY` section: `1/1` means that `1` out of `1` Pods of this type are ready to serve traffic. But do we really need this? Well, yes, the maximum number of Pods, for any name, is `1`, but what if our Pod is not ready? We should know that when retrieving Pods, so we can know that the reason we are having trouble with our app is cause the Pod is literally not in a `Running` state. Usually, we won't launch just 1 Pod of this type, we'll be using a Set resource to help us deploy multiple and manage them, but then the `metadata.name` provided will be the prefix for the final name of the pod (i.e `nginx-pod-134af`) +1. `STATUS`: Next, we have the `STATUS` section, which lets us know what status our Pod is in [(`"Pending" | "Running" | "Succeeded" | "Failed" | "Unknown"`)](./pod/pod-status.md) +1. `RESTARTS`: `RESTARTS` show us how many times has the Pod restarted since it has been created, along with how much time has it passed since the last restart (if there has been any) +1. `AGE`: lastly, the `AGE`, which shows us how old the Pod is + +After creating the resource, we should also take a look at the state it is in, we can do this by making use of the `kubectl describe pods/nginx-pod`: + +```bash +> kubectl describe pods/nginx-pod +Name: nginx-pod +Namespace: default +Priority: 0 +Service Account: default +Node: minikube/192.168.49.2 +Start Time: Mon, 05 Aug 2024 12:07:28 +0300 +Labels: +Annotations: +Status: Running +IP: 10.244.0.45 +IPs: + IP: 10.244.0.45 +Containers: + nginx-container: + Container ID: docker://7b219a363f96823719c9f68f0e0e5106007808c6d4b840d1521ab1383606e99b + Image: nginx:1.21 + Image ID: docker-pullable://nginx@sha256:2bcabc23b45489fb0885d69a06ba1d648aeda973fae7bb981bafbb884165e514 + Port: 80/TCP + Host Port: 0/TCP + State: Running + Started: Mon, 05 Aug 2024 12:07:39 +0300 + Ready: True + Restart Count: 0 + Environment: + Mounts: + /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-kwl7s (ro) +Conditions: + Type Status + PodReadyToStartContainers True + Initialized True + Ready True + ContainersReady True + PodScheduled True +Volumes: + kube-api-access-kwl7s: + Type: Projected (a volume that contains injected data from multiple sources) + TokenExpirationSeconds: 3607 + ConfigMapName: kube-root-ca.crt + ConfigMapOptional: + DownwardAPI: true +QoS Class: BestEffort +Node-Selectors: +Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s + node.kubernetes.io/unreachable:NoExecute op=Exists for 300s +Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal Scheduled 25m default-scheduler Successfully assigned default/nginx-pod to minikube + Normal Pulling 25m kubelet Pulling image "nginx:1.21" + Normal Pulled 25m kubelet Successfully pulled image "nginx:1.21" in 9.687s (9.687s including waiting). Image size: 141526528 bytes. + Normal Created 25m kubelet Created container nginx-container + Normal Started 25m kubelet Started container nginx-container +``` + +A lot of information, I know, but bare with me, we can digest most of it, but we don't even need to. +The `describe` function, though, lets us see exactly why stuff went wrong, went it did, well that's what it's mostly used for, or making sure nothing did, in fact, went wrong, so we can go in search of the real culprit that is giving us headaches. + +What is of most interest are the next things: +- containers' ports +- containers' ready state +- conditions +- events + +If we know these things, we can see pretty quick (at least for our use cases) if the Pod is set up properly. While most of the data is pretty self explanatory, emphasis should be put on the `Events` section, which gives us a detailed trace of each step that happened. If a problem did happen, you'd be pretty sure it is found here. + +## Explanation of the [Pod Spec](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/): + +1. apiVersion: v1 (hardcoded) +1. kind: Pod (type of resource) +1. metadata: [ObjectMeta](./object-meta.md) +1. spec: [PodSpec](./pod/pod-spec.md) +1. status: [PodStatus](./pod/pod-status.md) + +## Direct Pod Access + +Great, we've deployed our first resource, a Pod! But what can we do with it? Can we access it? Well, usually, you'd want to put it behind a Service (so that it can be accessed from a hostname), that would also be behind an Ingress (so that outside traffic can enter the cluster). + +Since we haven't done any of those, we'll create a direct tunnel to the Pod: + +```bash +> kubectl port-forward nginx-pod 8000:80 +Forwarding from 127.0.0.1:8000 -> 80 +Forwarding from [::1]:8000 -> 80 +``` + +With this simple command (don't close the terminal!!!), our machine's port `8000` is made so it proxies traffic to the port `80` of our container + +:::warn + +If you are using WSL2, the things aren't that simple. WSL2 has a different network interface than Windows, which means you need to start your browser from WSL2 (usually install it in WSL2 again, cause it's basically another operating system) or forward traffic from Windows to WSL2. + +::: + +Now to test it and make sure it works, we can do a simple `curl http://localhost:8000` command in the terminal: + +```bash +> curl http://localhost:8000 + + + +Welcome to nginx! + + + +

Welcome to nginx!

+

If you see this page, the nginx web server is successfully installed and +working. Further configuration is required.

+ +

For online documentation and support please refer to +nginx.org.
+Commercial support is available at +nginx.com.

+ +

Thank you for using nginx.

+ + +``` + +And just like that we got to have our first Pod, create a tunnel to it and see that it works! + + +## Exercises: + +1. Write a YAML file named `multi-container-pod.yaml` that defines a Pod having 2 containers: a container named `nginx-container`, but on port `3000`, that is the same as the one provided in the example, and another container named `busybox-container` that uses the `busybox` image and that provides it the next command: `/bin/sh -c echo BusyBox Hello! && sleep 3600' + + :::tip + + It is usually recommended to split commands into multiple parts as follows: first being the exectuable run (in our case `/bin/sh`) and aftewards each argument by itself (`-c`, `echo BusyBox Hello! && sleep 3600`). + + So in the end it looks like: `['/bin/sh', '-c', 'echo BusyBox Hello! && sleep 3600']` when you pass it to the container + + ::: + + Create the resource using `kubectl apply`, create a tunnel to send a request and make sure it works when you request the webpage, and also check the logs of the Pod using the `kubectl logs` command + +1. Write a YAML file named `resource-limited-pod.yaml` to define a pod with one container, `resource-limited-container`, using the `busybox` image, the `['/bin/sh', '-c', 'while true; do echo Hello Kubernetes!; sleep 5; done']` command and with the next resources: + - Resource requests: + - CPU: `100m` + - Memory: `64Mi` + - Resource limits: + - CPU: `200m` + - Memory: `128Mi` + + Create the Pod and monitor its usage using the `kubectl top` command + + Try running a resource-intensive command `yes > /dev/null` and observe the behavior of the Pod under resource limits + + :::tip + + When using minikube, make sure you enable the `metrics-server`: `> minikube addons enable metrics-server` + + ::: + + :::tip + + To run commands inside Pods, you can make use of the `kubectl exec` command as follows: + + ```bash + > kubectl exec -it __POD_NAME__ -- /bin/sh -c "echo Hello" + ``` + + ::: \ No newline at end of file diff --git a/docs/cloud_operations/kubernetes/resources/replicasets.md b/docs/cloud_operations/kubernetes/resources/replicasets.md new file mode 100644 index 0000000..9fca9b9 --- /dev/null +++ b/docs/cloud_operations/kubernetes/resources/replicasets.md @@ -0,0 +1,112 @@ +--- +title: ReplicaSets +description: '' +sidebar_position: 6 +--- + +# [ReplicaSets](https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/) + +## Goals +1. **Understand Kubernetes ReplicaSets**: + - Learn what a ReplicaSet is and its role in the Kubernetes architecture. +1. **Advantages of Using ReplicaSets vs. Simple Pods** + - Figure out why you should be almost always be using a ReplicaSet in production instead of a simple Pod. +1. **Basic Example(s)**: + - Provide (a) basic example(s) of ReplicaSet resources. + - Show how to define a ReplicaSet using YAML. +1. **ReplicaSet Spec Explanation**: + - Explain the components of the ReplicaSet specification using the example(s) above. +1. **Exercise**: + - Hands-on activity to create a simple ReplicaSet. + +## Understanding Kubernetes ReplicaSets + +A **ReplicaSet** in Kubernetes is a controller that ensures a specified number of pod replicas are running at any given time. If a pod goes down, the ReplicaSet will automatically create a new one to maintain the desired number of replicas. + +## Advantages of Using ReplicaSets vs. Simple Pods + +1. **Automatic Scaling**: + - ReplicaSets automatically create new Pods to replace any that fail, ensuring the desired number of Pods are always running. + +2. **Declarative Management**: + - You can define the desired state (e.g., number of replicas) in a YAML file, and Kubernetes maintains that state automatically. + +3. **Rolling Updates**: + - ReplicaSets, when used with Deployments, allow you to update your application with zero downtime by gradually replacing old Pods with new ones. + +4. **Consistency and Reliability**: + - ReplicaSets ensure that your application consistently has the necessary resources to handle its workload by maintaining a fixed number of replicas. + +5. **Label Selection**: + - ReplicaSets use labels to manage Pods, allowing you to adjust which Pods are managed by the ReplicaSet through label changes. + +6. **Simplified Management**: + - Instead of managing individual Pods, ReplicaSets provide a single point of control for a group of Pods, making operations like scaling and updates easier. + +## Basic ReplicaSet Example + +### Simple ReplicaSet + +Here is a basic example of a Kubernetes ReplicaSet specification in YAML: + +```yaml +apiVersion: apps/v1 +kind: ReplicaSet +metadata: + name: example-replicaset +spec: + replicas: 3 + selector: + matchLabels: + app: example-app + template: + metadata: + labels: + app: example-app + spec: + containers: + - name: nginx + image: nginx:1.21.6 + ports: + - containerPort: 80 +``` + +This ReplicaSet ensures that three replicas of the `nginx` container are running at all times. + +Save this to a file `replicaset.yaml` and create the resource using `kubectl apply -f replicaset.yaml`: + +```sh +> kubectl apply -f replicaset.yaml +replicaset.apps/example-replicaset created +``` + +## ReplicaSet Spec Explanation + +1. **apiVersion**: apps/v1 (API group and version) +1. **kind**: ReplicaSet (type of the resource) +1. **metadata**: [ObjectMeta](./object-meta.md) +1. **spec**: [ReplicaSetSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#replicasetspec-v1-apps) + - **replicas**: The desired number of pod replicas. + - **selector**: The label selector used to identify the pods managed by the ReplicaSet. + - **template**: The pod template that defines the pods to be created. + +## Exercises + +### Exercise 1: Create a Simple ReplicaSet + +**Objective**: Deploy a ReplicaSet that ensures a specific number of pods are running. + +**Task**: +- Define a ReplicaSet that runs three replicas of an `nginx` container. +- Verify that the desired number of replicas are running. +- Test scaling by increasing or decreasing the number of replicas in the ReplicaSet definition. + +:::tip + +If you want to scale the ReplicaSet, you can edit the `replicas` field in the YAML file and reapply it or use the following command: + +```sh +kubectl scale replicaset example-replicaset --replicas=5 +``` + +::: diff --git a/docs/cloud_operations/kubernetes/resources/services.md b/docs/cloud_operations/kubernetes/resources/services.md new file mode 100644 index 0000000..1dd9563 --- /dev/null +++ b/docs/cloud_operations/kubernetes/resources/services.md @@ -0,0 +1,164 @@ +--- +title: Services +description: '' +sidebar_position: 4 +--- +# [Services](https://kubernetes.io/docs/concepts/services-networking/service/) + +## Goals +1. **Understand Kubernetes Services**: + - Learn what a Service is and its role in the Kubernetes architecture. +1. **Basic Example(s)**: + - Provide (a) basic example(s) of Services. + - Show how to define a Service using YAML. +1. **Service Spec Explanation**: + - Explain the components of the Service specification using the example(s) above. +1. **Service Types**: + - Describe different types of Services and their use cases (ClusterIP, NodePort, LoadBalancer, ExternalName). +1. **Exercise**: + - Hands-on activity to create a simple Service. + +## Understanding Kubernetes Services + +A **Service** in Kubernetes is an abstraction that defines a logical set of pods and a policy by which to access them. Services enable networking and connectivity between different parts of a Kubernetes application or with external services. + +## Basic Service Example + + +### 1. ClusterIP Service +Here is a basic example of a Kubernetes Service specification in YAML: + +```yaml +apiVersion: v1 +kind: Service +metadata: + name: nginx-service +spec: + selector: + app: nginx + ports: + - protocol: TCP + port: 80 + targetPort: 80 + type: ClusterIP +``` + +This Service provides a stable IP and DNS name to access the set of `nginx` pods. + +Save this to a file `service.yaml` and create the resource using `kubectl apply -f service.yaml`: + +```bash +> kubectl apply -f service.yaml +service/nginx-service created +``` + +### NodePort Service + +First we create the server Pod `service-simple-pod.yaml` + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: nginx-pod + labels: + app: nginx +spec: + containers: + - name: nginx-container + image: nginx:latest + ports: + - containerPort: 80 +``` + +We then create the corresponding service for the pod `service-simple.yaml` + +```yaml +apiVersion: v1 +kind: Service +metadata: + name: nginx-nodeport +spec: + selector: + app: nginx + ports: + - protocol: TCP + port: 80 + targetPort: 80 + nodePort: 30001 + type: NodePort +``` + +We proceed to create both: + +```bash +> kubectl apply -f service-simple-pod.yaml +> kubectl apply -f service-simple.yaml +``` + +We then find the Node's IP: + +```bash +> minikube ip +``` + +And then we try to curl from the terminal: + +```bash +> curl http://$(minikube ip):30001 + + + +Welcome to nginx! + + + +

Welcome to nginx!

+

If you see this page, the nginx web server is successfully installed and +working. Further configuration is required.

+ +

For online documentation and support please refer to +nginx.org.
+Commercial support is available at +nginx.com.

+ +

Thank you for using nginx.

+ + +``` + +## Service Spec Explanation + +1. apiVersion: v1 (hardcoded) +1. kind: Service (type of the resource) +1. metadata: [ObjectMeta](./object-meta.md) +1. spec: [ServiceSpec](./service/service-spec.md) +1. status: [ServiceStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#loadbalancerstatus-v1-core) + +## Service Types + +- **ClusterIP**: Exposes the Service on a cluster-internal IP. This is the default type. +- **NodePort**: Exposes the Service on each Node's IP at a static port. (We'll be using this for examples) +- **LoadBalancer**: Exposes the Service externally using a cloud provider's load balancer. +- **ExternalName**: Maps a Service to an external DNS name. + +## Exercises + +### Exercise 1: Expose an Application Internally Using a ClusterIP Service + +**Objective**: Deploy an application and expose it within the cluster using a ClusterIP Service. + +**Task**: +- Deploy a pod running a simple HTTP server (e.g., `nginx` or `httpd`). +- Create a ClusterIP Service to expose this HTTP server within the Kubernetes cluster. +- Verify that the service is accessible from other pods in the cluster. + +:::tip + +You can deploy a Pod running a simple linux image (`ubuntu:22.04`). Shelling into it was shown previously on the [`Pods`](./pods.md) page, do you remember how to do it without looking at it? + +::: \ No newline at end of file diff --git a/docs/cloud_operations/kubernetes/resources/statefulsets.md b/docs/cloud_operations/kubernetes/resources/statefulsets.md new file mode 100644 index 0000000..ba4aa5b --- /dev/null +++ b/docs/cloud_operations/kubernetes/resources/statefulsets.md @@ -0,0 +1,110 @@ +--- +title: StatefulSets +description: '' +sidebar_position: 8 +--- + +# [StatefulSets](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/) + +## Goals + +1. **Understand Kubernetes StatefulSets**: + - Learn what a StatefulSet is and its role in Kubernetes for managing stateful applications. +1. **Basic Example(s)**: + - Provide (a) basic example(s) of StatefulSet resources. + - Show how to define a StatefulSet using YAML. +1. **StatefulSet Spec Explanation**: + - Explain the components of the StatefulSet specification using the example(s) above. +1. **StatefulSets vs. ReplicaSets**: + - Describe the advantages and differences between StatefulSets and ReplicaSets. +1. **Exercise**: + - Hands-on activity to create a simple StatefulSet. + +## Understanding Kubernetes StatefulSets + +A **StatefulSet** in Kubernetes is a controller that manages the deployment and scaling of a set of Pods, and provides guarantees about the ordering and uniqueness of these Pods. StatefulSets are useful for applications that require stable network identifiers, stable storage, and ordered deployment and scaling. + +## Basic StatefulSet Example + +### Simple StatefulSet + +Here is a basic example of a Kubernetes StatefulSet specification in YAML: + +```yaml +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: example-statefulset +spec: + serviceName: "example" + replicas: 3 + selector: + matchLabels: + app: example + template: + metadata: + labels: + app: example + spec: + containers: + - name: example-container + image: nginx + ports: + - containerPort: 80 + volumeClaimTemplates: + - metadata: + name: example-storage + spec: + accessModes: ["ReadWriteOnce"] + resources: + requests: + storage: 1Gi +``` + +This StatefulSet deploys three replicas of an nginx container, each with a unique identity and associated persistent storage. + +Save this to a file `statefulset.yaml` and create the resource using: + +```sh +> kubectl apply -f statefulset.yaml +statefulset.apps/example-statefulset created +``` + +## StatefulSet Spec Explanation + +1. **apiVersion**: apps/v1 (API group and version) +1. **kind**: StatefulSet (type of the resource) +1. **metadata**: [ObjectMeta](./object-meta.md) +1. **spec**: [StatefulSetSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#statefulsetspec-v1-apps) +1. **status**: [StatefulSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#statefulsetstatus-v1-apps) + +## StatefulSets vs. ReplicaSets + +- **StatefulSets**: + - Provide stable, unique network identifiers for Pods. + - Ensure that Pods are started and stopped in a specific order. + - Support stable storage using PersistentVolumeClaims. + - Ideal for stateful applications requiring consistent identities and storage. + +- **ReplicaSets**: + - Focus on maintaining a stable set of replicas for a given Pod specification. + - Do not provide stable network identities or persistent storage. + - Suitable for stateless applications where Pods can be replaced or rescheduled without losing data. + +## Exercises + +### Exercise 1: Create a Simple StatefulSet + +**Objective**: Deploy an application using a StatefulSet with persistent storage. + +**Task**: +- Define a StatefulSet with a suitable number of replicas and a container image. +- Create a Service to manage network access to the StatefulSet. +- Use volumeClaimTemplates to request persistent storage for each Pod. +- Verify that each Pod has a unique network identity and persistent storage. + +:::tip + +StatefulSets require a Headless Service to manage network identities. Ensure you define the `serviceName` in your StatefulSet spec and create a corresponding Headless Service. + +::: diff --git a/docs/cloud_operations/overview/_category_.json b/docs/cloud_operations/overview/_category_.json new file mode 100644 index 0000000..8070419 --- /dev/null +++ b/docs/cloud_operations/overview/_category_.json @@ -0,0 +1,9 @@ +{ + "label": "Overview", + "position": 1, + "link": { + "type": "generated-index", + "description": "Overview of Docker and Kubernetes" + } + } + \ No newline at end of file diff --git a/docs/cloud_operations/overview/container-basics.md b/docs/cloud_operations/overview/container-basics.md new file mode 100644 index 0000000..e438107 --- /dev/null +++ b/docs/cloud_operations/overview/container-basics.md @@ -0,0 +1,73 @@ +--- +id: container-basics +title: Container Basics +description: General Overview of the Course +slug: /overview/container-basics +sidebar_position: 2 +--- + +# Container Basics + +## Containerization in a nutshell + +To understand containerization let's first take a look at what *virtualization* is. In short, if you +ever wanted to run Linux inside your Windows computer, or Mac OS inside Linux, or any other +combination - you can through the use of **Virtual Machines**! As their name implies, you can fully +simulate any operating system that is isolated from your own PC's OS. Usually, a tool like +[VirtualBox](https://www.virtualbox.org/), or +[KVM](https://www.redhat.com/en/topics/virtualization/what-is-KVM) can run multiple virtual machines +at once, being limited only by how powerful your hardware is. + +
![img](./virtualization.drawio.png)
+ +Virtual machines are very useful if you want to accurately simulate an entire machine. This is often +useful in cybersecurity where you want to analyze some malware to see its behaviour, or in education +where you want all students to have the same setup. However, if all you want is to have a +**consistent** environment in which you can run your application, simulating an entire operating +system could be a bit overkill. This is where **containers** come in. + +**Containers**, compared to VMs, are friendlier with the host operating system, sharing resources in +a more streamlined manner. They don't require you to run an entire operating system, just the +underlying libraries necessary for your application to run, and your application code. The +industry-standard application to manage containers is [Docker](https://www.docker.com/). + +
![img](./containerization.drawio.png)
+ +Another neat advantage of containers, due to their lightweight nature they start extremely fast. +This is extremely helpful when managing widely popular applications due to their ability to create +more containers to respond to a sudden surge in new users. + +## Why would someone care about containerization? + +Imagine that you have built your billion-dollar application - the software which will revolutionize +the world as we know it 💰! Now, all you need to do is to put it on a server so it can be accessed +by everybody. You install all of your dependencies, `node`, `python`, etc., and your program +crashes. You tracked down the culprit and there was a slight change in `node` that introduced a +small bug. No worries, you change the version to one that works before. + +Then, after some weeks, you notice that your website keeps going down. After some investigation, you +notice that there is a small bug in a mini-game you introduced as an easter egg. That small bug +crashes the mini-game, but more importantly, it takes down the whole application with it. You fix it +and move on. + +Your website is now getting thousands of users, and your database cannot handle that many users at +once. Not to worry, you just rent out a bigger computer. Then, your app goes popular in America, and +Australia and now you are getting complaints that your app is slow due to the massive delay between +your server in Europe and their location. Now you have to rent out multiple servers, in multiple +locations, but then you forgot that you had to specify a `node` version, and you have to shut down +your service to re-engineer everything. + +All of these headaches could have been avoided by using containers. They offer an **isolated and +reproducible environment**. This means that you have to specify your dependencies once, and each +time a new container for your application is created it is guaranteed to work. More so, you can +split up your application into multiple containers - for example, a container handles the database, +one handles the user interface, and another handles that buggy mini-game. If one fails, the others +will continue running. And, after you learn about **Kubernetes**, you will also understand how to +start multiple instances of the same application to better handle bigger workloads. + +However, as a word of caution, don't start creating your application with the idea that it will have +millions of users on the first day. Even some popular applications with millions of users [used +Google Sheets as a placeholder for their +database](https://youtu.be/zcu9EaLP-aM?si=Ach8bAEg3xnR3Zsa&t=41) and got away with it. It's best to +use a few containers at the start and design your software in such a way that if it does go popular +you don't have to work too hard. diff --git a/docs/cloud_operations/overview/containerization.drawio.png b/docs/cloud_operations/overview/containerization.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..77278af2fa8f7d5840d2a317d5072fc0a45d2344 GIT binary patch literal 23639 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 MMMt?t(Kh=30PLVawg3PC literal 0 HcmV?d00001 diff --git a/docs/cloud_operations/overview/introduction.md b/docs/cloud_operations/overview/introduction.md new file mode 100644 index 0000000..071d887 --- /dev/null +++ b/docs/cloud_operations/overview/introduction.md @@ -0,0 +1,64 @@ +--- +id: overview-introduction +title: Introduction +description: General Overview of the Course +slug: /overview/introduction +sidebar_position: 1 +--- + +# Introduction + +## Course Overview + +### Course tutors + +- Paris Cristian-Tănase (Cristi) +- Popescu Adrian (Adi) +- Cosma George (George) + +### Course structure + +1. First day: local setup, importance of containerization and orchestration, container basics, + containers vs virtual machines +1. Docker + docker compose +1. Kubernetes +1. Deployment + NGINX + +## What is this course about? + +The goal of this course is to teach you about **containers** and **orchestration with Kubernetes**. +After this course, you will be able to deploy an application into production that can serve users +worldwide with minimal latency and headache for you, and the development team (which may include you +😎). + +
+ +In brief, containerization is packaging an application and its dependencies into a standardized +unit, known as a container. This container can then be easily moved between environments, ensuring +consistency and reliability across different systems. + +We care about containerization because it allows developers to build, test, and deploy applications +more efficiently. By isolating applications within containers, we can avoid conflicts between +dependencies and ensure that the application runs consistently regardless of the underlying +infrastructure. + +Orchestration is managing and coordinating multiple containers in a distributed environment. This +includes tasks such as scaling containers up or down, load balancing traffic between containers, +and ensuring high availability of the application. Kubernetes is a popular orchestration tool that +helps automate these tasks, making it easier to manage containerized applications at scale. + +By the end of this course, you will have the skills and knowledge needed to deploy and manage +containerized applications in a production environment. + +
+ +## Setup instruction for required tools + +You need to install the following tools to solve the workshop: + +1. Docker and Docker Compose (see the [manual](https://docs.docker.com/manuals/)) +1. Kubectl (see the [manual](https://kubernetes.io/docs/tasks/tools/)) +1. Minikube (see the + [manual](https://minikube.sigs.k8s.io/docs/start/?arch=%2Flinux%2Fx86-64%2Fstable%2Fbinary+download)) +1. WSL2 (if you have Windows) (follow the [install + instructions](https://learn.microsoft.com/en-us/windows/wsl/install)) \ No newline at end of file diff --git a/docs/cloud_operations/overview/virtualization.drawio.png b/docs/cloud_operations/overview/virtualization.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..70e79a5ac5cd2db96ebe692b92ea44116b1a0ab6 GIT binary patch literal 29919 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 literal 0 HcmV?d00001 diff --git a/static/img/docs/kubernetes/1.svg b/static/img/docs/kubernetes/1.svg new file mode 100644 index 0000000..5e7289c --- /dev/null +++ b/static/img/docs/kubernetes/1.svg @@ -0,0 +1,412 @@ + + + Kubernetes components + + + + image/svg+xml + + Kubernetes components + + + Cloud Native Computing Foundation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + k-proxy + + + + + + + + + + kubelet + + + + + + + + + + + + sched + + + + + + + + + + sched + + + + + + + + + + sched + + + + + Control Plane + Node + + + + + + + + etcd + + + + + Kubernetes cluster + + + + + + + + api + + + + + + + + + + api + + + + + + + + + + api + + + + + + + + + + + + + c-c-m + + + + + + + + + + c-c-m + + + + + + + + + + c-c-m + + + + + + + + + + + + + c-m + + + + + + + + + + c-m + + + + + + + + + + c-m + + + + + Node + Node + + + + + + + + + + + + + + + + + + + + k-proxy + + + + + + + + + + kubelet + + + + + + + + + + kubelet + + + + + + + + + + k-proxy + + + + + + + + + + + + + + + + + + + + Control plane + Scheduler + + + + + + + + sched + + + + + Cloud controllermanager(optional) + + + + + + + + c-c-m + + + + + Controllermanager + + + + + + + + c-m + + + + + kubelet + + + + + + + + kubelet + + + + + kube-proxy + + + + + + + + k-proxy + + + + + + (persistence store) + etcd + + + + + + + + + etcd + + + + + + Node + + API server + + + + + + + + api + + + + + + + diff --git a/static/img/docs/kubernetes/2.png b/static/img/docs/kubernetes/2.png new file mode 100644 index 0000000000000000000000000000000000000000..db4f6e636bedb386f1efd54d113939e90a18c5a3 GIT binary patch literal 68210 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 H^SUTT0j{=AT^ng|3WXV7p9Z%I)#gfp84xO& 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 DRq@QS literal 0 HcmV?d00001 From f046d5ff09f064740100e125be57daec3ba8182d Mon Sep 17 00:00:00 2001 From: cristian-paris Date: Sun, 3 Aug 2025 14:16:06 +0300 Subject: [PATCH 2/3] Add back object meta --- .../kubernetes/resources/object-meta.md | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 docs/cloud_operations/kubernetes/resources/object-meta.md diff --git a/docs/cloud_operations/kubernetes/resources/object-meta.md b/docs/cloud_operations/kubernetes/resources/object-meta.md new file mode 100644 index 0000000..1b99bee --- /dev/null +++ b/docs/cloud_operations/kubernetes/resources/object-meta.md @@ -0,0 +1,34 @@ +--- +title: ObjectMeta +description: '' +unlisted: true +--- +# [ObjectMeta](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-meta/) + +The `ObjectMeta` object is used for metadata. It includes fields that provide context and identity for resources. Basically, it allows for identification of resources. + +Some of the most important attributes of the `ObjectMeta` object are: + +1. **name**: + - type: `string` + - description: the name of the object (unique within the namespace) + +1. **namespace**: + - type: `string` + - description: the namespace in which the object resides + +1. **labels** + - type: `map` + - description: key-value pairs that can be used to organize and select objects - often used for grouping, searching and managing sets of objects (i.e pods, services, pvs belonging to a specific api version) + +1. **annotations**: + - type: `map` + - description: key-value pairs used to store arbitrary metadata - can be used to attach non-identifying metadata to objects (i.e description of what a Pod does, storing external IDs of a resource, storing configuration hints - but also [Ingress annotations](https://kubernetes.io/docs/concepts/services-networking/ingress/#the-ingress-resource)) + +1. **uid**: + - type: `string` + - description: unique identifier, set by Kubernetes (unique across the cluster) + +1. **creationTimestamp**: + - type: `string` + - decsription: time at which the object was created, set by Kubernetes \ No newline at end of file From e2765a0bfd545381f0dbe924ff64ca965361087c Mon Sep 17 00:00:00 2001 From: cristian-paris Date: Sun, 3 Aug 2025 14:21:38 +0300 Subject: [PATCH 3/3] Add unlisted pages --- .../kubernetes/resources/condition.md | 18 +++++ .../kubernetes/resources/pod/_category_.json | 11 +++ .../kubernetes/resources/pod/container.md | 49 ++++++++++++++ .../kubernetes/resources/pod/pod-spec.md | 12 ++++ .../kubernetes/resources/pod/pod-status.md | 67 +++++++++++++++++++ .../kubernetes/resources/pod/probe.md | 18 +++++ .../kubernetes/resources/pod/volume.md | 18 +++++ .../resources/service/_category_.json | 11 +++ .../resources/service/service-port.md | 28 ++++++++ .../resources/service/service-spec.md | 17 +++++ .../resources/service/service-status.md | 12 ++++ 11 files changed, 261 insertions(+) create mode 100644 docs/cloud_operations/kubernetes/resources/condition.md create mode 100644 docs/cloud_operations/kubernetes/resources/pod/_category_.json create mode 100644 docs/cloud_operations/kubernetes/resources/pod/container.md create mode 100644 docs/cloud_operations/kubernetes/resources/pod/pod-spec.md create mode 100644 docs/cloud_operations/kubernetes/resources/pod/pod-status.md create mode 100644 docs/cloud_operations/kubernetes/resources/pod/probe.md create mode 100644 docs/cloud_operations/kubernetes/resources/pod/volume.md create mode 100644 docs/cloud_operations/kubernetes/resources/service/_category_.json create mode 100644 docs/cloud_operations/kubernetes/resources/service/service-port.md create mode 100644 docs/cloud_operations/kubernetes/resources/service/service-spec.md create mode 100644 docs/cloud_operations/kubernetes/resources/service/service-status.md diff --git a/docs/cloud_operations/kubernetes/resources/condition.md b/docs/cloud_operations/kubernetes/resources/condition.md new file mode 100644 index 0000000..82fc9ab --- /dev/null +++ b/docs/cloud_operations/kubernetes/resources/condition.md @@ -0,0 +1,18 @@ +--- +title: Condition +description: '' +unlisted: true +--- + +# [Condition](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-meta/) + +Volume represents a named volume in a pod that may be accessed by any container in the Pod. + +- name: `string` - required +- persistentVolumeClaim: + - claimName: `string` - required + - readOnly: `boolean` +- configMap: + - name: `string` +- secret: + - secretName: `string` \ No newline at end of file diff --git a/docs/cloud_operations/kubernetes/resources/pod/_category_.json b/docs/cloud_operations/kubernetes/resources/pod/_category_.json new file mode 100644 index 0000000..65db197 --- /dev/null +++ b/docs/cloud_operations/kubernetes/resources/pod/_category_.json @@ -0,0 +1,11 @@ +{ + "label": "Pods", + "position": 2, + "link": { + "type": "generated-index", + "title": "Pods" + }, + "customProps": { + "unlisted": true + } +} \ No newline at end of file diff --git a/docs/cloud_operations/kubernetes/resources/pod/container.md b/docs/cloud_operations/kubernetes/resources/pod/container.md new file mode 100644 index 0000000..65a96d5 --- /dev/null +++ b/docs/cloud_operations/kubernetes/resources/pod/container.md @@ -0,0 +1,49 @@ +--- +title: Container +unlisted: true +description: '' +--- + +# [Container](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#Container) + +- name: `string` - required +- image: `string` +- imagePullPolicy: `"Always" | "Never" | "IfNotPresent"`; Default: `"Always"` if :latest tag is specified, or "IfNotPresent" otherwise. (Can't be updated) +- command: `Array` (entrypoint) +- args: `Array` (entrypoint) +- workingDir: `string` (entrypoint) +- ports: `Array` + - containerPort: `int32` - required (port to expose on the Pod's IP address) + - hostIP: `string` (host IP to bind the external port to) + - hostPort: `int32` (port to expose on the host - most containers don't need this) + - name: `string` + - protocol: `"UDP" | "TCP" | "SCTP"`; Default: `"TCP"` +- env: `Array` + - name: `string` - required + - value: `string` + - valueFrom: + - configMapKeyRef: + - key: `string` - required + - name: `string` + - optional: `boolean` + - fieldRef: + - fieldPath: `metadata.name | metadata.namespace | metadata.labels['\'] | metadata.annotations['\'] | spec.nodeName | spec.serviceAccountName | status.hostIP | status.podIP | status.podIPs` - required - `string` + - apiVersion: `string` - Default: `"v1"` +- envFrom: `Array` + - configMapRef: + - name: `string` + - optional: `boolean` + - prefix: `string` +- volumeMounts: `Array` + - mountPath: `string` - required + - name: `string` - required + - mountPropagation: `string` + - readOnly: `boolean` + - subPath: `string` +- resources: `Array` + - claims: `Array` + - name: `string` - required + - limits: `map` + - requests: `map` +- livenessProbe: [`Probe`](./probe.md) +- readinessProbe: [`Probe`](./probe.md) \ No newline at end of file diff --git a/docs/cloud_operations/kubernetes/resources/pod/pod-spec.md b/docs/cloud_operations/kubernetes/resources/pod/pod-spec.md new file mode 100644 index 0000000..c581628 --- /dev/null +++ b/docs/cloud_operations/kubernetes/resources/pod/pod-spec.md @@ -0,0 +1,12 @@ +--- +title: Pod Spec +description: '' +unlisted: true +--- + +# Pod Spec + +Here's the most important attributes: + +1. containers - [`Array`](./container.md) +1. volumes - [`Array`](./volume.md) \ No newline at end of file diff --git a/docs/cloud_operations/kubernetes/resources/pod/pod-status.md b/docs/cloud_operations/kubernetes/resources/pod/pod-status.md new file mode 100644 index 0000000..818a5ac --- /dev/null +++ b/docs/cloud_operations/kubernetes/resources/pod/pod-status.md @@ -0,0 +1,67 @@ +--- +title: PodStatus +description: '' +unlisted: true +--- + +# [PodStatus](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#PodStatus) + +The PodStatus represents the information about the status that a Pod is in. Status may TRAIL the actual state of a system, especially if the node that hosts the pod cannot contact the control plane. + +Here, we remind the most important: + +- phase: + - type: `string` - `"Pending" | "Running" | "Succeeded" | "Failed" | "Unknown"` + - description: summary of the pod lifecycle phase: + - `Pending`: pod has been accepted by kubernetes, but one or more containers have not been started + - `Running`: pod has been placed on a node, all containers have been created and at least one container is running, starting or restarting + - `Succeeded`: all containers in the pod have been terminated successfully and will not be restarted + :::info + + While our main focus is on applications (well, containers and pods) that run indefinitely, there can be pods that run once + + ::: + - `Failed`: all containers in a pod have terminated, and at least one container terminated in a failure + :::warning + + The `Failed` status appears, most of the time, when a pod has been restarted too frequently and has failed too frequently, as well + + ::: + - `Unknown`: the state of the pod could not be obtained. This usually happens because there is trouble communicated with the node where the pod should be running + +- conditions: + - type: [`Array`](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/) + - description: list of current observed conditions of the pod: + - `Initialized`: all init containers have started successfully + - `Ready`: the pod is able to serve requests and all containers are ready + - `ContainersReady`: all containers in the pod are ready + - `PodScheduled`: the pod has been scheduled to a node + +- hostIP: + - type: `string` + - description: the IP address of the node where the pod is running + +- podIP: + - type: `string` + - description: the IP address assigned to the pod + +- startTime: + - type: `string (timestamp)` + - description: the time when the pod was acknowledged by the Kubernetes system + +- containerStatuses: + - type: [`Array`](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/) + - description: detailed information about the status of each container in the pod, including: + - `name`: the name of the container + - `state`: the current state of the container (`waiting`, `running`, or `terminated`) + - `lastState`: details about the last terminated state of the container, if applicable + - `ready`: a boolean indicating if the container is ready to serve requests + - `restartCount`: the number of times the container has been restarted + +- message: + - type: `string` + - description: a human-readable message indicating details about why the pod is in its current condition + +- reason: + - type: `string` + - description: a brief CamelCase message indicating why the pod is in its current state diff --git a/docs/cloud_operations/kubernetes/resources/pod/probe.md b/docs/cloud_operations/kubernetes/resources/pod/probe.md new file mode 100644 index 0000000..45d9185 --- /dev/null +++ b/docs/cloud_operations/kubernetes/resources/pod/probe.md @@ -0,0 +1,18 @@ +--- +title: Probe +description: '' +unlisted: true +--- + +# [Probe](ttps://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#Probe) + +Probes are used to describe health checks to be performed against a container to determine whether it is alive or ready to receive traffic. + +- exec: + - command: `Array` +- httpGet: + - port: `integer | string` - required + - host: `string` - defaults to Pod IP + - path: `string` + - scheme: `string` - defaults to 'HTTP' +- initialDelaySeconds: `int32` diff --git a/docs/cloud_operations/kubernetes/resources/pod/volume.md b/docs/cloud_operations/kubernetes/resources/pod/volume.md new file mode 100644 index 0000000..3beb325 --- /dev/null +++ b/docs/cloud_operations/kubernetes/resources/pod/volume.md @@ -0,0 +1,18 @@ +--- +title: Volume +description: '' +unlisted: true +--- + +# [Volume](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-meta/) + +Volume represents a named volume in a pod that may be accessed by any container in the Pod. + +- name: `string` - required +- persistentVolumeClaim: + - claimName: `string` - required + - readOnly: `boolean` +- configMap: + - name: `string` +- secret: + - secretName: `string` \ No newline at end of file diff --git a/docs/cloud_operations/kubernetes/resources/service/_category_.json b/docs/cloud_operations/kubernetes/resources/service/_category_.json new file mode 100644 index 0000000..3c864f5 --- /dev/null +++ b/docs/cloud_operations/kubernetes/resources/service/_category_.json @@ -0,0 +1,11 @@ +{ + "label": "Services", + "position": 4, + "link": { + "type": "generated-index", + "title": "Services" + }, + "customProps": { + "unlisted": true + } +} \ No newline at end of file diff --git a/docs/cloud_operations/kubernetes/resources/service/service-port.md b/docs/cloud_operations/kubernetes/resources/service/service-port.md new file mode 100644 index 0000000..9861b32 --- /dev/null +++ b/docs/cloud_operations/kubernetes/resources/service/service-port.md @@ -0,0 +1,28 @@ +--- +title: Service Port +description: "" +unlisted: true +--- + +# [Service Port](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#serviceport-v1-core) + +Here's the most important attributes: + +1. name - `string` + - The name of this port within the service, must be a `DNS_LABEL`. All ports within a `ServiceSpec` must have unique names. + - Optional if only one `ServicePort` is defined. + +1. nodePort - `integer` + - The port on each node on which this service is exposed when `type` is `NodePort` or `LoadBalancer`. Usually assigned by the system. + - If specified, the value must be in-range and not in use, otherwise the operation will fail. + - If not specified, a port will be allocated if required. + - This field is cleared when updating a Service to no longer need it (e.g., changing `type` from `NodePort` to `ClusterIP`). + +1. port - `integer` + - The port that will be exposed by this service. + +1. targetPort - `integer | string` + - The port number or name to access on the pods targeted by the service. Number must be in the range 1 to 65535. + - Name must be an `IANA_SVC_NAME`. If specified as a string, it will be looked up as a named port in the target Pod's container ports. + - If not specified, the value of the `port` field is used. + - This field is ignored for services with `clusterIP=None`, and should be omitted or set equal to the `port` field. \ No newline at end of file diff --git a/docs/cloud_operations/kubernetes/resources/service/service-spec.md b/docs/cloud_operations/kubernetes/resources/service/service-spec.md new file mode 100644 index 0000000..568b976 --- /dev/null +++ b/docs/cloud_operations/kubernetes/resources/service/service-spec.md @@ -0,0 +1,17 @@ +--- +title: Service Spec +description: "" +unlisted: true +--- + +# [Service Spec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#servicespec-v1-core) + +Here's the most important attributes: + +1. ports - [`Array`](./service-port.md) +1. selector - `Object` + - Route service traffic to pods with label keys and values matching this selector +1. type - [`"ExternalName" | "ClusterIP" | "NodePort" | "LoadBalancer"` - `string`] + - determines how the Service is exposed + - defaults to `ClusterIP` - which allocates a cluster-internal IP address for load-balancing to endpoints + - endpoints are determined by the selector diff --git a/docs/cloud_operations/kubernetes/resources/service/service-status.md b/docs/cloud_operations/kubernetes/resources/service/service-status.md new file mode 100644 index 0000000..4b425b3 --- /dev/null +++ b/docs/cloud_operations/kubernetes/resources/service/service-status.md @@ -0,0 +1,12 @@ +--- +title: Service Status +description: "" +unlisted: true +--- + +# [Service Status](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#servicestatus-v1-core) + +Here's the most important attributes: + +1. conditions - [`Array`](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#condition-v1-meta) +1. loadBalancer - [`LoadBalancerStatus`](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#loadbalancerstatus-v1-core) \ No newline at end of file