This project aims to provide an introduction to Kubernetes, with a specific focus on deepening the knowledge of K3d and K3s using Vagrant. The project is divided into three parts, with each part building on the knowledge gained in the previous section. The three parts of the project are:
- Setting up K3s and Vagrant
- Setting up K3s and three simple applications
- Setting up K3d and Argo CD
- Bonus: Settings up helm3 and Gitlab
This project provides a hands-on approach to learning Kubernetes. By following the guidelines and utilizing the resources provided, users can deepen their understanding of Kubernetes and gain experience with K3d and K3s. The project is designed to provide a comprehensive introduction to Kubernetes and serves as a valuable learning opportunity for those interested in this technology.
-
Part 1: Setting up K3s and Vagrant In this part, we will set up two virtual machines using Vagrant. One machine will be installed in controller mode, and the other will be installed in agent mode. The goal of this section is to become familiar with the process of setting up K3s and Vagrant and to gain a better understanding of how K3s works.
-
Part 2: Setting up K3s and three simple applications In this part, we will set up one virtual machine with K3s in server mode and three web applications. The goal of this section is to become familiar with the process of deploying applications on K3s and to gain a better understanding of how Kubernetes works.
-
Part 3: Setting up K3d and Argo CD In this part, we will set up K3d and Argo CD. K3d is a lightweight Kubernetes distribution that runs inside Docker. Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. The goal of this section is to become familiar with K3d and Argo CD and to gain a better understanding of how Kubernetes can be used in a production environment.
-
Bonus: Installing Helm 3 and GitLab In addition to the main parts of the project, you can also install Helm 3 and GitLab to further immerse yourself in the world of Kubernetes. Helm 3 is a package management tool for Kubernetes that allows you to install and manage applications on Kubernetes clusters. GitLab is an open-source DevOps application that allows you to manage projects, automate CI/CD, and much more. To install Helm 3, you can use the official documentation: https://helm.sh/docs/intro/install/. After installation, you can start using Helm 3 to manage applications in Kubernetes. To install GitLab on Kubernetes, you can use the official Helm chart: https://gitlab.com/gitlab-org/charts/gitlab/. This chart installs all GitLab components, including GitLab Runner, and makes it easy to run GitLab on Kubernetes.
This project provides a comprehensive introduction to Kubernetes and serves as a valuable learning opportunity for those interested in this technology. By following the guidelines and utilizing the resources provided, users can deepen their understanding of Kubernetes and gain experience with K3d and K3s. We hope that this project will help users become more proficient with Kubernetes and that it will serve as a starting point for further exploration of this exciting technology.
To support this project, we provide the following resources:
- Official documentation for Vagrant: https://www.vagrantup.com/docs/
- Official documentation for Kubernetes: https://kubernetes.io/docs/
- Official documentation for K3s: https://rancher.com/docs/k3s/latest/en/
- Official documentation for K3d: https://k3d.io/
- Examples of Vagrantfiles for creating virtual machines: https://github.com/hashicorp/vagrant/tree/master/examples
- Examples of Kubernetes configuration files: https://github.com/kubernetes/examples
- Examples of applications running on Kubernetes: https://github.com/kubernetes/examples/tree/master/staging
- Online course on Kubernetes from Linux Academy: https://linuxacademy.com/course/kubernetes-essentials/
- Free online course on Kubernetes from edX: https://www.edx.org/course/introduction-to-kubernetes
- Article on using Vagrant for Kubernetes development on Habr: https://habr.com/ru/company/flant/blog/331524/
- Official GitLab documentation: https://docs.gitlab.com/
- Official Helm documentation: https://helm.sh/docs/
- Official Kubernetes documentation: https://kubernetes.io/docs/
- Examples of Helm charts: https://artifacthub.io/
- Kubernetes courses on Pluralsight: https://www.pluralsight.com/browse/kubernetes
- Articles and tutorials on Kubernetes on Medium: https://medium.com/tag/kubernetes