you need to learn Kubernetes RIGHT NOW!!

NetworkChuck
8 Sept 202029:34

Summary

TLDRThis video script offers an in-depth tutorial on Kubernetes, a powerful container orchestration tool. It illustrates the process of deploying a Docker container-based coffee shop website, scaling it to handle increased traffic, and managing outages. The script guides viewers through setting up Kubernetes with Linode, deploying applications, and updating them effortlessly. It highlights Kubernetes' ability to automate container management, ensuring high availability and easy updates, making it an invaluable skill for cloud-based operations.

Takeaways

  • πŸ€– Kubernetes is a powerful tool for deploying and managing Docker containers at scale with ease.
  • πŸš€ The video provides a tutorial on setting up Kubernetes, with a special offer from the sponsor Linode, offering $100 credit for 60 days.
  • πŸ› οΈ Kubernetes solves the problem of managing multiple containers by automating deployment, scaling, and operations.
  • πŸ’‘ The script introduces the concept of 'pods' in Kubernetes, which are the smallest deployable units that can contain one or more containers.
  • πŸ”„ Kubernetes uses a 'master' server to control multiple 'worker nodes', distributing containerized applications across them.
  • 🌐 The video demonstrates how to create a Kubernetes cluster on Linode, simplifying the setup process with a user-friendly interface.
  • πŸ“ The importance of 'manifests' or YAML files in Kubernetes is highlighted, which are used to define the desired state for pods and services.
  • πŸ”„ The script shows how to use 'kubectl', the Kubernetes command-line tool, to interact with the cluster and manage resources.
  • πŸ”„ The video explains the concept of 'deployments' in Kubernetes, which ensure a desired number of pod replicas are always running.
  • 🌐 The power of 'services' in Kubernetes is demonstrated, which can expose pods to the network with load balancing capabilities.
  • πŸ›‘ The script emphasizes the ease of updating and scaling applications in Kubernetes, showcasing the ability to change the number of replicas and update images with simple commands.

Q & A

  • What is the main problem Kubernetes solves for Docker containers?

    -Kubernetes solves the problem of managing and scaling Docker containers efficiently. It allows for the deployment of a large number of containers with a single command and automates the process of scaling, load balancing, and updating containers.

  • Why is Docker important to understand before learning Kubernetes?

    -Docker is important to understand first because Kubernetes is built to work with containerized applications, and Docker is a popular container platform. Understanding Docker helps in grasping the concepts of containerization that Kubernetes manages at scale.

  • What does the term 'kube-proxy' refer to in the context of Kubernetes?

    -Kube-proxy is a network proxy that runs on each node in a Kubernetes cluster, implementing part of the Kubernetes service abstraction. It maintains network rules on nodes and allows network communication to reach the correct service endpoints.

  • What is a 'kubelet' and its role in a Kubernetes cluster?

    -Kubelet is a daemon that runs on each node in a Kubernetes cluster and maintains a set of containers. It communicates with the master node to ensure that containers are running in the correct state and according to the declared desired state.

  • How does Kubernetes help with managing the load on web servers?

    -Kubernetes helps manage load by distributing incoming network traffic across multiple pods (containers) using a service, which acts as a load balancer. This ensures no single server bears too much traffic and improves the resilience of the application.

  • What is a 'deployment' in Kubernetes and how does it differ from 'run'?

    -A deployment in Kubernetes is a resource object that provides a way to describe the desired state of a set of replicated pods. Unlike 'run', which creates a single pod, a deployment ensures that a specified number of pod replicas are kept running and replaces any that fail.

  • What does 'kubectl' stand for and what is its purpose?

    -Kubectl stands for 'Kubernetes command-line tool'. It allows users to run commands against Kubernetes clusters, such as deploying applications, inspecting and managing cluster resources, and viewing logs.

  • How does the 'desired state' concept work in Kubernetes?

    -The 'desired state' concept in Kubernetes refers to the configuration and conditions that users expect for their resources. Kubernetes continuously ensures that the actual state of the system matches the desired state specified in the deployment manifests.

  • What is a 'service' in Kubernetes and why is it needed?

    -A service in Kubernetes is an abstraction that defines a logical set of pods and a policy by which to access them. It is needed to expose the pods to the network, allowing external traffic to reach the application running inside the pods through a load balancer.

  • How can Kubernetes help with updating a website without downtime?

    -Kubernetes can update a website without downtime by rolling out changes to the deployment manifest, which specifies the desired number of replicas and the container image to use. It then updates the pods with new images while ensuring the desired number of replicas are always running, thus maintaining availability.

  • What is the significance of the 'selector' in a Kubernetes service?

    -The selector in a Kubernetes service is significant because it determines which pods the service will load balance traffic to. It does so by matching the labels on the pods with the selector specified in the service definition.

Outlines

00:00

πŸš€ Introduction to Kubernetes and Its Benefits

The video introduces the concept of Kubernetes as a powerful tool for deploying Docker containers efficiently. It highlights the ability to deploy 100 Docker containers with a single command and emphasizes the importance of learning Kubernetes for those working with containers. The video promises a tutorial on Kubernetes, including its definition, usage, and a free lab opportunity provided by the sponsor, Linode, who offers a $100 credit for 60 days. The script sets the stage for a practical demonstration of deploying a coffee website using Docker containers and the challenges that arise with scaling, which Kubernetes aims to solve.

05:01

🌐 Setting Up Kubernetes with Linode Cloud Platform

This paragraph explains how to set up a Kubernetes cluster using the Linode cloud platform, which simplifies the process by baking in Kubernetes support. The video guide walks through the steps of creating a Kubernetes cluster on Linode, including selecting a location, choosing the version, and deciding on the number of worker nodes. It also mentions the cost implications and how Linode provides the master node for free. The viewer is introduced to 'kubectl', the command-line tool for interacting with the Kubernetes cluster, and the process of configuring it to connect to the newly created cluster.

10:02

πŸ›  Kubernetes Deployment and Pod Management

The script dives into deploying a website on Kubernetes by creating pods, which are the basic units of deployment in Kubernetes, analogous to containers in Docker. It details the process of using 'kubectl run' to create a single pod for the coffee website and explains how to scale up the deployment to multiple pods using a deployment file. The deployment file is a YAML manifest that describes the desired state for the application, including the number of replicas, container images, and port configurations. The video also covers how to update the deployment to change the number of pods and the container image, demonstrating Kubernetes' ability to manage and scale applications efficiently.

