Can Spring Boot Apps Really Deploy in Minutes on Kubernetes?

TheCodeAlchemist · Beginner ·☁️ DevOps & Cloud ·9mo ago

Key Takeaways

This video demonstrates how to deploy a Spring Boot application on a Kubernetes cluster in minutes, using tools like Docker, Docker Desktop, and the Spring Boot build image plugin.

Full Transcript

Hey everyone, welcome back. With this video, we're starting a new minieries on cloudnative stuff. We will start with a very simple Spring Boot application. Then we will see how to containerize it, how to run it as a Docker container, and we will also see how to deploy this simple application onto a local Kubernetes cluster. And as we go on with this series, in the upcoming videos, we will keep refining and expanding this application to add more features like database connectivity, secrets, config, maps, scaling, and different kind of Kubernetes services. All right. Now, before we start, a disclaimer that in this video we are not going to cover the basics of Docker and Kubernetes. So, I assume that you have a basic understanding of Docker and Kubernetes. what they are, how they work, basic terminology, basic concepts like Docker commands and Kubernetes objects like deployments, parts and services. So if you're not comfortable with the basic knowledge of Docker and Kubernetes, then I recommend you check out some tutorials first because in this video we will mainly focus on the hands-on part from Java and Spring Boot perspective. So having said this, uh let's dive in and let's get started. [Music] So firstly let's understand what we are going to build in this video. As I said we will keep things very simple in this video. So we will start with a basic spring boot app. That is step number one. We will develop a very simple spring boot app that will have only web dependency. No database nothing. It will be a very simple rest controller exposing a simple get endpoint. Then as always we will run this application on our local system using any IDE. Okay. And then we will test it using Postman or any browser because this is going to expose a simple get call. In the next step we will see how to containerize this application. So we will use docker for that. And in the second step we will run this application in a docker container. Then in the end the third step would be to run this application on local kubernetes cluster. For that we will use docker desktop. Now for this video things are intentionally simple so that we can focus on what's going on and in future videos in upcoming videos we will keep expanding the features. We will keep adding new things to the project and we will keep exploring other things related to Kubernetes and docker. So let's dive in and start the code. So the first step is to have the spring boot application and you can see this is going to be a very simple spring boot app. You can see the configuration that I have selected. We have only added the spring web and actuator dependency web to expose the rest controller and actuator because we are going to enable the probing when we deploy it on a local kubernetes cluster. So it's a very minimal project. Let me generate and open it in IDE. So I now have the project open intelligj. Let's add the rest controller that we want. So we'll go to the main class and we will use the same main class to write the controller. Since this is going to be a very minimal application, so I can simply add a class in the main class. I don't need to create a package and add the controller in that class. That is perfectly valid. So that is going to be the rest controller. And uh that will be hello. And then we will expose a simple get endpoint that will simply return hello world or maybe hello kids. So we have the endpoint ready. If we just run this application now and I don't have JDK 24 as of now configured. So let me change from here. If you have JDK25 then fine. Let me reload the project and let's run the application. So we can see the service is up. To test this get endpoint we don't need Postman. We can go to the browser and just hit local host and the hello endpoint. So we can see hello kids. That means the service is up and running. Now if you noticed we also added the actuator dependency. Now actuator helps to expose some endpoints. So there is this link from the documentation on the endpoints that you will find what actuator can do for your application and you will find a lot of details on this page. What we are interested in is the Kubernetes probs. Okay. So let's go to this section. So in here you can see that when we use the actuator the application exposes some additional endpoints out of the box and those additional endpoints related to the health can be used by the Kubernetes. Now these two probes help the Kubernetes to determine whether the pod is up and running and healthy so that it can be made available to the clients. Okay. So we will configure this when we create the Kubernetes cluster. For now we need to make sure that these endpoints are accessible for the application. So let's copy this endpoint and if we go to this tab then we can see this is not available. But if we just check this health endpoint then we can see that status is up. That means we need to do something to expose the livveness and the readiness endpoints. How do we do that? So to enable these endpoints we need to enable this property. We need to configure this property. So let me copy this and we'll go back to the codebase and in the properties file. We will add this property and we will set it to true. Okay, let's restart the application. And we can see the service is up. So let's retest the endpoints. And this time if we check the readiness, we can see the status is up. And the same can be tested for livveness. So this time we can see that the actutor endpoints are exposed correctly that can be used by the kubernetes. So the application is now ready. Right now we are running this application on the local system running it from the IDE testing it on the browser. So we need to move on to the step two that is we will now create an image of this application and then we will run it using a docker container. Now again there are various ways to create a docker image of any application of any spring boot application but in this video we will use the spring boot image plug-in that comes with spring boot. All right. So we can always create a docker file manually to have more control on how to create the image. Then there is google jip plug-in that can be used to create the docker image. Then spring boot also comes with a plug-in to create the images. So in this video we will choose the option number three which is to use the spring boot plug-in to create the images. In the upcoming videos we will probably see the jib Google jib in action and maybe in one of the videos we will also see how to create the image using docker files. All right. So how do we create the image using spring boot plug-in. Well in this IDE in your intelligj if you go to the maven profile then under plugins we will see all these plugins available. And if you go to spring boot then you will see this particular plug-in build hyphen image that can be used that can be run on your application and it will create the image automatically. Now in an actual application if you are using spring boot plug-in then probably you will add it to your pom.xml XML same as any other plug-in there you can add more arguments if you want to let's say configure your image uh depending on the scenario but in this video I will run the plug-in from this menu itself and that will create the docker image that will create and publish the docker image to my docker hub registry then we will use that image to run the application in a docker container so when we run this plug-in when it generates the docker image there are two ways where to store that image we can store that image loop ly or we can simultaneously ask the plug-in to publish the image to your docker hub registry. All right. So we will go with option number two. When we run this plug-in we will provide an additional configuration that will make spring boot plug-in to not only generate the image but it will also publish the image to my docker hub registry. Now in order to do that you need to have the docker up and running on your system. For this demo because I'm using my windows system I will use the docker desktop. When you run the docker desktop, it comes with a docker demon that will run on your local system. If not, maybe you will have to login first before running the plug-in if you want to publish the image. Since I have docker desktop up and running, so that has the docker demon up and running on my local. So when I run this plug-in with the additional arguments, it will automatically publish the image to my docker registry and I will show you how it looks. So if you need any help with the docker desktop setup, please watch my this video where I've shown how to download and install and run docker desktop. All right. So let me launch my docker desktop. So this is my docker desktop which is up and running. And as you can see there are many images that I have already downloaded. So in the same way we will create the image of this spring boot application and then we will download the image and run it as a container. All right. So if I show you the dockerhub registry when you create an account if you don't have one you will also get a repository section where whatever image that you create and publish will be listed under the repository section. So this is my account this is my username and under the repositories you can see there are right now two images these are demo images that I was playing with. So now when we create the image of this spring boot application there will be one more image that will be listed here. All right. So, make sure before running the Spring Boot plug-in, you are logged in using your Docker account. So, let's go back to IntelliJ and run the Spring Boot image plug-in. So, from here, as I said, we will run the plug-in. But how do we pass additional arguments? So, if you right click here, you will find this modify run configuration that will open this pop-up and here we can provide any additional arguments. So, let me add to this argument tells the plug-in that we want to publish the image. So once you create the image we want to publish it to my docker hub registry. As for the second argument this is used to configure the name of the image. So this is the my username on the docker hub and as for the image name let me change it. Instead of simple app we will say hello cats app and the version is going to be 0.0.1. Okay. So when we run this plug-in it will create a new image. The name of that image is going to be Hello kids app, the version of that image is going to be 0.0.1. And because we have asked the plug-in to publish the image. So what it will do, it will try to publish this image to my DockerHub account by using this username. And since I'm already logged in, so if this goes well, then we will see the new image under my Docker Hub registry. So let me apply the changes and run the plug-in. So when you run it for the first time, it will take some time to create the image. So it took a couple of minutes, but the image has been created and pushed to my Docker Hub registry. So let's go to my DockerHub account and if we do a refresh, then we should see the new image here. And you can see this is the new image that we just created. So now that we have the image, how do we run it? There are again a couple of ways to run an image as a Docker container. We can use Docker desktop or we can run it via command line using Docker commands. So I will show you how to run this container using docker commands. So let me launch my terminal and in that terminal we will run the docker commands to run the container. All right. So this is the command that we will use to run the container. It says docker run that means we want to run it as a container. Then we are binding the port that means 8080 from my local machine to 8080 which is exposed inside the container so that the client can talk to the application which is running inside the container. By default, the port is not exposed for the outside world. So if we don't bind the port, we won't be able to access the application which is running on 8080 inside the container. Then we are providing the name of the image that we just created. So if we just copy this command and run it on the terminal, then it will download the image and run a new container. So you can see this is now starting the application that we created. And we can see that the service started successfully. So to test this out, if we go back to the browser and if we again call the hello endpoint, then we should see the message and we can see the message that means the client is reaching to the application which is running inside the container. All right. So we successfully launched the container and we can interact with this application. So step number two is complete. So the last thing we will see is how to run this application on a local Kubernetes cluster. To do that we need to have the Kubernetes running on the local machine. And to do that we will use docker desktop. So let's go back to the docker desktop. And here you will see this Kubernetes section. And if you go here you will find this button create cluster. So let's create a new Kubernetes cluster. And you can see we are using kind because for some reason cube ADM is not working on my local system. So you can choose either of them. All right. Then you can configure the nodes on the local machine. One node is enough. This is the current Kubernetes version. and then I will create the Kubernetes cluster on my system. It will take a couple of minutes if you are doing it for the first time because it needs to download the required dependencies and the Kubernetes binaries. Okay. And uh then it will start the Kubernetes cluster. So let's give it some time. I will cut it and we'll come back when this is up. So Kubernetes is now up and running. And once you run the Kubernetes on your system, you will see a similar window. And here you can see different uh widgets like cluster, deployments, pods, Kubernetes services and nodes. Okay. So as we run things on the Kubernetes cluster, we will see more information on these widgets. As for the name spaces, we can see there are default name spaces. Name spaces are used to group the resources. Okay. So they can be uh they can be treated as resource groups for example. And in the same way we will create a new name space for this demo so that we can club the resources under a different name space that can be deleted later. All right. So this is used for grouping and permissioning also. This can also be used for permissioning. So how do we create a namespace? How do we run this application on the Kubernetes? To run any workload in Kubernetes, we need an image and we already created a docker image. That is step number one. Now we will not cover each and everything about Kubernetes in this video because this is not a Kubernetes course. So I assume that you already know the basics of Kubernetes different things like what are the deployments, what are the parts, what are the services in Kubernetes. So in this video we are focusing on the hands-on. So if you are not comfortable with basics of Kubernetes then I suggest I recommend you check out some Kubernetes courses to understand the basics of Kubernetes and once you are comfortable you can come back to this point to understand what commands are we going to run to run the application on Kubernetes. All right. So I'm going to share some commands with you. So here we see different commands that we will use to run the application on Kubernetes. All right. Now the good thing about VS Code is if you have the right plug-in you can run the Kubernetes commands from VS Code itself. All right. So if you go back to the Docker desktop for a second once we have the Kubernetes running how do we interact with Kubernetes? Well we can use the terminal from the docker desktop itself and there you will find the terminal and you can actually run Kubernetes commands from this terminal itself. So if I just check cubectl get pods to see if there are any pods then you can see no resources found in default name space and the same thing we can see here as well no pods. All right the thing is here we are running a kubernetes command from the terminal which is available in docker desktop itself. All right so that is one way the second way is you can use your terminal. So in this case we are using the windows command prompt. Let me kill this container first. All right. And then we can run the same command here and we see the same output. No resources. So there are different ways to connect to the Kubernetes cluster. All right. In the same way, if you go back to the VS code, it also has a plug-in that can connect to Kubernetes. So if you go to the Kubernetes icon and if I just refresh it. So here you can see it identified my Docker desktop which is running Kubernetes. And here also we can see different things like name spaces, nodes and everything. So for the ease of use we will use the terminal from the VS code itself. So let's open a new terminal. So first let's verify if we can interact with the Kubernetes from the VS code terminal. So we will run the same command and we can see it is accessible. So the first thing that we will create we will create a couple of variables so that we can use them in different commands just to save some typing. So first this is the variable to represent the name space. All right in this case we will create a new name space. The name space name is going to be hello kids app- ns. Then infra diir this is where I have kept all these configs. So this variable will point to this directory structure where I have kept all the configuration ml configuration that we will use to deploy the application so that I don't have to type this path uh again and again. So there are two files that we will use. The first one is namespace.mml. And you can see if you are familiar with Kubernetes that this is the API version. This is the type of the resource. So this is going to be a namespace and the name of that namespace is going to be this string. All right. So this represents a namespace resource in Kubernetes. Now this is not the only way to create a nameace or any deployment. You can also run the command directly on the terminal that will also work fine. But in an actual application you will have these YML files so that the changes can be tracked and hence I have created the ML files. All right. So this YL file represents a name space. Then we have the second YL file to create the service Kubernetes service for the application. All right. So in a single YL file we can write different resources. So the first one is a Kubernetes service. When we deploy this it will create something called a Kubernetes service. All right. The type of that service is cluster IP. That means it is only accessible locally on the network. In the upcoming videos, we will create a different kind of service so that it can be exposed to a public network. So you can see uh this service is a part of this name space that we will create. So all the resources will be tagged to a name space so that they can be tracked easily. And let's say if you want to do a cleanup, I will simply delete the name space that will delete all the resources. All right. The second resource in this CML file is a deployment. All right. And that is how we deploy the application. Now this deployment will actually create some parts and in those parts it will run the application the docker image that we created. The name of the application is going to be hello kids app and under the container section this is where we tell kubernetes deployment what it has to run. So in this case we are providing the name of the image that we created. So what Kubernetes will do when we create the deployment it will fetch this image because we have said if not present then you need to pull the image. So it will download the image and then it will run a container out of that image. All right. Then we have also configured the readiness probe and the livveness probe using the actuator endpoints that we tested on local. This is to make sure that the application is up and running. So when the Kubernetes deployment will start the application, it will check by hitting these endpoints whether the application is up and healthy. If it sees that okay the application is up and running, then the container will be marked as ready so that the clients can use it. And in the end we are exposing 8080 port for this application. So once we have the ML files, how do we apply them? Well, there are commands to do that. The first command is cubectl apply f and that is how we pass a ml file. So let me copy and run this command and we can see that the name space has been created. So if you go back to the docker desktop and under name spaces we can see that we have a new name space and this name space is ours. So if you select this name space we can see this is empty right now. All right let's go back. In the next step we will create the deployment. All right we will create a new service for the application. So we will run this command to execute the second EML. So this will now create the service as well as the deployment for the application because we merged both the resources in a single ML file. So if you go back to the docker desktop, we see that there is a new deployment hello gates app which is progressing and it is creating a new pod and as well as the service. Now why one pod? Because if we go back to the app configuration. So here we see it will fetch this image. It will run a container but we have configured only one replica that is why one pod. If we let's say give it three replicas then it will run three pods as part of this deployment. So let's go back to the docker desktop. So now we can see that the deployment is fully available. It is up and the pod is also running. Okay. And service is also running. So all the components all the required components are now up and running. There are additional commands to basically check the status. So if you run this command, it will check the status of this roll out of this service basically. So if you run this command, it says that this deployment has been successfully rolled out. So we know that the deployment is now successful. The service and parts are up and running. So we should be able to access the application. So if you go back to this one and if we hit this endpoint, we see that it is not able to access the application. Why is that? The reason is that by default this service is not available on a public network and this happens because if we go back to the application config we have created a Kubernetes service and this is of type cluster IP. This is only available on the local Kubernetes network. So anyone accessing outside the network will not be able to access it. Although the application is running on 8080 port but this is not available outside the Kubernetes network. So how do we access this? Well, there is another command and by using that command, we can do something called port forward. So let me show you. So this is called port forward. What it does, we are forwarding the port 8080 from the host machine to the container for this service. All right. So if we run this command now, it will start forwarding the calls to the 80080 which is running in the Kubernetes network. With this if we go back to the browser and hit the same request again then we can see hello kids and the same can be seen in the logs as well that handling connection for 80080. And once we test the application we can actually kill the command. So let's revisit what we did. The first step was to develop the spring boot application that we did. Then we enabled all the endpoints related to actuator for health probes that can be used by Kubernetes. In the next step, we created the docker image using spring boot build image plug-in and we published the image to the docker hub registry. Then in order to run the application using that image as a docker container, we ran this command which is docker run and here we were using the docker directly. All right. So it started a container and we were able to access the application. In the last phase, we created the name space and the Kubernetes objects like deployment and services uh using these commands and that's how we deployed the application on a Kubernetes cluster and by using port forward okay we were able to access the application. So that actually wraps up the first video in which we started with a simple spring boot app. We containerized it without even writing a docker file using the spring boot plug-in. And then we deployed it onto a local Kubernetes cluster using docker desktop and we also configured and saw how can we configure the readiness and livveness probes that can be used by Kubernetes to perform health checks on the application. Now we understand that this application is very simple. It has very limited use cases. But even with this application we understand the flow now how to start with the application how to containerize it and how can we deploy such an application on the local Kubernetes cluster. In the upcoming videos we will add the database support in this application and we will also work to expose a different kind of service so that we don't have to run the port forward command. So that's all for now and I will see you in the next video with more stuff on spring boot and Kubernetes. Thanks for watching.

