Komodor is a Kubernetes management platform that empowers everyone from Platform engineers to Developers to stop firefighting, simplify operations and proactively improve the health of their workloads and infrastructure.
Proactively detect & remediate issues in your clusters & workloads.
Easily operate & manage K8s clusters at scale.
Reduce costs without compromising on performance.
Empower developers with self-service K8s troubleshooting.
Simplify and accelerate K8s migration for everyone.
Fix things fast with AI-powered root cause analysis.
Explore our K8s guides, e-books and webinars.
Learn about K8s trends & best practices from our experts.
Listen to K8s adoption stories from seasoned industry veterans.
The missing UI for Helm – a simplified way of working with Helm.
Visualize Crossplane resources and speed up troubleshooting.
Validate, clean & secure your K8s YAMLs.
Navigate the community-driven K8s ecosystem map.
Your single source of truth for everything regarding Komodor’s Platform.
Keep up with all the latest feature releases and product updates.
Leverage Komodor’s public APIs in your internal development workflows.
Get answers to any Komodor-related questions, report bugs, and submit feature requests.
Kubernetes 101: A comprehensive guide
Expert tips for debugging Kubernetes
Tools and best practices
Kubernetes monitoring best practices
Understand Kubernetes & Container exit codes in simple terms
Exploring the building blocks of Kubernetes
Cost factors, challenges and solutions
Kubectl commands at your fingertips
Understanding K8s versions & getting the latest version
Rancher overview, tutorial and alternatives
Kubernetes management tools: Lens vs alternatives
Troubleshooting and fixing 5xx server errors
Solving common Git errors and issues
Who we are, and our promise for the future of K8s.
Have a question for us? Write us.
Come aboard the K8s ship – we’re hiring!
Hear’s what they’re saying about Komodor in the news.
Webinars
You can also view the full presentation deck here.
*This is an auto-generated transcript
0:11
all right okay
0:16
so we’ll begin shortly let’s give everyone a couple of minutes to join in
0:22
we already have a few guests here
0:27
welcome Aman Ben Grady ashika yogesh
0:35
welcome all let’s give more people a chance to join
0:42
in before we begin
1:09
[Music]
1:28
1:35
who is with us now welcome to making kubernetes they’re friendly with uh
1:42
Commodore and octeto uh we’ll introduce our speakers and let
1:47
them take the stage but first some housekeeping so
1:53
um like I said today’s subject is making kubernetes differently so
1:59
as all of you know uh kubernetes was forced on us several
2:06
years ago and as the years go by it’s becoming more and more prominent eating
2:12
up more and more of the world and as Developers we are forced to
2:17
[Music] um owner apps end-to-end but it’s not as
2:22
easy when you uh when your app is running on kubernetes under the hood and
2:35
will share their knowledge of their experience and teach you how uh how to
2:42
overcome those challenges and um if you don’t know near Stein she started
2:50
being a software engineer at Commodore is also the main contributor to valid
2:55
Cube commodore’s first open source project our Sharma is a Dev experience
3:00
engineer from octeto and a very prolific public speaker you may have heard them
3:06
before in some conference or talk and together we are going to discuss
3:14
making kubernetes differently so without further Ado uh guys take it away and
3:22
show us what you’ve got
3:29
um
3:36
hey everyone thanks for joining uh could you change the slide and we can get started
3:42
uh so before we like begin talking about
3:48
uh what we have how we can make kubernetes Dev friendly
3:54
um it thank goodies yep I wanted to uh give
3:59
a bit of uh history lesson sort of about what has happened in the past and how we
4:05
have reached this point where we currently are so if you remember like
4:10
about seven eight years ago nobody was talking about microservices or containers that much we all were coding
4:18
monolithical applications which were running in infrastructure which we either owned in our own buildings or we
4:25
rented out but uh what problems started emerging from this approach was that
4:31
scaling became very very tough like as we sort of uh grew the code base and the
4:38
users managing this uh monolithical applications running in a data center became very tough and this was something
4:45
like we as an industry started struggling with so the solution we came
4:51
up to for this problem was containers and Docker popularized containers a lot
4:56
and the rise of containers basically led us to you know break down these
5:02
monoliths which we had written into microservices so now instead of the
5:07
entire application being in one single code base on gate we started breaking up different parts of the application and
5:14
different teams were responsible for different microservices and what happened was that we started
5:20
containerizing these microservices so we no longer you know relied on uh one single machine running
5:28
all of this instead we started leveraging the power of cloud remote machines and started accessing them
5:35
then to make things more easy or let’s say like complicated for developers
5:40
kubernetes came into picture and what kubernetes did was it helped us run all
5:46
of these containerized microservices at scale now all of this happened and with
5:52
this we changed the landscape in production significantly right we introduced new tools we introduced new
5:59
methodologies CI CD became different we had staging environments and what or not
6:04
now what all of this did was that it changed the world of developers
6:09
developers who could earlier just work on the local machines now started facing
6:16
a lot of problems and the key reason we feel for this was that while the tooling and Technologies
6:22
upgraded in the production or devops landscape the tools available for developers sort of did not improve at
6:29
the same same pace so if you go to the next slide I want to touch uh on some of the challenges which
6:38
developers started facing since the shift happened could you go to the next slide
6:46
so with this change what happened was that the feedback loop became significantly longer what this means is
6:53
that now when we run up apps in kubernetes in production that is very
6:59
different from running a single microservices locally so let’s say you’re a full stack developer and you’re
7:05
working on the front end right now running that front end locally and the results you are seeing aren’t always
7:11
going to be how they would look in production because the production has changed a lot so for this you would have
7:17
to rely on cicd jobs or access to staging environments the problem with
7:23
both of these approaches are that they are time consuming for cicd to kick in you have to commit your changes and wait
7:30
for the CI to run all of its processes whereas for staging environments you
7:35
often in organizations you have to like wait to get the access because someone else is running there or
7:43
uh in general like the long story short is that as a developer now earlier when
7:49
you could just hit save and be confident that what you are seeing is what you will get now that was no longer the case
7:55
the solution which got offered to Developers for this was
8:01
try to mimic that production kubernetes configuration locally on your desktop use tools like mini Cube kind or what or
8:07
not now this led to two main problems first of all developers were now you
8:13
know suddenly expected to know about kubernetes just to go about their jobs of making applications and writing code
8:20
they had to keep up with the vast kubernetes landscape of tools and
8:25
everything which is very complicated I’m telling you uh and second problem which happened was whenever developers had to
8:32
write code now they would have to do all of this additional configuration stuff and spend time you know bringing up this
8:39
infrastructure playing with yamls changing values and all of that
8:44
so all of these like lead to a very massive hit on productivity and this
8:50
leads to a very frustrating experience for developers who are just trying to ship new features and fix bugs because
8:58
something which was very simple earlier which was as simple as just running your application in one command writing code
9:04
and hitting save now became so complicated because the production landscape changed and the local
9:09
development did not keep up with it so these are a few challenges which
9:15
saved the world of developers and I’ll now hand it over to need to take it from here
9:20
yeah thank you actually can you click
9:29
cool so as Ash mentioned there’s a big difference between the local environment
9:34
and the production environment and let’s talk about why there is a difference between the local and the production and
9:41
the main reason for that is that production is running on kubernetes and your local environment probably running
9:47
on some uh some CLI comments some make fives uh Docker Docker compose in the in
9:55
the best case scenario or even one in your local environment on kubernetes this is like the the perfect scenario
10:02
but still if you have your local environment in production environment both one in kubernetes there will be
10:09
still be differences between them and what of those differences and how can we answer them so the first difference that
10:17
I can mention between the lock and the production is that on local I wanting on a single instance I have a single serial
10:23
server and on production I have multiple multiple service replica sets
10:30
and why this make a difference for example if I have some cash so the Pod
10:36
is the pots are distributed from each other and doesn’t aware of the other ports so if I want to share with cash I
10:42
need to share the cash across all the pots and I can share it as a site
10:48
container within within the port it can be also some states if I want to
10:56
save a data to some storage so I need to use some mechanism that
11:01
help you to do it so the how kubernetes achieved by using some stateful sets
11:07
meaning that you define some volume you can still like on the white yaml there is a status
11:13
and at the end there is a full volume claim when they Define some volume and
11:19
what is the permission to the volume and what is the size and how can I identify some volume and all the ports will go to
11:25
the same same month it’s involved and now I can share a state a course
11:31
multiple replica second thing is that it’s very common
11:37
that you wipe your code on your local local machine and thanks for Google you test it you
11:44
validated someone doing a coded view FX is great but you push it to production
11:51
the CI is passed but now it’s conduction and no things work
11:57
a very annoying scenario and kubernetes invented a solution for us this
12:03
invention called A Wedding smob Ting sports are there to determine if
12:09
your container is ready to accept traffic and liveness pop out there to determine if you’re continuing to be
12:15
restart they are very simple I just defined some endpoints some port and just expose in
12:22
your application that’s poured in that endpoint and then kubernetes examine those
12:28
endpoints and verify that everything okay and looking for a 200 status code
12:34
in that endpoint you need to specify some it can be some validation that your
12:40
application is fine it can be connection to the database it can be some cache in
12:45
validation it can be some business logic and whatever why that that your
12:52
application is working properly so I recommend to put always live in seven is perb across all of your applications
13:00
oh they can click wait another thing to note when you’re
13:08
deploying any application any workload it can be demonstrate status deployment
13:13
whatever to production is not about the resources when I’m doing something on my
13:18
local machine and the resources is my computer and I don’t know if my application is consuming a lot of
13:25
resources a small amount of Visa says I really don’t know it so a way to make sure that I’m not
13:33
consuming too much resources our requests a resources request limits and
13:38
those Define the the request of limits of the memory and the CPU two ways to
13:44
see if you are on track on the usages of your resources is wanted to to do a
13:50
profiling any standard APM offering a
13:55
cool and new and very simple profiling and the second way is to track on cubic
14:02
CTA on kubernetes kubernetes Native events as you can see like on the bottom
14:07
screenshot there is how you get the native evangels Whiting Cube still get events and then
14:15
get all the events across all over your kubernetes cluster but if you want to
14:20
get only the events of specific pod you just do a describe and you see the ports and the events of this particular pod in
14:28
the end of the of the usage um second
14:34
scenario is that you have missing dependencies between your local local environment and production environment
14:40
uh sometimes I have some packages of some CLI that installed globally on my
14:45
local environment and when I’m wanting my application if it works because they are installed my machine but when I
14:52
deploy to production it doesn’t included in my image so very common and simple
14:58
way to do it and most of the companies does that is to work on your local machine with in Docker files one in
15:07
containers instead of some CLI comments and this will solve it because this is
15:12
like the basic same image within the local and within the production
15:18
and the last thing that I think is very important to know when you are deploying to kubernetes are the rollout and of the
15:26
wallet works and it’s not switching between version a to version e b by just
15:32
clicking your fingers it’s not like that there was a wall procedure that is very
15:38
easy in Commodore in camera in kubernetes and before kubernetes is what
15:43
it was very very hard to do a wallet but kubernetes offers a very simple way called warning updates
15:50
and it helps you to do a rollout from version a to version B it does all the work for you all you need to do is to
15:57
specify the configuration that is suitable for your application and this is basically determined by two
16:04
configuration one is Max Surge and the second is Max and available basically
16:09
both of them means how much I want to do my wall out fast versus how much I want
16:15
to do my wallet safely so as a wolf thumb I configure those
16:21
both configuration to 33 and the default is 25. and this is my five best practices how
16:30
to avoid pitfalls from deploying local environments to production
16:36
um our fits your stage
16:41
thanks for that um I’m gonna share my screen now so the video shop steering
16:48
yours and uh like Neil just told you about the
16:53
pitfalls uh you like a developers run into like when dealing with kubernetes I
16:59
am going to show you how octeto helps you combat some of these by uh making it
17:06
easier for you to develop applications by simply uh developing on a kubernetes
17:11
cluster directly so octeto basically what it does is it deploys your
17:17
application to an actual kubernetes cluster dividend development and it allows you to code your applications
17:23
there so uh it’s kind of like hot reloading for kubernetes clusters and
17:29
we’re going to see that in action and we’re going to understand how this improves the dev experience by following
17:36
this story from a perspective of a developer so let’s say you’re a full stack developer and your company has
17:43
this movies rental application where you can go and rent movies and you’ve been tasked with adding a promotional
17:50
discount for kubecon which is coming up soon and so for that you have uh things
17:56
which you need to manage so as a developer now if I have to work on let’s say first adding a banner to this
18:01
application I need to bring up this application now this is not simply an isolated front-end web page right this
18:09
is a full-blown microservice application so many microservices make it up there’s a backend there are databases involved
18:15
and all that stuff so as a developer if I do not have access to a tool like
18:20
octet or what I would have to do is locally create all of these and locally run all of these micro services on my
18:26
local computer and bring each one of them up now that is a very time consuming task and load consuming also
18:33
for the local machine but with octeto it’s as simple as going to your octet or dashboard clicking launch Dev
18:39
environment and adding the URL for your Repository when you do the process for the first time it takes like a couple of minutes
18:46
so I already did that before but once you do that you’ll see that you have access to all of these endpoints for
18:52
different microservices now uh I on the front-end endpoint and which is why I’m
18:57
seeing my application here and you can see all of these micro Services which make up our application have been
19:03
deployed by octeto so let’s see how you would begin developing with octeto you would clone
19:10
this code which for this application and after that open up your favorite editor
19:16
this is one of the other things I love about octeto is how you can continue using the same tools you love so any
19:22
editor at all any other prefer tool you don’t have to switch from that uh once you do that you have to install
19:30
the CLI tool called octet or CLI which is completely open source and uh once
19:35
you have that on your machine all you need to do is run one single command which is octet or
19:41
once you run octet or octeto will connect to your cluster and it will show
19:47
you which one of your microservices you want to work on so let’s say as a developer we first want to add that
19:53
Banner on the front end which lets our users know that we are running a discount for kubecon so I’ll select the
20:00
front-end microservice now what is happening behind the scenes is that octeto is replacing the
20:06
container which is running in the cluster with a Dev container what’s special about this Dev container
20:13
is that any code we will write now on a local machine as you will just see that
20:19
when you hit save that code will get transferred to the uh code running in that Dev container so there’s a two-way
20:27
file synchronization service which allows you to write code and see the results of that code running live in the
20:33
classroom so this is what I meant uh when I said that with tools like octeter you can get instant and genuine feedback
20:40
instant because it happens as soon as you hit save you don’t need to commit or wait for staging environments and
20:46
genuine because this is happening in an actual cluster just like how your application would be running in
20:52
production so you see that now our data op is done we have access to a terminal which is in
20:58
that uh container in the cluster so just how you would be doing it locally you
21:04
first run yeah and to install all the dependencies and then you type yarn start to bring up your front end and now
21:12
if you see go you go back to your endpoint and see and hit refresh
21:17
you’ll see that it is in development mode okay so let’s make a change on the
21:23
front end and add that Banner I have already cheated and the code is already
21:28
there so we are just going to uncomment that and see what happens when we hit save
21:33
so I uncomment this I hit save I go back
21:39
and I see that a banner is here which shows me that there’s a discount for users so you saw how instantly as soon
21:45
as we hit save these this code we wrote got transferred to the code running in the cluster and we were able to get
21:52
feedback now but if we see and try renting a movie let’s say a 13 movie you’ll see
21:59
that the price is still the same there is no 50 discount which makes sense because we have only added this change
22:04
on the front end right now you have to work on the back end also and uh now
22:09
that would involve like bringing up if you if you were not using octet or that would involve bringing up the database
22:15
locally and doing all of that but with octet all you have to do is open up another terminal and type another octet
22:23
or up and this will again list you all the microservices and I know that the
22:28
worker microservice which is written in go is what is responsible for uh processing the price of our movie so I
22:35
run that up and you can do this for any number of micro Services which make up your application so this way you can have
22:42
your entire application up and choose to work on different parts of it easily without having to you know configure
22:48
anything like you do not this application which is running right now if you see on your alternator dashboard
22:53
it uses mongodb and it also uses postgres none of which are running on my
22:59
local machine not only does this save resources but it is also a very convenient way and I can just get
23:05
directly to the code writing phase so once uh octeto app is done launching a
23:11
Dev container into the service let’s change our code and actually add a
23:17
discount now I know that the code for this is in main.go and again
23:23
I will uncomment this line which reduces the price of the movies by 50 now since
23:29
this is like a go Application you would have to like build it and run it so I run made to build the application
23:35
uh build a binary for my application and then I will run make start to
23:43
actually run the application so now if I go and hit refresh
23:48
you’ll see that the price is reduced and if we add like another movie which is for uh three dollars we’ll see that the
23:55
price is actually 1.5 dollars uh so this was it for the demo of the octeto platform and uh you can
24:03
share the screen again but what I want you to take from this is that how
24:08
convenient developing Cloud native applications which consists of like anywhere any number of like 10 to maybe
24:16
even 20 30 micro Services is it’s a super easy process when you can bring
24:21
all of that up in an actual kubernetes cluster and see your changes as if they were actually running in production so
24:28
I’ll now hand it over to Neil to show how Commodore also helps so all some of the problems which developers face when
24:35
working on cloud native applications thank you very much Ash
24:40
so now I will do some Commodore demo before I dive into the Commodore
24:46
platform and about what is Commodore and how how to use it so condo is a SAS
24:53
platform that help you to troubleshoot and manage kubernetes clusters so how we
24:59
basically do it it’s very simple we have an agent that is installed on each one
25:04
of the customers cluster using just a simple hand command and then the agent
25:10
watching all the events that’s happening on the cluster we post them to the Commodore platform Commodore process and
25:18
ingests all of those events and then backstem into the into the UI
25:25
well so this is the Commodore Plaza here is like
25:32
the main the main view of the application here’s all these Services I
25:37
mean all the workloads demons deployments wall out whatever across all
25:44
over my clusters so here we can see like a full view of all of the Clusters and all of the
25:51
workloads so um as developer I probably responsible
25:57
for not a single service and not for all these services in the application
26:02
so I want to track only the services and the application that I’m as as a
26:08
developer is responsible for so for that we have some
26:16
more zoom zoom view that display only the services and all the application
26:22
that is relevant for me as you can see this is the the application view only
26:27
for the backend developers here we can see like all the wall outs that happened all the deployments that happened in the
26:34
last the last day all the issues that I had within the services and what are the related kubernetes
26:40
resources to those applications like a node Sports config map sequence PVC and
26:47
Etc so let’s dive team dive into some
26:53
specific service so here I can see some metadata and
26:59
another data about about my service and I can see the timeline of what
27:05
happened to the service we need to remember that kubernetes is stateless it doesn’t remember what happened in the
27:11
past and it only knows what is happening right now or a few minutes ago and
27:16
kubernetes is stateful it does remember what happened in the past so here you can see some timeline of
27:24
that particular service in the last day in the last two days in the last week
27:29
uh I can say that that timeline is specifically for that service but if I’m
27:35
a devops or some manager of the kubernetes cluster so I have the events
27:41
tab that I want to but to show you like not only specific workload events but
27:46
all the workloads all the all the events of all the resources it was all the Clusters
27:52
so but I’m a developer and this is what I curse so this is an example of a rollout
28:00
here we can see like the wall of changes this is the kubernetes changes I increase my replicas from three to six
28:07
change some two annotations change some config marks and I can see also the
28:13
changes that I made within GitHub or within any git provider if you the
28:19
developer just changed the diamond configuration
28:26
so I had it all out the world was successful but I see that after a few minutes uh I had a problem this is
28:32
called the availability issue meaning my service was unavailable as you can see it’s still happening right now it’s
28:38
still opens I have only one of six replicas that is available so if I deep dive into these specific
28:47
capabilities you can see like all the information and that they need in order to investigate and see what is the
28:53
problem and this is what Commodore suggest me coming to test me hey maybe
28:58
it is the problem I can see the logs I can see the events as I said before to
29:03
track the events and on those parts of this deployment
29:09
and if I want to Deep dive even more into the pods I can see all the Bots that are related
29:15
to this service and do some actions in order to troubleshoot in order to see what is the problem like openings from a
29:23
shell to the container and doing some
29:28
commands group
29:38
I can also delete the the Pod and doing the squad everything that I could do if
29:44
I use a keep ctm so once I know that uh
29:51
I had some add some wall out I had some problem and now I want to see what is
29:58
the problem I see what is the problem and now I have all the all the tools and all the capabilities to troubleshoot and
30:04
solve the problem from end to end and I think this is the real power of commodore to give you the context and
30:11
the full image of the problem and to lead it to the solution and to give it the tools to solve the solution until
30:17
the end and so this was it I moved the mic back
30:24
to you arsh or the can you share screen
30:37
so uh just to wrap things up this is a key takeaway we wanted everyone to get
30:44
from this webinar is that the tools in production have changed and that it is
30:50
about time we started investing in Dev tools or which are the tools available for developers to come back with this
30:58
changing world of kubernetes and containers because we have we as an
31:03
industry have always agreed on the fact that like the local environment must
31:08
match what’s happening in production and until we bridge that Gap it’s going to
31:13
be very tough for developers to deal with the challenges of kubernetes uh
31:19
tools like octeto and commodore help solve this problem because they speak a language which developers understand and
31:26
help bridge that gap between uh development and the production kubernetes setup thanks and I’ll give it
31:35
back to UDI to conclude
31:43
thank you thank you thank you thank you
31:49
okay so um uh before we wrap things up completely
31:56
we have one question that we haven’t answered yet so uh Neil and Ash you can
32:03
each contribute an answer to this question by Faisal farook the question
32:09
is being a beginner in this field what would be your suggestion currently working on front end
32:17
so I’m guessing uh Faisal isn’t working
32:22
on kubernetes yet any any suggestions before we go
32:31
I’m not really sure I understand what’s being asked but uh
32:36
if you’re working on front end and if your app is this like a fronted
32:42
application then are you asking about like any Frameworks you should be using or are you talking about how to
32:50
scale this application because if you’re talking about Frameworks then I think the popular choice right now is react uh
32:57
but if you’re talking about like what you should do like to scale this application then I would definitely
33:03
advise that uh like if you feel like this is going to go grow up into a big
33:09
project then you should invest in like containerizing this Microsoft this front-end microservice and uh
33:16
looking into Solutions which help you around that it totally depends on what approach you want to take when you
33:22
deploy this to production need do you have something you want to add to that
33:27
yeah nothing nothing okay nothing for me I will just say that
33:36
no matter where you are on your journey right now and what’s your area of uh specific expertise currently you can
33:43
always transfer your skills you can always learn new things new Frameworks new languages even something as big and
33:51
scary as kubernetes can be learned um
33:56
let’s see if we have time for this um
34:02
yeah why not so uh just before we move on to the next question so I just want to share a little secret about Neil he
34:09
started as a Unity developer so he wasn’t uh Cloud native wasn’t born
34:16
in the cloud like uh others so he learned everything about kubernetes in
34:22
the recent years and uh you can too it’s possible so uh one final question before we go
34:30
um from you hi I’m a moon stack developer I am new to doctors and
34:36
kubernetes this session was quite great and I got a fair idea about Komodo and octeto is doing oh okay so it’s not a
34:42
question just a compliment to YouTube so uh thank you glad you found the session
34:48
useful yuvraj can you elaborate
34:59
no I was just saying that I’m happy to know that yuvraj from the session yeah
35:05
and I’m sure it’s not the only one I found it useful I will say that and I think
35:11
um everyone will joined or will watch it uh or whatever the recording later we’ll learn something new
35:17
and this is an evolving field a going field it’s a question that a lot of really smart people around the world are
35:24
sketching their heads and thinking how to make kubernetes differently how can I enable my devs to own kubernetes and not
35:32
the other way around so I hopefully we gave when I say we I mean near and Ash I
35:40
had very little contribution to this but hopefully we gave people some food for
35:45
thought and um you have we will share the recording
35:51
and the deck with everyone you have a Twitter handles here so feel free to reach out
35:57
um we also have a slack Community which you are all welcome to join and share
36:03
other resources and events in there and uh any final words from the potato side
36:13
um yes I would advise I see a question about like pricing and you can anyone
36:18
who wants to know more about Dr can visit octeto.com and uh explore the
36:24
product for yourself and if you have any questions regarding uh how to uh like
36:31
make uh your journey to like using octet or anything or hey help you need you can
36:37
reach out to us on community.teto.com which is our community and you can ask questions if
36:42
you have any feedback for this webinar or if you found it useful just uh it would be great if you could let us know
36:48
by making a post there and I would really appreciate that thanks for watching
36:53
thanks everyone see you next time thank you bye bye thanks bye
and start using Komodor in seconds!