15:02

πŸ”„ Kubernetes Service to Expose Applications

This section discusses the concept of 'Services' in Kubernetes, which are used to expose applications running in pods to the outside world. It explains how to create a service definition in a YAML file and apply it to create a load balancer service that distributes traffic across multiple pods. The service uses selectors to identify which pods to load balance based on labels, allowing for automatic scaling and distribution of traffic. The video demonstrates how to create a service for the coffee website, verify its operation, and access the website through the service's external IP address.

20:02

πŸ›‘ Updating and Scaling the Kubernetes Deployment

The script covers the process of updating the coffee website deployment in Kubernetes, which includes scaling the number of pods from 10 to 20 and updating the Docker image to a new version. It shows how to edit the deployment file, apply the changes, and verify that the new pods are created and the old ones are terminated. The video emphasizes the ease of updating applications in Kubernetes by simply changing the deployment file and the image, which automates the rollout of updates across all pods.

25:02

πŸ“š Conclusion and Further Learning Resources

The final paragraph wraps up the video with a summary of what was learned about Kubernetes and its capabilities for container orchestration. It provides recommendations for further learning, including a Pluralsight course and the book 'Kubernetes in Action'. The video also encourages viewers to clean up their resources to avoid incurring charges and to explore Kubernetes further, whether in the cloud or on their own machines using 'minikube'. The host invites viewers to share their thoughts and experiences with Kubernetes and to engage with the content by liking, subscribing, and using the provided links for more resources.

Mindmap

Keywords

πŸ’‘Kubernetes

Kubernetes is an open-source container orchestration system for automating application deployment, scaling, and management. In the video, Kubernetes is presented as a solution to manage multiple Docker containers efficiently. It is emphasized as a tool that can deploy hundreds of containers with a single command, which is crucial for handling large-scale applications like the hypothetical 'network chuck coffee' website featured in the script.

πŸ’‘Docker

Docker is a platform that uses containerization technology to develop, deploy, and run applications. In the context of the video, Docker is used to create isolated environments for each part of the coffee website. The script mentions Docker's benefits, such as better resource utilization, and its seamless integration with Kubernetes for container management.

πŸ’‘Container Orchestration

Container orchestration refers to the automation of container deployment, scaling, and management. The video script highlights the complexity of manually managing multiple containers and how Kubernetes serves as a container orchestration tool to simplify these processes. It is a key concept that underpins the video's narrative about scaling the coffee website efficiently.

πŸ’‘Load Balancer

A load balancer is a service that distributes network or application traffic across multiple servers to ensure no single server becomes overwhelmed. In the script, the need for a load balancer arises when the coffee website's traffic increases, causing the initial server to crash. Kubernetes automates the setup and management of load balancers to distribute traffic across multiple containers or pods.

πŸ’‘Pod

In Kubernetes, a pod is the smallest deployable unit that can contain one or more containers. The script explains that when deploying a container in Kubernetes, it is actually deployed within a pod. Pods are a fundamental concept in Kubernetes, allowing for the management of containers as a single entity.

πŸ’‘Deployment

A Kubernetes deployment is a strategy to define the desired state of a set of pods. The video script uses the term 'deployment' to describe how Kubernetes ensures that a specified number of pod replicas are always running. It demonstrates the power of Kubernetes in maintaining the desired state of the application deployment.

πŸ’‘Service

In Kubernetes, a service is an abstraction that defines a logical set of pods and a policy by which to access them. The script introduces the concept of a service to expose the coffee website to the internet, allowing external traffic to reach the pods through a load balancer. It's a critical component for making applications accessible outside the Kubernetes cluster.

πŸ’‘Node

A node in Kubernetes is a worker machine in the cluster that runs pods. The video script mentions nodes in the context of distributing pods across multiple worker nodes to ensure the application's scalability and reliability. It is an essential part of the Kubernetes architecture for running applications.

πŸ’‘Master Node

The master node in Kubernetes is responsible for maintaining the cluster state and the control plane. The script refers to the master node as the 'boss' that manages all worker nodes and ensures the desired state of the pods and services is maintained. It is central to the orchestration process managed by Kubernetes.

πŸ’‘Manifest

In Kubernetes, a manifest is a file that describes the desired state for resources in a cluster. The video script uses the term 'manifest' to describe YAML files that define how Kubernetes should create and manage pods, deployments, and services. Manifests are crucial for declaring the configuration and desired state of the application components.

πŸ’‘Scale

Scaling in the context of Kubernetes refers to the process of increasing or decreasing the number of replicas of a pod or set of pods. The script demonstrates the ease of scaling the coffee website by changing the number of replicas in the deployment manifest, illustrating Kubernetes' ability to handle varying load demands.

Highlights

Kubernetes can deploy 100 Docker containers with a single command, showcasing its efficiency for handling large-scale deployments.

The video provides a free lab environment for learning Kubernetes, thanks to a partnership with the sponsor Linode.

Kubernetes solves the problem of managing multiple Docker containers, especially under high traffic conditions.

The tutorial walks through the process of setting up a Kubernetes cluster on Linode, simplifying the typically complex setup.

Kubernetes is introduced as a container orchestrator that works alongside Docker to enhance its capabilities.

The video demonstrates the installation of Kubernetes components on worker nodes, including kube-proxy and kubelet.

The role of the Kubernetes master node is explained, highlighting its function in controlling and managing the cluster.

The kubeconfig file is shown as a crucial component for connecting to a Kubernetes cluster.

The video shows how to use kubectl, the Kubernetes command-line tool, to interact with the cluster.

Creating a pod in Kubernetes is demonstrated, emphasizing the similarity to Docker commands.

The concept of a deployment in Kubernetes is introduced for managing multiple instances of a pod.

Desired state configuration in Kubernetes is explained, showing how it maintains the specified number of pods.

The video illustrates how to scale the number of pods up or down by modifying the deployment file.

Service creation in Kubernetes is shown, detailing how to expose pods to the internet with a load balancer.

Updating a website in Kubernetes is demonstrated, highlighting the ease of rolling out updates across all pods.

The importance of cleaning up Kubernetes resources after use is emphasized to avoid unnecessary charges.

The video concludes with resources for further learning about Kubernetes and Docker.

The presenter encourages viewers to learn by teaching, highlighting the benefits of creating content after learning new technologies.

Transcripts

play00:00

you need to learn kubernetes right now

play00:02

but why

play00:03