Original Description

Code repository - https://github.com/therealdumbprogrammer/hello-springboot-k8s/tree/main In this video, we kick off a brand-new series on Spring Boot + Kubernetes. We’ll start with the basics: a simple Spring Boot web app with no database, containerize it using the Spring Boot build image plugin, and deploy it onto a local Kubernetes cluster. Along the way, we’ll cover: 1) Building and running a minimal Spring Boot app 2) Creating a container image with the Spring Boot build plugin (no Dockerfile needed) 3) Deploying the image on Kubernetes with a Deployment and Service 4) Adding readiness and liveness probes using Spring Boot Actuator 5) Testing the app locally on Kubernetes ⏱️ Timestamps 00:00 – Intro 01:07 – Project Overview 02:08 – Building Spring Boot App 05:42 – Containerizing the App 12:10 – Kubernetes setup 13:49 – Kubernetes Deployment 22:28 – Wrap-up #SpringBoot #Kubernetes #SpringBootDocker #SpringBootOnKubernetes #KubernetesLocalSetup #SpringBootBuildImage #JavaDevelopers #SpringBootTutorial #KubernetesForJava #CloudNative #JavaMicroservices
Watch on YouTube ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Playlist

Playlist UUjEfGki6QSKs0mL6-h2pm3Q · TheCodeAlchemist · 48 of 50

