KTH / devops-course

Repository of the DevOps course at KTH Royal Institute of Technology DD2482
193 stars 427 forks source link

Executable tutorial: proposal #2529

Closed Lindefor closed 1 month ago

Lindefor commented 1 month ago

Assignment Proposal

Title

Working with Kubernetes and Docker to deploy and scale a web application

Names and KTH ID

Deadline

Category

Description

This tutorial provides a guide to building, containerizing, and deploying a Node.js application using Docker and Kubernetes on a single local system. Participants will start by creating a small Node.js application. They will then learn how to create a Dockerfile to containerize the application and run it locally to verify functionality. The tutorial continues with setting up a local Kubernetes cluster using Minikube. Participants will deploy the Docker container to Kubernetes, expose it via a Service, and scale the application by increasing the number of replicas. Moving on to more advanced features, the tutorial will demonstrate how to implement role-based access control (RBAC) within the Kubernetes environment. This is to show how you can manage permissions and ensure that different users and services have the appropriate level of access to resources. The tutorial will contain how to set up RBAC policies, create roles and role bindings, and assign them to users and service accounts. The tutorial will also use the Kubernetes secrets functionality.

Relevance

This tutorial is relevant to DevOps since it teaches important skills in containerization and orchestration using Docker and Kubernetes. By learning how to build, deploy, and scale applications in a consistent and automated way, tutorial participants will be more prepared to work in complex application environments. Furthermore, Docker is a DevOps tool that everyone should be familiar with, and Kubernetes is required for scaling up a growing application.

javierron commented 1 month ago

@Lindefor Thanks for the proposal.

While the topic is very relevant for the course, this is content that can already be found in a lot of tutorials available on the internet. I recommend adding to the tutorial one or two of Kubernetes' advanced features.

tobiasljunggren97 commented 1 month ago

@Lindefor Thanks for the proposal.

While the topic is very relevant for the course, this is content that can already be found in a lot of tutorials available on the internet. I recommend adding to the tutorial one or two of Kubernetes' advanced features.

@javierron

Alright! We have chosen also to demonstrate how to implement role-based access control (RBAC) within the Kubernetes environment. This is to show how you can manage permissions and ensure that different users and services have the appropriate level of access to resources. The tutorial will contain how to set up RBAC policies, create roles and role bindings, and assign them to users and service accounts. We will also use the Kubernetes secrets functionality.

Would that work?

javierron commented 1 month ago

@Lindefor Sounds good. Update the proposal and I'll merge.

Lindefor commented 1 month ago

@Lindefor Sounds good. Update the proposal and I'll merge.

Done, thank you @javierron !

javierron commented 1 month ago

@Lindefor Thanks a lot! Please update the README as well.

Lindefor commented 1 month ago

Missed that part, done now @javierron

Lindefor commented 1 month ago

Please have a look at the updated proposal when possible @javierron