well kubernetes can deploy 100 docker

play00:05

containers with one command

play00:08

[Music]

play00:10

in this video i'm going to teach you

play00:11

kubernetes we're going to walk through

play00:13

what it is

play00:13

how do you use it and you'll even get a

play00:15

chance to lab this up for free thanks to

play00:17

our sponsor lenode they're giving you a

play00:18

hundred dollar credit for 60 days

play00:20

so check that out link below i'm going

play00:21

to walk you through a lab in lenode all

play00:24

right

play00:24

let's do this kubernetes kubernetes

play00:27

k-8s however you say it it's amazing

play00:30

because it solves a huge problem we have

play00:32

with docker containers or any kind of

play00:33

container like let me show you because

play00:34

you and i we're gonna create a

play00:36

a website a coffee website we're gonna

play00:38

sell network chuck coffee

play00:40

and we're gonna deploy it on a docker

play00:41

container why because docker docker's

play00:43

awesome isolated environment better

play00:45

resource utilization all kinds of stuff

play00:46

if you want to learn more if you have no

play00:48

idea what that is

play00:49

go watch this video right here you'll

play00:50

want to know more about docker before

play00:52

you

play00:52

try and learn about kubernetes because

play00:53

they go hand in hand so i'll deploy my

play00:56

website in our docker container

play00:57

let's go check it out there it is

play00:59

beautiful so professional i mean gosh

play01:02

who professionally designed this and

play01:04

guess what people are buying our coffee

play01:05

like crazy the website's doing so great

play01:08

a little too great actually we're

play01:10

getting so much traffic to our site

play01:12

that it can't handle it it's crashing

play01:14

not only that but the host it's running

play01:16

on

play01:16

it's gone down a few times we've had a

play01:18

few outages so what do we do about that

play01:20

how do we solve it

play01:21

pretty simple right let's set up another

play01:23

host so we get another one

play01:24

so we set up our second container

play01:26

running another host and with docker

play01:27

it's so easy just

play01:28

one easy command boom and done but hold

play01:32

up we're not done yet because we have to

play01:33

make sure that when people

play01:34

hit network shock dot copy when they

play01:36

visit the website that it could go to

play01:37

this server or this server we typically

play01:40

do that with a load balancer so we have

play01:41

to you know figure out how to do a load

play01:42

balancer

play01:43

so we throw that in there okay we're

play01:45

awesome both servers are being used

play01:46

because they're load balanced

play01:47

if one goes down one's still up we're

play01:49

solid

play01:50

well we were because now people they

play01:52

love our coffee man they're they're

play01:54

visiting the website like crazy we're

play01:55

getting so many

play01:56

views and visits and purchases it's

play01:59

almost like we're putting something in

play02:00

it

play02:00

and our servers can't handle it they're

play02:02

crashing again

play02:03

so what do we do we keep scaling out

play02:05

this time we're gonna be prepared so

play02:06

we're going to add not

play02:08

one server but two servers but now the

play02:11

process is kind of getting cumbersome i

play02:12

have to go in and set up another

play02:14

container on that server and then on

play02:16

this new server and oh dang it i have to

play02:18

set up the load balancer to load balance

play02:20

between all these guys so i gotta set

play02:21

that up so we're gonna add these suckers

play02:22

in there

play02:23

okay we should be good now right wrong

play02:25

turns out we're the amazon and coffee

play02:27

we're awesome

play02:28

and we have to add a ton more servers a

play02:30

ton more containers we're talking

play02:31

just astronomical numbers business is

play02:34

good so i have to set up and install

play02:36

all those machines and now i have two

play02:37

more little balancers to handle

play02:38

everything

play02:39

this is too much i can't do this oh crap

play02:42

i have to update my website now we got

play02:44

some new coffee which is great

play02:45

but we have to make a change to every

play02:47

one of our containers in every one of

play02:48

our servers okay

play02:50

i'm done i got two options i can either

play02:52

hire another engineer to do this for me

play02:54

because i'm done with this

play02:55

or i need another solution i need to

play02:57

somehow automate this or

play02:59

hmm maybe orchestrate this somehow maybe

play03:02

some kind of container orchestration

play03:04

know any good ones

play03:05

what about kubernetes let's try that

play03:07

this is where kubernetes comes in

play03:09

it will handle all this junk for us so

play03:11

let's call it kubernetes say you know

play03:12

man i need some help we're starting over

play03:14

i can't do this anymore can you help us

play03:16

and he can now we scaled back a bit just

play03:18

to start so we have our three servers

play03:20

here

play03:20

now the good news is that part of the

play03:21

setup is already done kubernetes is a

play03:23

container orchestrator so

play03:25

we're still going to have our servers

play03:26

and we'll still need some type of

play03:28

container runtime which in our case will

play03:30

be docker it could be something else

play03:31

container

play03:32

d rocket or whatever so just so you know

play03:34

to clear that up

play03:35

it's not kubernetes or docker it's yes

play03:37

both we're gonna use both

play03:39

kubernetes is gonna help us make docker

play03:41

better so what do we do where do we

play03:42

start we first introduce a new server

play03:44

someone who's going to call the shots

play03:46

our master this guy

play03:47

he's the boss he calls the shots with

play03:49

all these servers

play03:50

he tells them what to do keeps them in

play03:52

line make sure they're not acting up now

play03:53

we do need to make our servers part of

play03:55

the team part of the workforce

play03:56

so we'll install kubernetes on these

play03:58

servers that's going to involve two

play03:59

components we'll have our cube

play04:01

proxy and our cubelet

play04:04

i love the names with those two

play04:06

components installed along with their

play04:07

container runtime which in our case is

play04:08

docker

play04:09

they are now part of the team they are

play04:11

team kubernetes

play04:13

they are now worker nodes now what these

play04:15

components do we'll cover here in a

play04:16

moment

play04:17

but just know it's a way for the master

play04:18

to control them and make all this

play04:20

kubernetes goodness happen

play04:21

now the master he's a server just like

play04:23

these guys right here but he's got some

play04:25

special components some special roles

play04:27

that we gave him these are his four jobs

play04:29

or his four components and we'll cover

play04:30

that here in a moment but for now

play04:32

i don't know about you but i want to do

play04:33

something theory is fun until it's not

play04:35

so let's actually

play04:36

start making this let's take our network

play04:38

chuck copy website and let's let's

play04:40

orchestrate it now hold on one second

play04:41

typically

play04:42

