
This video will give you an overview about the course.
Kubernetes is difficult to set up and operate. Minikube offers an easy solution for setting up a local Kubernetes environment for testing and developing.
This video shows the very first steps on deploying a microservice on Kubernetes and also covers some required core principles.
Kubernetes Pods are neither resilient nor scalable. This video introduces high-level controllers like ReplicaSets that offer solutions for this.
Practical implementation of concepts already shown in 1.4; create resilient and scalable deployments using ReplicaSets.
Kubernetes Pods do not provide a stable network identity that other applications could connect to. Service objects offer a solution to that problem.
Kubernetes service only provides simple TCP/UDP forwarding. Ingress controllers offer more sophisticated HTTP request routing features.
ReplicaSets provide scalable and resilient application deployments; but they do not provide a robust mechanism for providing updates. This problem is solved by Deployment objects.
Up until now, we have only learned how to deploy stateless applications; this section introduces the concept of stateful applications and illuminates under which circumstances you should decide for which kind of storage engine.
Managing network volumes is a complex tasks; Kubernetes breaks this down into separately managing PersistentVolumes and PersistentVolumeClaims.
Manually creating PersistentVolumes is time-consuming and tedious. Automatic Volume Provisioning and Storage Classes offer a solution for this.
Sometimes you will need to deploy clustered applications in which each instance will require its own private persistent volume. This is often the case when deploying databases. This can be done using StatefulSets.
Often, your application will require various configuration values. While you could just define these as Pod environment variables, ConfigMaps offer a solution that is easier to manage.
Using ConfigMaps to manage environment variables is a useful feature – but often, applications require entire configuration files to run. This can also be solved using ConfigMaps.
ConfigMaps are great, but not secure. Secrets work similar to ConfigMaps, but are designed to store secret data like password, API keys and other sensitive data.
Typically, you will want to deploy your application automatically from a source code repository as soon as changes are made in the repository. This video will show you how a typical Continuous Delivery pipeline in Kubernetes looks like.
GitLab is a popular solution for both version control and Continuous Integration and Delivery. This video will show how to implement the deployment pipeline shown earlier using GitLab CI.
Often, Kubernetes deployments are complex and consist of multiple objects that are difficult to manage manually. This can be made easier using the Helm package manager.
This video combines the knowledge from the previous two and shows how to build a continuous delivery pipeline using GitLab CI and Helm.
Moving to microservices is not an easy transition for developers who have been building applications using more traditional methods. There are a ton of new concepts and details developers need to become familiar with when they design a distributed application. Throw Docker and Kubernetes into the mix and it becomes clear why many developers struggle to adapt to this new world.
The goal of this course is to walk you through the process of getting familiar with Kubernetes and its way of doing things. The course is designed to get you through the process of becoming familiar with the Kubernetes environment in order to be able to deploy, configure, and manage the environment where the services are going to run. You will go through examples based on the author’s real-world experience in working with Kubernetes while building complex distributed architectures. We focus on deploying services that need to store data and learn how Kubernetes Persistent Volumes can be used to create deployments that guarantee data resiliency. Moving on, we learn how to give services access to connection strings, usernames, passwords, and other sensitive information using Kubernetes Secrets.
By the end of the course, you will have mastered best practices and leveraged some of the latest DevOps technologies to increase agility and decrease time-to-market for the services you have built.
About the Author
Martin Helmich studied computer science at the University of Applied Sciences in Osnabrück and lives in Rahden, Germany. He works as a software architect, specializing in building distributed applications using web technologies and Microservice Architectures. Besides programming in Go, PHP, Python, and Node.js, he also builds infrastructures using configuration management tools such as SaltStack and container technologies such as Docker and Kubernetes.
He is an Open Source enthusiast and likes to make fun of people who are not using Linux. In his free time, you'll probably find him coding on one of his open source pet projects, listening to music, or reading science-fiction literature.