1 #java threadlocal #coding #programming #education #softwareengineer #shorts
#java threadlocal #coding #programming #education #softwareengineer #shorts
TheCodeAlchemist
2 ThreadLocal values #java #coding #codingtutorial #programming #programmer #education #shorts
ThreadLocal values #java #coding #codingtutorial #programming #programmer #education #shorts
TheCodeAlchemist
3 Immutable Design and Java Concurrency | Immutability Explained
Immutable Design and Java Concurrency | Immutability Explained
TheCodeAlchemist
4 #java concurrency and immutability #coding #programming #100k #shorts #javaprogramming
#java concurrency and immutability #coding #programming #100k #shorts #javaprogramming
TheCodeAlchemist
5 MASTER HTTP Basic Authentication in Spring Boot in Just 1 Hour | Step-by-Step Tutorial
MASTER HTTP Basic Authentication in Spring Boot in Just 1 Hour | Step-by-Step Tutorial
TheCodeAlchemist
6 #springsecurity #java #coding #programming #springboot #education #javaprogramming #shorts
#springsecurity #java #coding #programming #springboot #education #javaprogramming #shorts
TheCodeAlchemist
7 Encoding passwords in #springsecurity #springboot #java #programming #coding #security
Encoding passwords in #springsecurity #springboot #java #programming #coding #security
TheCodeAlchemist
8 #springboot #coding #springsecurity #shorts #java #programming
#springboot #coding #springsecurity #shorts #java #programming
TheCodeAlchemist
9 SECURE Your App with Roles and Permissions in Spring Security!
SECURE Your App with Roles and Permissions in Spring Security!
TheCodeAlchemist
10 #springsecurity roles & permissions #java #programming #coding #shorts #springboot
#springsecurity roles & permissions #java #programming #coding #shorts #springboot
TheCodeAlchemist
11 #java #springboot #spring #springsecurity #coding #programming #shorts
#java #springboot #spring #springsecurity #coding #programming #shorts
TheCodeAlchemist
12 Mastering Pre-Authentication with API Keys Like a PRO
Mastering Pre-Authentication with API Keys Like a PRO
TheCodeAlchemist
13 What is an Event Streaming Platform #kafka #java #coding #youtubeshorts
What is an Event Streaming Platform #kafka #java #coding #youtubeshorts
TheCodeAlchemist
14 #apachekafka #coding #code #java #javadevelopment #programming #youtubeshorts
#apachekafka #coding #code #java #javadevelopment #programming #youtubeshorts
TheCodeAlchemist
15 Running Kafka in KRaft Mode without Zookeeper
Running Kafka in KRaft Mode without Zookeeper
TheCodeAlchemist
16 #tutorial #kafka #coding #javadevelopment #java #programming #youtubeshorts
#tutorial #kafka #coding #javadevelopment #java #programming #youtubeshorts
TheCodeAlchemist
17 Kafka Producer and Consumer with Java: Hands-On Tutorial
Kafka Producer and Consumer with Java: Hands-On Tutorial
TheCodeAlchemist
18 How to Use Kafka Consumer Groups in Java | Beginner-Friendly Demo
How to Use Kafka Consumer Groups in Java | Beginner-Friendly Demo
TheCodeAlchemist
19 #kafka consumer groups #kafkatutorial #java #programming #coding #shorts #apachekafka
#kafka consumer groups #kafkatutorial #java #programming #coding #shorts #apachekafka
TheCodeAlchemist
20 Sticky vs Hash Partitioner in Kafka: Full Guide + Java Consumer Group Demo
Sticky vs Hash Partitioner in Kafka: Full Guide + Java Consumer Group Demo
TheCodeAlchemist
21 Step-by-Step Kafka Transactions Demo
Step-by-Step Kafka Transactions Demo
TheCodeAlchemist
22 The DEVELOPER'S Guide to AI and ML: Fundamentals
The DEVELOPER'S Guide to AI and ML: Fundamentals
TheCodeAlchemist
23 LLMs Explained: Tokens, Embeddings, and API Basics
LLMs Explained: Tokens, Embeddings, and API Basics
TheCodeAlchemist
24 Your first OpenAI API App - Step-by-Step Guide
Your first OpenAI API App - Step-by-Step Guide
TheCodeAlchemist
25 #chatgpt #llm #openai #tutorial #technology #tech #programming
#chatgpt #llm #openai #tutorial #technology #tech #programming
TheCodeAlchemist
26 JVM Bytecode Made Simple: Essential Concepts
JVM Bytecode Made Simple: Essential Concepts
TheCodeAlchemist
27 Master #java Bytecode #jvm #jvminternals #programming #coding #shorts
Master #java Bytecode #jvm #jvminternals #programming #coding #shorts
TheCodeAlchemist
28 #jvm operand #stack #explained #java #coding #programming
#jvm operand #stack #explained #java #coding #programming
TheCodeAlchemist
29 JVM Internals: JVM Opcodes and Java ClassFile Explained
JVM Internals: JVM Opcodes and Java ClassFile Explained
TheCodeAlchemist
30 Java Bytecode Deep Dive | What JVM Sees That You Don’t
Java Bytecode Deep Dive | What JVM Sees That You Don’t
TheCodeAlchemist
31 #java #bytecode constant pool #programming #coding #youtubeshorts
#java #bytecode constant pool #programming #coding #youtubeshorts
TheCodeAlchemist
32 Inside the JVM: Class Loading Explained
Inside the JVM: Class Loading Explained
TheCodeAlchemist
33 Java Developers: You MUST Understand These 5 JVM Memory Areas
Java Developers: You MUST Understand These 5 JVM Memory Areas
TheCodeAlchemist
34 User Signup with Email Verification 🔥 Spring Boot + Spring Security
User Signup with Email Verification 🔥 Spring Boot + Spring Security
TheCodeAlchemist
35 How to Build a Secure Password Reset Flow | Spring Security
How to Build a Secure Password Reset Flow | Spring Security
TheCodeAlchemist
36 #springboot #springsecurity #passwordreset #java #programming #javadeveloper #programmingshorts
#springboot #springsecurity #passwordreset #java #programming #javadeveloper #programmingshorts
TheCodeAlchemist
37 JWT Simplified | What Developers Must Know About Token-Based Auth
JWT Simplified | What Developers Must Know About Token-Based Auth
TheCodeAlchemist
38 #jwt #security #springsecurity #springboot #java #programming #coding #codingtutorial #codingtips
#jwt #security #springsecurity #springboot #java #programming #coding #codingtutorial #codingtips
TheCodeAlchemist
39 #jwt #jwtauthentication #authentication #security #websecurity #springsecurity #springboot #java
#jwt #jwtauthentication #authentication #security #websecurity #springsecurity #springboot #java
TheCodeAlchemist
40 Master Spring Security JWT in 1 Hour
Master Spring Security JWT in 1 Hour
TheCodeAlchemist
41 Want to Master Payment Processing? Watch This Now
Want to Master Payment Processing? Watch This Now
TheCodeAlchemist
42 #paymentgateways #java #coding #programming
#paymentgateways #java #coding #programming
TheCodeAlchemist
43 #education #paymentgateways #payments #paypaltutorial #shorts #programming #programmingshorts
#education #paymentgateways #payments #paypaltutorial #shorts #programming #programmingshorts
TheCodeAlchemist
44 Stripe Payments with Spring Boot | Full Hands-On Tutorial
Stripe Payments with Spring Boot | Full Hands-On Tutorial
TheCodeAlchemist
45 #paymentgateways with #springboot #java #coding #programmingshorts #programming
#paymentgateways with #springboot #java #coding #programmingshorts #programming
TheCodeAlchemist
46 #java #javacoding #coding #paymentgateways #payments #springboot #springboottutorial
#java #javacoding #coding #paymentgateways #payments #springboot #springboottutorial
TheCodeAlchemist
47 #java #coding #programming #jvm #codingtips #programmingshorts
#java #coding #programming #jvm #codingtips #programmingshorts
TheCodeAlchemist
Can Spring Boot Apps Really Deploy in Minutes on Kubernetes?
Can Spring Boot Apps Really Deploy in Minutes on Kubernetes?
TheCodeAlchemist
49 #java on #kubernetes with #springboot #programming #coding #programmingshorts
#java on #kubernetes with #springboot #programming #coding #programmingshorts
TheCodeAlchemist
50 Spring Boot + Postgres on Kubernetes | Cloud-Native Series
Spring Boot + Postgres on Kubernetes | Cloud-Native Series
TheCodeAlchemist