setting up kubernetes is kind of hard so

play04:44

in our environment here we have four

play04:46

servers

play04:46

we have our master server which we have

play04:48

to install those four components

play04:50

making it the kubernetes master and then

play04:52

we have our three servers here which are

play04:53

our worker nodes where our

play04:55

containers will run we'll install docker

play04:57

the cube proxy and the cubelet

play04:59

again it's kind of a not really

play05:00

straightforward process but

play05:02

i do have good news for you we have an

play05:04

easier way you see kubernetes is big in

play05:06

the cloud

play05:07

many cloud providers have kubernetes

play05:08

baked in and it's really easy to get it

play05:10

set up

play05:11

one of those is lenode the sponsor of

play05:13

this video and through their cloud

play05:14

platform we can go in there and create a

play05:16

kubernetes cluster this is called a

play05:17

cluster

play05:18

basically for free they give you a

play05:19

hundred dollar credit to use for the

play05:21

first 60 days

play05:22

and you can go crazy well not too crazy

play05:25

and then make it so stupid simple let's

play05:27

go

play05:27

do it right now so go ahead and use my

play05:29

link below get signed up and logged in

play05:31

and we'll go through this right now so

play05:32

once you're in la node on the left

play05:34

side here we have a panel if you scroll

play05:36

down just a little bit you'll see

play05:37

right here there it is kubernetes hit

play05:40

that click it

play05:41

and they want us to add our first

play05:42

kubernetes cluster let's do that so

play05:44

we'll click create

play05:45

let's label it it's just a name we're

play05:46

going to give it i'll name my network

play05:48

coffee where do i want it to be i want

play05:50

it to be close to me so in dallas

play05:52

and then version i'll just select the

play05:54

latest version 1.17

play05:55

and now we're on to how many servers do

play05:57

we want how many worker nodes do we want

play05:59

to have in our cluster

play06:00

for my lab i'm going to go with the

play06:01

smaller version the node 2 gigabytes

play06:03

i'm going to add three worker nodes by

play06:05

hitting that plus sign right there

play06:07

keeping in mind it will be ten dollars a

play06:08

month so kind of do that math with your

play06:10

100

play06:11

credit you have so click on add to add

play06:13

those three notes to my cluster

play06:14

and as i scroll down and get my cluster

play06:16

summary three worker notes 30 bucks a

play06:18

month that's what i'm doing i'll click

play06:20

create cluster

play06:21

and now we wait coffee break let's enjoy

play06:24

our product

play06:24

all right if i scroll down to the bottom

play06:26

here my three nodes are ready they're

play06:27

running

play06:28

awesome now hold on a second though i

play06:30

see one two

play06:31

three worker nodes uh where's my

play06:35

master node where is it this is what's

play06:37

cool about doing kubernetes on lenode in

play06:39

the cloud you pay for everything you use

play06:41

which is a great model so i've got my

play06:43

three worker nodes and

play06:44

those are costing me ten dollars a month

play06:45

so you would probably assume that with

play06:47

our master node that would be another

play06:48

server that would cost us 10

play06:49

a month no good guy lenode says you know

play06:52

what don't worry about that

play06:53

we're going to throw in the master for

play06:54

free which is super cool but still

play06:56

where uh where is he how do we use them

play06:59

well if you look at this

play07:00

link right here this url the kubernetes

play07:03

api endpoint

play07:04

that's him that's our master looking

play07:06

back at the master components one of his

play07:08

components is the kubernetes api server

play07:10

that's one of the big ones that we care

play07:11

about because that's how we talk to our

play07:13

master

play07:14

that's how we tell him what to do i mean

play07:15

he's the master but we're the master

play07:17

master

play07:17

we're the master of masters okay cool

play07:19

the kubernetes api servers how we

play07:21

communicate with them but then how do we

play07:23

use that it's really easy actually so

play07:26

there's a tool we can install on any

play07:28

machine really i think it's available

play07:29

for windows mac and of course linux it's

play07:31

a tool called

play07:32

cube ctl or cube cuddle it's a command

play07:36

line tool that when we install it

play07:38

we can then run our commands very very

play07:40

similar to docker

play07:41

and make things happen tell our master

play07:43

what to do and then he tells the worker

play07:44

nodes

play07:44

what to do so let's get that cube cuddle

play07:47

set up so here we're going to install it

play07:48

on linux so i've got my kali linux going

play07:50

you can use ubuntu or whatever you want

play07:52

to use

play07:52

first we'll download the latest release

play07:54

of cube ctl or cuddle

play07:56

cube cuddle i have that link and these

play07:57

steps in the description below so go

play07:59

ahead follow that paste that in there

play08:01

i'll hit enter and it downloads the

play08:03

release if i hit ls

play08:05

to list my files and directories there

play08:07

it is right there cube cuddle

play08:08

next we want to make sure that file is

play08:10

executable so i'll use the command chmod

play08:12

for change modification

play08:14

and then i'll do plus x to make it

play08:16

executable and i'll do period forward

play08:18

slash

play08:19

cube ctl that's the file we're going to

play08:22

be editing right now and

play08:23

done and then i'll move that command to

play08:25

my path this is important if you want to

play08:27

be able to use it

play08:28

so we'll do sudo mv remove dot forward

play08:31

slash cube ctl that same file we're

play08:33

looking at

play08:34

and move that to the forward slash user

play08:36

slash local

play08:37

slash bin slash cube ctl

play08:41

and hit the enter button put in your

play08:43

pseudo password

play08:45

and done so cube cuddle is installed but

play08:47

how do we access our new cluster we

play08:48

created in lenode

play08:50

let's do it real quick get back to your

play08:51

lenode dashboard

play08:53

and we scroll up to right here we see

play08:55

cube config it's a yaml file and it

play08:57

gives us

play08:57

all the information we need to know to

play08:59

connect to our cluster here you can

play09:00

either download the file or do what i'm

play09:02

going to do right now

play09:03

and that's open up this little paper

play09:04

looking thing here and look at the code

play09:06

i'm going to copy mine so i'll hit copy

play09:09

and then i'll get back to my linux box

play09:10

my cali

play09:11

box and we'll create our cube config

play09:13

file i'm going to use nano to

play09:15

create that new file so i'll hit nano

play09:17

and then cube

play09:20

config.yaml.yaml

play09:21

i'll paste that in there hit control x

play09:24

and then y

play09:24

to save and then one last command to get

play09:27

this ready we'll use a command

play09:28

export cube config all uppercase

play09:32

equals that file cube config config.yaml

play09:37

done so you're done you're able to

play09:38

connect to your cluster and and do stuff

play09:40

but

play09:42

what do we do now let's try it out so

play09:43

the first command we're going to do is

play09:44

we're going to look at our worker nodes

play09:46

make sure they're there okay alive are

play09:48

you guys okay it'll be cube ctl

play09:51

get nodes this is going to get the 411

play09:54

on our worker nodes that we just created

play09:55

in lenode let's check it out there they

play09:58

are awesome

play09:59

there's their names they are ready only

play10:01

24 minutes old so

play10:02

young let's enter one more we'll do cube

play10:05

ctl

play10:06

cluster dash info and we get some cool

play10:08

information right here cube dns we're

play10:10

not going to cover that right now but

play10:11

there's our master right there i told

play10:12

you that was the master

play10:13

okay so now we have our kubernetes

play10:15

cluster ready the master the worker

play10:17

nodes

play10:17

we even have our workstation ready we

play10:19

have the cube cuddle or cube ctl

play10:21

tool installed so we can communicate and

play10:22

talk to our master through the

play10:24

kubernetes api server

play10:27

but what do we do now how do we deploy

play10:29

our website that was the whole

play10:31

point right like how do we solve our

play10:32

problems the good news is that it's very

play10:34

very similar to docker we'll use a

play10:35

command

play10:36

that looks like this cube ctl and we'll

play10:38

say run

play10:40

just like our docker run command and

play10:41

we'll create our container now hold on

play10:43

one second

play10:44

i got to add one more term for you to

play10:45

know when we create a container in

play10:46

kubernetes

play10:47

we're creating something called a pod

play10:50

and inside that pod

play10:51

we have our container so when you think

play10:53

about kubernetes think about pods

play10:54

as containers now technically the

play10:56

containers are inside the pods and you

play10:58

can even have

play10:59

multiple containers inside these pods

play11:01

like we could add another one and

play11:02

another one

play11:03

but typically you'll have one container

play11:06

per pot which sounds weird i know but

play11:08

let's create one real quick

play11:09

the command will be cube ctl run like i

play11:12

just said i'll name my pod just name it

play11:14

network chuck coffee

play11:15

and then i'll specify my docker image

play11:17

that i'm going to use so i'll do

play11:19

image equals and then the image i'm

play11:21

going to pull down which if you're going

play11:22

to follow along it'll be this image

play11:24

right here

play11:24

it'll be the network chuck ford slash

play11:28

nc coffee and then colon pour over

play11:31

and then we'll open up ports dash dash

play11:33

port equals 80.

play11:35

the website port you know http so we'll

play11:37

do that real quick and

play11:39

go created done

play11:42

if we use a command cube ctl git pods

play11:46

we see it's happening right now so the

play11:47

container is creating inside that pod

play11:50

let's do it again just kind of oh it's

play11:51

done it's running

play11:53

but it's just done we just created our

play11:56

first

play11:56

kubernetes pod running our container our

play11:58

website which seems

play11:59

weird and kind of confusing i know trust

play12:01

me but looking back at our diagram this

play12:03

is what happened

play12:04

using cube ctl we said hey master i want

play12:06

you to run with this i want you to

play12:08

create

play12:08

a container for me which i know will be

play12:10

inside a pod so i said cube ctl run blah

play12:12

blah do this

play12:13

and he did using his scheduler component

play12:15

he goes hmm which one of my

play12:17

worker nodes gets this pod you know what

play12:19

this guy right here he's not doing

play12:20

anything hey hey roger

play12:22

hold him roger roger i want you to run

play12:24

this application

play12:25

go and he did now i want to look inside

play12:27

this pod i want to see what's going on i

play12:28

want to know

play12:29

so looking back at our linux box we can

play12:31

use a command called describe

play12:33

it'll be cube ctl describe and we'll

play12:36

just put in pods

play12:37

and let's see what happens boom we get

play12:40

the whole low down on what this guy's

play12:41

doing

play12:42

a lot of information we got the name

play12:43

network chuck coffee we got his ip

play12:45

address

play12:46

every pod is assigned its own ip address

play12:48

notice it's not public it's a private ip

play12:50

address

play12:51

in fact it's so private it's only

play12:52

accessible from kubernetes

play12:55

nodes we'll talk more about that here in

play12:56

a second and all this stuff above this

play12:57

line was more pod information below here

play12:59

we

play13:00

now have our container information so

play13:01

the container is network.coffee there's

play13:02

the id

play13:03

the image that we pulled down the ports

play13:05

that are open and a bunch of other stuff

play13:08

logs and such it's great now for our

play13:09

coffee company we don't want to only

play13:11

deploy one container or one pod

play13:13

we want to deploy a bunch how do we do

play13:15

that with kubernetes that's what he's

play13:17

supposed to do right

play13:18

let me show you so what we just used the

play13:19

cube ctl run command

play13:21

that's more for like ad hoc like let me

play13:22

just create a pod real quick

play13:24

we're now going to try something more

play13:26

more powerful

play13:27

more organized more intentional it's

play13:29

called a deployment with our deployment

play13:31

we're going to say hey

play13:32

master i don't only want just one pod

play13:36

i want three three of what one want

play13:37

three network coffee websites and i want

play13:40

port 80 open now the deployment instead

play13:42

of just

play13:42

telling him in one command i want this

play13:44

to happen we'll actually describe what

play13:45

we want to happen in a file and we'll

play13:47

tell them to look at that file and i've

play13:48

already got the file built out let's go

play13:50

look at it real quick

play13:50

this is our deployment file it's a yaml

play13:52

file just like our

play13:54

cube config earlier these files that

play13:56

describe how

play13:57

kubernetes can create our pods and

play13:59

design our infrastructure we often call

play14:01

these manifest

play14:02

notice that kubernetes is all very uh

play14:04

ship themed the word kubernetes is

play14:06

actually the greek word for

play14:07

a helmsman or a captain a person who

play14:09

steers the ship and of course

play14:11

ship manifest things like that so it's

play14:13

all very nautical

play14:14

and this particular manifest the kind is

play14:16

obviously going to be a deployment

play14:18

so here in this file just a few things

play14:19

i'll show you real quick we named it

play14:21

this is going to be a deployment

play14:22

the app will be named nc coffee replicas

play14:26

how many of these suckers do we want out