This video teaches how to deploy a Spring Boot application on a Kubernetes cluster in minutes, covering topics like containerization, Kubernetes deployment, and distributed systems. By following the steps and using the mentioned tools, viewers can learn how to efficiently deploy their own Spring Boot applications on Kubernetes.

Key Takeaways
  1. Develop a simple Spring Boot application
  2. Containerize the application using Docker
  3. Create a Docker image using the Spring Boot build image plugin
  4. Publish the image to Docker Hub registry
  5. Create a Kubernetes cluster using Docker Desktop and kind
  6. Configure nodes on the local machine for the Kubernetes cluster
  7. Create a new namespace for the demo on the Kubernetes cluster
  8. Deploy the application on the local Kubernetes cluster using Docker Desktop
💡 Spring Boot applications can be deployed on Kubernetes clusters in minutes, using the right tools and configurations.

Related AI Lessons

`wrangler dev --remote` silently writes to your production KV namespace — here's the fix
Learn how to safely use wrangler dev --remote with live KV namespaces without overwriting production data
Dev.to · 강해수
Qwen 3.6 27B Is the Local Dev Sweet Spot — Here's Why
Discover why Qwen 3.6 27B is the ideal choice for local development, and how it can boost your productivity
Dev.to · Carter May
Deploying Spring Petclinic Microservices with Docker Compose: An End-to-End DevOps Deployment Experience
Learn to deploy Spring Petclinic microservices with Docker Compose for a seamless DevOps experience
Dev.to · Nice Nwogu
Qwen 3.6 27B Is the Local Dev Sweet Spot — Here's Why
Discover why Qwen 3.6 27B is the ideal choice for local development, offering a sweet spot for efficiency and performance
Dev.to · Carter May

Chapters (7)

Intro
1:07 Project Overview
2:08 Building Spring Boot App
5:42 Containerizing the App
12:10 Kubernetes setup
13:49 Kubernetes Deployment
22:28 Wrap-up
Up next
Containers on Amazon ECS with Mama J
AWS Developers
Watch →