play14:27

there we specified right here

play14:29

we want three and then down here we're

play14:30

specifying what container we want to use

play14:32

we're naming our container nc coffee and

play14:33

then there's our container that we're

play14:34

pulling from the docker hub

play14:36

and then of course we want to use port

play14:37

80 because that's the website port

play14:39

so here's what we're going to do we're

play14:40

going to copy all this mess i'll have

play14:42

that a link to the file below we're

play14:44

going to hop back into our terminal here

play14:45

in linux

play14:46

i'll create the file do nano nc

play14:50

coffee deployment you can name here

play14:51

whatever you want to name it dot yaml

play14:54

and then i'll paste that stuff in there

play14:55

and then control x y

play14:57

enter to save and it's ready and the

play14:58

command is very simple now before we do

play15:00

this i want to delete our pod that we

play15:01

had earlier because if i do

play15:03

cube ctl get pods he's still sitting

play15:06

there let's delete him real quick so

play15:07

i'll do a cube ctl

play15:09

delete pods and i'll just specify his

play15:13

name network chuck

play15:15

coffee and he's gone i do get pods again

play15:20

he sure is gone so now let's deploy our

play15:22

deployment

play15:23

the command will be cube ctl apply

play15:27

dash f and then we'll specify that file

play15:29

name nce

play15:31

coffee deployment dot yaml

play15:35

and that's it i mean it's pretty simple

play15:37

right all the work all the know-how is

play15:38

in that file

play15:39

and i'll hit enter done

play15:42

so if i do real quick i want to go fast

play15:44

cube ctl

play15:45

get pods look they're creating

play15:49

so and they're already done they're

play15:51

already done okay cool and just like

play15:53

that three containers

play15:54

three pods created and here's the cool

play15:56

part about kubernetes it's the concept

play15:57

of desired state that manifest file that

play16:00

deployment

play16:00

is saying hey kubernetes uh master i

play16:03

want there to always be

play16:04

three pods with this image running

play16:07

always

play16:08

not two not four not twelve i want three

play16:12

and he will constantly make sure that's

play16:13

the case be going okay

play16:15

does that manifest out okay yeah okay

play16:17

we're good and he's always making sure

play16:18

it's that state our desired state now if

play16:21

you were to change that manifest file

play16:22

we can like let's say you know three

play16:24

isn't cutting it for me anymore i want

play16:25

i want 10. let's do 10. we can edit that

play16:27

first let me do ctrl l to clear it out

play16:29

here

play16:30

i'll do cube ctl edit deployment and

play16:33

whatever we named our deployment which i

play16:34

believe was

play16:35

nc coffee deployment is that what it was

play16:39

no that's not what it was let me do a

play16:40

cube ctl get deployments

play16:42

there it is right there that's another

play16:44

cool command right we can see our

play16:45

deployment right there three up to date

play16:46

three available

play16:47

awesome so now let's actually edit it

play16:49

ctl

play16:50

edit network chuck coffee dash

play16:53

deployment oh i gotta specify

play16:55

deployment there so let's scroll down to

play16:58

the replicas right here i'm gonna hit i

play17:01

to

play17:02

insert and start editing i'll delete the

play17:04

three and let's put in 10.

play17:06

so this is going to be vi not nano so

play17:07

i'll hit escape

play17:09

colon wq to write and quit and enter

play17:13

it's been updated so let's let's do this

play17:15

real quick cube ctl get

play17:18

pods it already started creating them

play17:20

look at that

play17:22

that's amazing right and just like that

play17:24

10 pods

play17:25

running because the the commander the

play17:28

helmsman kubernetes

play17:30

the master he was like oh we got to

play17:31

update a manifest let me check it out

play17:33

oh g willow curse we need 10. he talks

play17:35

like that we need 10 of these

play17:37

these 10 going right now and he does it

play17:40

now

play17:40

10 we only have three servers right like

play17:43

we

play17:44

looking back at our diagram here we have

play17:45

three servers

play17:47

how can we have 10 containers and pods

play17:49

well that's the thing you can have a

play17:51

bunch of pods

play17:52

of the same type on one node that's fine

play17:55

that's part of the scheduler's job

play17:56

the master with a scheduler component

play17:58

will look at all his worker nodes

play18:00

figure out how busy they are and assign

play18:02

things give them jobs

play18:03

again if roger's over there just kind of

play18:05

chilling out he goes hey you know roger

play18:06

can afford to

play18:07

do a few extra things i'm going to give

play18:09

him something another cool view of our

play18:10

pods is a

play18:11

cube ctl and get pods

play18:14

dash oh and wide and we can see their

play18:17

name and their ip address

play18:19

and what server they're running on or

play18:20

what worker node they're uh they're

play18:22

running on so notice this guy right here

play18:23

he's running on

play18:24

blah blah the end of its 233 this guy's

play18:28

running on blah blah blah the end of

play18:29

it's 712 and they're all distributed

play18:30

kind of evenly right and it's the job of

play18:32

the masternode

play18:33

to keep monitoring that process to make

play18:35

sure that any one worker node isn't

play18:37

overworked and if they are overworked

play18:39

he'll take away

play18:40

those pods they'll say hey you know what

play18:41

you're too busy let me take some of that

play18:42

work off you he'll remove the pod and

play18:44

then give it to someone else

play18:45

now we still have a problem here though

play18:47

things are awesome actually we

play18:48

we ran our deployment and we've got a

play18:50

million pods out there 10

play18:52

but every one of these pods has an

play18:54

internal ip address an ip address that

play18:56

we

play18:56

can't access like like we can't go to

play18:58

our web browser and and put the ip

play19:00

address then it won't happen like right

play19:01

now your stuff

play19:02

your website our website cannot be

play19:04

accessed how do we fix that

play19:06

well we have to expose it this is where

play19:08

the true power of kubernetes comes in i

play19:09

know at this point it's like okay chuck

play19:10

i'm not seeing the big picture

play19:12

how is kubernetes helping us with all

play19:13

this stuff we're about to unwrap it here

play19:16

right now

play19:16

it's cool that we can deploy pods like

play19:18

crazy we can even say

play19:19

if our pods start to get stressed out

play19:21

let's say they go over 75 percent of

play19:23

utilization

play19:24

on the cpu i want you to scale out i

play19:25

want you to go from 10

play19:27

to 20 or 20 to 30.

play19:30

the master can monitor the metrics of

play19:33

your your cluster

play19:34

and make sure your website is doing

play19:35

great if your website isn't well then we

play19:37

better get some more stuff going but

play19:38

anyways let's talk about how we can get

play19:39

our website

play19:41

accessible to the outside world so in

play19:42

order for johnny right here to buy our

play19:44

coffee to get to our websites

play19:45

and get to our pods we have to expose

play19:48

them but right now they're not exposed

play19:49

in kubernetes when you want to expose a

play19:51

pod or a group of pods

play19:52

to a network we're going to deploy a

play19:56

service this will expose our pods to the

play19:58

internet like we want

play19:59

and it'll actually be a load balancer so

play20:01

when johnny tries to access it'll hit

play20:03

that service and the service will expose

play20:05

the pods and also

play20:06

load balance between the pots so let's

play20:09

deploy that service right now

play20:10

and just like our deployment our service

play20:12

will be described in a

play20:13

yaml file another manifest basically

play20:16

just a set of instructions to give our

play20:17

master saying hey master

play20:19

make this happen buddy so a few things

play20:20

here real quick the kind it's a service

play20:22

we're naming it coffee service and then

play20:24

down here in the server specs we have

play20:26

what type of service is going to be

play20:27

it's going to be a load balancer we're

play20:29

load balancing port 80 on both the load

play20:30

balancer and the pod

play20:32

website traffic and then here's the

play20:33

important part and the killer thing

play20:34

about this

play20:35

the selector which pods are we going to

play20:38

load balance

play20:39

it'll be any pod that has the app label

play20:41

nc coffee this is important because if

play20:43

you look back at our deployment where we

play20:44

deployed our pods

play20:45

our app label for our pods was nc coffee

play20:47

so any pods that has the app label nc

play20:50

coffee

play20:51

that load balance is going to load

play20:52

balance between those so here here's

play20:54

what's killer about that is that

play20:55

if we create two pods it's going to low

play20:56

balance that as long as it has a label

play20:58

and see coffee

play20:59

if we create 2 000 pods as long as it

play21:01

has the label nc coffee it's going to

play21:03

low balance between those 2 000 pods

play21:05

it's just automatic we don't have to

play21:07

worry about it once we create it so

play21:08

let's do it so just as before i'm going

play21:10

to

play21:10

copy all this code here this yaml and

play21:12

i'll get back into my linux box

play21:14

i'll create a new file nano coffee dash

play21:18

service dot yaml paste that in there and

play21:22

do a control x to save y for yes and get

play21:25

out of there

play21:25

and then we'll apply that service and

play21:26

all we have to do is uh cube

play21:28

ctl just like before we'll do apply

play21:32

dash f to specify our template our

play21:34

manifest

play21:35

and it'll be coffee dash service dot

play21:38

yaml yaml and

play21:41

let's do it now it's doing something

play21:44

very exciting i'm gonna

play21:45

okay i'm just gonna enter this command

play21:47

cube ctl get services

play21:49

this is a service we're looking at now

play21:50

and there it is right there coffee

play21:51

service

play21:53

and it's already done crazy fast now

play21:55

what's cool about this is that it

play21:56

created a load balancer in kubernetes

play21:59

but it also created a load balancer in

play22:00

our cloud provider

play22:02

remember i told you that kubernetes

play22:03

loves cloud providers and then the love

play22:05

goes both ways

play22:06

so when i do this command it actually

play22:08

created what's called a node balancer in

play22:10

lenode let's go check it out real quick

play22:11

in the node i'll go back to my

play22:13

side menu here and right here is a node

play22:16

balancer it's just their their clever

play22:17

name for

play22:18

their load balancers they click on that

play22:20

there it is right there

play22:21

my node balancer was created you see the

play22:23

ip address right there it's the same

play22:24

exact one

play22:25

is what we're seeing here in uh in the

play22:27

kubernetes master the external ip right

play22:29

there and we can see in the lenovo

play22:30

portal in our backend status we have

play22:31

three nodes up which is our three worker

play22:34

nodes but in kubernetes it's load

play22:36

balancing between

play22:37

10 pods let's see if it worked let's go

play22:39

to our website i'm going to copy the ip

play22:41

address

play22:41

open up a new tab and see if it worked

play22:46

bam there's our coffee website being low

play22:48

balance across

play22:49

10 pods in kubernetes it's running it's

play22:52

working it's alive and we can go in here

play22:53

and buy all the coffee we need

play22:55

and so you believe me about the

play22:56

kubernetes stuff i want to show you how

play22:57

to look at that service and verify it's

play22:58

going between your 10

play22:59

pods if we do cube ctl get services

play23:04

and we'll specify our coffee service

play23:08

we'll get the lowdown oh i'm sorry not

play23:09

get

play23:11

describe we want to describe that

play23:13

service so describe

play23:14

services describe is always getting more

play23:16

detail coffee dash service

play23:18

and there's all the beautiful

play23:19

information you want to see about this

play23:21

and then right here

play23:22

our end points these few suckers and

play23:24

then seven more it's going to be low

play23:25

balancing

play23:26

uh four so cool amazing oh now hold on

play23:29

you know what i realized

play23:30

looking at our coffee we get a new

play23:32

coffee in peru decaf and all we have is

play23:34

peru so now we have to update our

play23:35

website

play23:36

not too bad with kubernetes let's try it

play23:38

out real quick we've already got the

play23:39

docker image out there

play23:40

the docker image is ready to go all we

play23:42

have to do is pull it and put it out to

play23:44

our

play23:44

what 10 containers now 10 pods let's do

play23:48

that right now

play23:48

back at our linux box i'm going to edit

play23:50

my deployment so i'll do cube ctl

play23:53

edit deployment and it was network

play23:57

chuck coffee dash deployment why'd i

play23:59

make it so long

play24:01

there we go okay two things i want to

play24:03

change right now

play24:04

first is i want instead of 10 servers

play24:08

i want to go to 20 servers why not

play24:11

and then i'm going to change the image

play24:12

i'm looking for instead of network

play24:14

coffee

play24:15

nc copy colon pour over the new label

play24:18

i'm going to use

play24:19

is vac pot that's our latest version so

play24:22

i'm changing the image it's going to

play24:23

pull from if you want to follow along

play24:24

you can do the same thing right now

play24:26

i'm going to hit escape colon wq to

play24:30

write and quit

play24:30

and hit enter it's been updated it's

play24:33

been edited and what should be happening

play24:34

now is if i do cube

play24:36

ctl get pods i should have

play24:39

a bunch of new pods now see it's

play24:41

creating some new ones and terminating

play24:42

old ones because

play24:43

it's updating the existing ones and now

play24:46

just like that look at that

play24:47

ah it's so crazy so now we have 20 pause

play24:50

the 10 we already had or updated they

play24:54

were killed

play24:54

brought down terminated you're fired and

play24:57

we created 10 new ones

play24:58

with that new image and then we added 10

play25:00

more with that new image

play25:02

and if we look at our load balancer if i

play25:03

do cube ctl

play25:05

get services and i look at my load

play25:08

balancer again so i'll do cube ctl

play25:10

describe services

play25:14

coffee dash service

play25:17

look at that my endpoints it's

play25:19

automatically load balancing between

play25:21

the 20. that's powerful i save myself a

play25:24

lot of time now

play25:25

when i update my website i update it in

play25:27

one place my my docker image

play25:30

and then i just update my manifest file

play25:31

and the rest is history

play25:33

how great how amazing is that let's see

play25:35

if the website works though by the way

play25:36

let's see if our

play25:37

peru decaf has been added so i'll just

play25:40

refresh this page

play25:41

there it is there it is oh my gosh how

play25:44

exciting is that

play25:45

kubernetes truly container orchestration

play25:48

container automation

play25:49

now i just scratched the stinking

play25:51

surface with kubernetes

play25:52

so much i glossed over and so much you

play25:54

can do if you want to dive deeper

play25:56

it's right here on your website first of

play25:58

all if you don't know what a docker

play25:59

container is go watch my video that's a

play26:01

link to that

play26:01

what i use to go a bit deeper with

play26:03

kubernetes is first this pluralsight

play26:04

course

play26:05

by nigel whatever his name is great

play26:08

fantastic check that out and then a book

play26:10

called kubernetes in action it is

play26:12

insanely detailed and amazing go check

play26:14

that out and of course if you want to

play26:16

support more of what i'm doing

play26:17

go check out this is it and support the

play26:20

mission now if you haven't already you

play26:21

can do this lab yourself

play26:23

go sign up for a free account with lenod

play26:24

you get a hundred dollars of credit just

play26:26

to play with and use

play26:27

and you can do this so check it out link

play26:29

below and thanks to lenon for doing that

play26:30

and for sponsoring this video

play26:32

now real quick if you did it already

play26:34

make sure you clean up after yourself

play26:36

and what i mean is you don't want to

play26:37

leave this running

play26:38

open-ended because you'll you'll see a

play26:40

bill if you leave it going forever

play26:42

so what i would do is uh once you're

play26:43

done playing get to your lenovo

play26:45

dashboard

play26:46

go to the kubernetes cluster

play26:49

and you can click your little dots here

play26:52

at the bottom right

play26:53

and say delete you'll see are you are

play26:56

you sure you really want to do this and

play26:58

yeah i do so just put your cluster name

play27:00

in there network copy

play27:02

and click on delete and it goes away it

play27:04

goes away so no more money being charged

play27:06

to you

play27:07

and then also don't forget about the

play27:08

node balancers that will not go away by

play27:10

itself i don't believe so if you go to

play27:12

the

play27:12

left panel here go to node balancers

play27:16

there's the one you should have there

play27:18

same thing click on the dots and click

play27:19

delete and it goes away that node

play27:21

balancer also does cost money i think it

play27:23

it's about 10 bucks a month as well and

play27:24

that's kubernetes uh it's kind of an

play27:27

intense thing to learn because you

play27:28

already have to know about docker

play27:29

containers

play27:30

and then you build on that knowledge by

play27:31

learning about container orchestration

play27:33

which is

play27:34

really cool like it's amazing but it can

play27:36

be very complex now if you want to play

play27:38

with kubernetes more

play27:39

of course you can do that in the cloud

play27:40

most cloud providers have

play27:42

kubernetes built in that's one of the

play27:44

reasons you should learn kubernetes

play27:46

because it makes you more valuable

play27:47

when you're going down that cloud path

play27:49

if you know how to operate and use

play27:51

kubernetes

play27:52

valuable skill but as far as having your

play27:54

own lab you can run kubernetes in your

play27:56

own

play27:57

lab on bare metal servers on virtual

play27:59

machines or even just on your one

play28:00

computer they have what's called mini

play28:02

cube

play28:02

and you can just run kubernetes on one

play28:04

workstation it's pretty cool so there

play28:06

are options but anyways let me know what

play28:08

you think in the comments below let me

play28:09

know if you're able to go through the

play28:10

lab

play28:11

if you think kubernetes is amazing just

play28:13

let me know below i i love seeing your

play28:15

comments and it really encourages me to

play28:16

keep going and keep making videos like

play28:18

this

play28:18

well that's all i got um this video took

play28:20

a lot

play28:22

i had to learn kubernetes from the

play28:23

ground up but it's fun learning new

play28:25

things

play28:25

and i encourage you to do what i did

play28:28

when you learn something new like this

play28:30

turn it around and make a video about it

play28:32

or make a blog post

play28:34

teach someone about it it really two

play28:36

things happen you learn it better when

play28:37

you teach it

play28:38

and also you're helping people you're

play28:40

helping someone else who's coming behind

play28:41

you to

play28:42

learn that same technology and then

play28:44

third kind of bonus it shows

play28:46

future employers that you can first of

play28:49

all communicate and

play28:50

learn something new you're you're hungry

play28:52

for knowledge anyways yeah that's that's

play28:53

really all i got i'm gonna stop talking

play28:54

now

play28:55

um if you haven't already hit that like

play28:56

button if you like the video it does

play28:58

help

play28:58

subscribe notification bell you know all

play29:00

that stuff and

play29:02

if you want to help me do more of this

play29:04

make training make videos

play29:06

make certification stuff check out this

play29:08

is it or hit the join button on the

play29:10

youtube

play29:11

thing below or you know what you can buy

play29:13

some network shut copy because it's a

play29:15

legit

play29:15

thing go to networkchuck.com you can

play29:17

actually

play29:18

go to my real website well guys that's

play29:20

all i got i'll catch you later

play29:26

[Music]

play29:33

you

Rate This
β˜…
β˜…
β˜…
β˜…
β˜…

5.0 / 5 (0 votes)

Related Tags
KubernetesDockerContainerOrchestrationDeploymentAutomationCloudDevOpsTutorialScale