Skip to content

Commit 8f3435d

Browse files
committed
Add update-your-app tutorial
Add bulleted lists to whatsnext section Fix typos/tags Use numbered list for index.md Fix index page format blue boxes test > cluster-intro fix blue boxes test > cluster-intro Add animations to scale and update fix index indentations tidy up index format fix indentation fix img src paths
1 parent 7d9f201 commit 8f3435d

File tree

8 files changed

+324
-243
lines changed

8 files changed

+324
-243
lines changed

content/en/docs/tutorials/kubernetes-basics/_index.md

Lines changed: 46 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -33,28 +33,49 @@ and when you want, and helps them find the resources and tools they need to work
3333
is a production-ready, open source platform designed with Google's accumulated experience in
3434
container orchestration, combined with best-of-breed ideas from the community.
3535

36-
## Kubernetes Basic Modules
37-
38-
### [1. Create a Kubernetes cluster](/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/)
39-
40-
<!-- {{< figure src="public/images/module_01.svg" class="diagram-small" >}} -->
41-
42-
### [2. Deploy an app](/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/)
43-
44-
<!-- {{< figure src="public/images/module_02.svg" class="diagram-small" >}} -->
45-
46-
### [3. Explore your app](/docs/tutorials/kubernetes-basics/explore/explore-intro/)
47-
48-
<!-- {{< figure src="public/images/module_03.svg" class="diagram-small" >}} -->
49-
50-
### [4. Expose your app publicly](/docs/tutorials/kubernetes-basics/expose/expose-intro/)
51-
52-
<!-- {{< figure src="public/images/module_04.svg" class="diagram-small" >}} -->
53-
54-
### [5. Scale up your app](/docs/tutorials/kubernetes-basics/scale/scale-intro/)
55-
56-
<!-- {{< figure src="public/images/module_05.svg" class="diagram-small" >}} -->
57-
58-
### [6. Update your app](/docs/tutorials/kubernetes-basics/update/update-intro/)
59-
60-
<!-- {{< figure src="public/images/module_06.svg" class="diagram-small" >}} -->
36+
## Kubernetes Basics Modules
37+
38+
<!-- this css code is to preserve the original format -->
39+
<div style="display: flex; flex-wrap: wrap; gap: 20px; justify-content: space-between;">
40+
<div style="width: 30%; text-align: center;">
41+
<a href="/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/">
42+
<img src="/docs/tutorials/kubernetes-basics/public/images/module_01.svg?v=1469803628347" alt="Module 1" style="width: 100%;">
43+
<h5>1. Create a Kubernetes cluster</h5>
44+
</a>
45+
</div>
46+
<div style="width: 30%; text-align: center;">
47+
<a href="/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/">
48+
<img src="/docs/tutorials/kubernetes-basics/public/images/module_02.svg?v=1469803628347" alt="Module 2" style="width: 100%;">
49+
<h5>2. Deploy an app</h5>
50+
</a>
51+
</div>
52+
<div style="width: 30%; text-align: center;">
53+
<a href="/docs/tutorials/kubernetes-basics/explore/explore-intro/">
54+
<img src="/docs/tutorials/kubernetes-basics/public/images/module_03.svg?v=1469803628347" alt="Module 3" style="width: 100%;">
55+
<h5>3. Explore your app</h5>
56+
</a>
57+
</div>
58+
<div style="width: 30%; text-align: center;">
59+
<a href="/docs/tutorials/kubernetes-basics/expose/expose-intro/">
60+
<img src="/docs/tutorials/kubernetes-basics/public/images/module_04.svg?v=1469803628347" alt="Module 4" style="width: 100%;">
61+
<h5>4. Expose your app publicly</h5>
62+
</a>
63+
</div>
64+
<div style="width: 30%; text-align: center;">
65+
<a href="/docs/tutorials/kubernetes-basics/scale/scale-intro/">
66+
<img src="/docs/tutorials/kubernetes-basics/public/images/module_05.svg?v=1469803628347" alt="Module 5" style="width: 100%;">
67+
<h5>5. Scale up your app</h5>
68+
</a>
69+
</div>
70+
<div style="width: 30%; text-align: center;">
71+
<a href="/docs/tutorials/kubernetes-basics/update/update-intro/">
72+
<img src="/docs/tutorials/kubernetes-basics/public/images/module_06.svg?v=1469803628347" alt="Module 6" style="width: 100%;">
73+
<h5>6. Update your app</h5>
74+
</a>
75+
</div>
76+
</div>
77+
78+
## {{% heading "whatsnext" %}}
79+
80+
* Tutorial [Using Minikube to Create a
81+
Cluster](/docs/tutorials/kubernetes-basics/create-cluster/)

content/en/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro.md

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,14 @@ weight: 10
1111

1212
## Kubernetes Clusters
1313

14+
<div class="col-md-8">
15+
<div class="content__box content__box_fill">
16+
<p><i>Kubernetes is a production-grade, open-source platform that orchestrates
17+
the placement (scheduling) and execution of application containers
18+
within and across computer clusters.</i></p>
19+
</div>
20+
</div>
21+
1422
**Kubernetes coordinates a highly available cluster of computers that are connected
1523
to work as a single unit.** The abstractions in Kubernetes allow you to deploy
1624
containerized applications to a cluster without tying them specifically to individual
@@ -29,12 +37,18 @@ A Kubernetes cluster consists of two types of resources:
2937

3038
### Cluster Diagram
3139

32-
{{< figure src="../../public/images/module_01_cluster.svg" class="diagram-medium" >}}
40+
{{< figure src="/docs/tutorials/kubernetes-basics/public/images/module_01_cluster.svg" style="width: 100%;" >}}
3341

3442
**The Control Plane is responsible for managing the cluster.** The Control Plane
3543
coordinates all activities in your cluster, such as scheduling applications, maintaining
3644
applications' desired state, scaling applications, and rolling out new updates.
3745

46+
<div class="col-md-8">
47+
<div style="background-color: #eaf7ff; border-left: 5px solid #3771e3; padding: 15px; margin: 20px 0;">
48+
<p><i>Control Planes manage the cluster and the nodes that are used to host the running applications.</i></p>
49+
</div>
50+
</div>
51+
3852
**A node is a VM or a physical computer that serves as a worker machine in a Kubernetes
3953
cluster.** Each node has a Kubelet, which is an agent for managing the node and
4054
communicating with the Kubernetes control plane. The node should also have tools for
@@ -60,5 +74,5 @@ working with your cluster, including start, stop, status, and delete.
6074

6175
## {{% heading "whatsnext" %}}
6276

63-
Now that you know more about what Kubernetes is, visit [Hello Minikube](/docs/tutorials/hello-minikube/)
64-
to try this out on your computer.
77+
* Tutorial [Hello Minikube](/docs/tutorials/hello-minikube/).
78+
* Learn more about [Cluster Architecture](/docs/concepts/architecture/).

content/en/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ provide a fundamentally different approach to application management.
3636

3737
## Deploying your first app on Kubernetes
3838

39-
{{< figure src="../../public/images/module_02_first_app.svg" class="diagram-medium" >}}
39+
{{< figure src="/docs/tutorials/kubernetes-basics/public/images/module_02_first_app.svg" class="diagram-medium" >}}
4040

4141
You can create and manage a Deployment by using the Kubernetes command line interface,
4242
[kubectl](/docs/reference/kubectl/). `kubectl` uses the Kubernetes API to interact
@@ -110,7 +110,7 @@ we're interacting through an API endpoint to communicate with our application.
110110

111111
We will cover other options on how to expose your application outside the Kubernetes
112112
cluster later, in [Module 4](/docs/tutorials/kubernetes-basics/expose/).
113-
Also as a basic tutorial, we're not explaining what <code>Pods</code> are in any
113+
Also as a basic tutorial, we're not explaining what `Pods` are in any
114114
detail here, it will be covered in later topics.
115115

116116
The `kubectl proxy` command can create a proxy that will forward communications
@@ -158,4 +158,5 @@ is required which will be explained in [Module 4](/docs/tutorials/kubernetes-bas
158158

159159
## {{% heading "whatsnext" %}}
160160

161-
Once you're ready, move on to [Viewing Pods and Nodes](/docs/tutorials/kubernetes-basics/explore/explore-intro/).
161+
* Tutorial [Viewing Pods and Nodes](/docs/tutorials/kubernetes-basics/explore/explore-intro/).
162+
* Learn more about [Deployments](/docs/concepts/workloads/controllers/deployment/).

content/en/docs/tutorials/kubernetes-basics/explore/explore-intro.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ the cluster.
3737

3838
### Pods overview
3939

40-
{{< figure src="../../public/images/module_03_pods.svg" class="diagram-medium" >}}
40+
{{< figure src="/docs/tutorials/kubernetes-basics/public/images/module_03_pods.svg" class="diagram-medium" >}}
4141

4242
## Nodes
4343

@@ -58,7 +58,7 @@ from a registry, unpacking the container, and running the application.
5858

5959
### Nodes overview
6060

61-
{{< figure src="../../public/images/module_03_nodes.svg" class="diagram-medium" >}}
61+
{{< figure src="/docs/tutorials/kubernetes-basics/public/images/module_03_nodes.svg" class="diagram-medium" >}}
6262

6363
## Troubleshooting with kubectl
6464

@@ -160,7 +160,7 @@ kubectl exec -ti $POD_NAME -- bash
160160
```
161161

162162
We have now an open console on the container where we run our NodeJS application.
163-
The source code of the app is in the i`server.js` file:
163+
The source code of the app is in the `server.js` file:
164164

165165
```shell
166166
cat server.js
@@ -182,6 +182,7 @@ To close your container connection, type `exit`.
182182

183183
## {{% heading "whatsnext" %}}
184184

185-
Once you're ready, move on to
185+
* Tutorial
186186
[Using A Service To Expose Your App](/docs/tutorials/kubernetes-basics/expose/expose-intro/).
187-
187+
* Learn more about [Pods](/docs/concepts/workloads/pods/).
188+
* Learn more about [Nodes](/docs/concepts/architecture/nodes/).

content/en/docs/tutorials/kubernetes-basics/expose/expose-intro.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ Makes a Service accessible from outside the cluster using `NodeIP:NodePort`. Sup
4242
* _LoadBalancer_ - Creates an external load balancer in the current cloud (if supported)
4343
and assigns a fixed, external IP to the Service. Superset of NodePort.
4444

45-
* _ExternalName_ - Maps the Service to the contents of the `externalName` field
45+
* _ExternalName_ - Maps the Service to the contents of the `externalName` field
4646
(e.g. `foo.bar.example.com`), by returning a `CNAME` record with its value.
4747
No proxying of any kind is set up. This type requires v1.7 or higher of `kube-dns`,
4848
or CoreDNS version 0.0.8 or higher.
@@ -73,7 +73,7 @@ pairs attached to objects and can be used in any number of ways:
7373
* Embed version tags
7474
* Classify an object using tags
7575

76-
{{< figure src="../../public/images/module_04_labels.svg" class="diagram-medium" >}}
76+
{{< figure src="/docs/tutorials/kubernetes-basics/public/images/module_04_labels.svg" class="diagram-medium" >}}
7777

7878
Labels can be attached to objects at creation time or later on. They can be modified
7979
at any time. Let's expose our application now using a Service and apply some labels.
@@ -151,7 +151,7 @@ curl 127.0.0.1:51082
151151

152152
And we get a response from the server. The Service is exposed.
153153

154-
### Step 2: Using labels
154+
### Step 2: Using labels
155155

156156
The Deployment created automatically a label for our Pod. With the `describe deployment`
157157
subcommand you can see the name (the _key_) of that label:
@@ -229,11 +229,13 @@ You can confirm that the app is still running with a `curl` from inside the pod:
229229
```shell
230230
kubectl exec -ti $POD_NAME -- curl http://localhost:8080
231231
```
232+
232233
We see here that the application is up. This is because the Deployment is managing
233234
the application. To shut down the application, you would need to delete the Deployment
234235
as well.
235236

236237
## {{% heading "whatsnext" %}}
237238

238-
Once you're ready, move on to
239+
* Tutorial
239240
[Running Multiple Instances of Your App](/docs/tutorials/kubernetes-basics/scale/scale-intro/).
241+
* Learn more about [Service](/docs/concepts/services-networking/service/).

content/en/docs/tutorials/kubernetes-basics/scale/scale-intro.md

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ weight: 10
99

1010
## Scaling an application
1111

12-
Previously we created a [Deployment](/docs/concepts/workloads/controllers/deployment),
12+
Previously we created a [Deployment](/docs/concepts/workloads/controllers/deployment/),
1313
and then exposed it publicly via a [Service](/docs/concepts/services-networking/service/).
1414
The Deployment created only one Pod for running our application. When traffic increases,
1515
we will need to scale the application to keep up with user demand.
@@ -34,13 +34,33 @@ with its `type` set to `LoadBalancer`:
3434
```shell
3535
kubectl expose deployment/kubernetes-bootcamp --type="LoadBalancer" --port 8080
3636
```
37+
3738
{{< /note >}}
3839

3940
## Scaling overview
4041

41-
<div class="figure-container" style="display: flex; gap: 10px; justify-content: center;">
42-
{{< figure src="../../public/images/module_05_scaling1.svg" width="480" >}}
43-
{{< figure src="../../public/images/module_05_scaling2.svg" width="480" >}}
42+
<!-- animation -->
43+
<div class="col-md-8">
44+
<div id="myCarousel" class="carousel" data-ride="carousel" data-interval="3000">
45+
<ol class="carousel-indicators">
46+
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
47+
<li data-target="#myCarousel" data-slide-to="1"></li>
48+
</ol>
49+
<div class="carousel-inner" role="listbox">
50+
<div class="item carousel-item active">
51+
<img src="/docs/tutorials/kubernetes-basics/public/images/module_05_scaling1.svg">
52+
</div>
53+
<div class="item carousel-item">
54+
<img src="/docs/tutorials/kubernetes-basics/public/images/module_05_scaling2.svg">
55+
</div>
56+
</div>
57+
<a class="left carousel-control" href="#myCarousel" role="button" data-slide="prev">
58+
<span class="sr-only ">Previous</span>
59+
</a>
60+
<a class="right carousel-control" href="#myCarousel" role="button" data-slide="next">
61+
<span class="sr-only">Next</span>
62+
</a>
63+
</div>
4464
</div>
4565

4666
Scaling out a Deployment will ensure new Pods are created and scheduled to Nodes
@@ -65,6 +85,7 @@ To list your Deployments, use the `get deployments` subcommand:
6585
```shell
6686
kubectl get deployments
6787
```
88+
6889
The output should be similar to:
6990

7091
```
@@ -158,7 +179,6 @@ Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-644c5687f4-wp67j |
158179
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-644c5687f4-4hjvf | v=1
159180
```
160181

161-
162182
{{< note >}}
163183
If you're running minikube with Docker Desktop as the container driver, a minikube
164184
tunnel is needed. This is because containers inside Docker Desktop are isolated
@@ -208,6 +228,7 @@ This confirms that 2 Pods were terminated.
208228

209229
## {{% heading "whatsnext" %}}
210230

211-
Once you're ready, move on to
231+
* Tutorial
212232
[Performing a Rolling Update](/docs/tutorials/kubernetes-basics/update/update-intro/).
213-
233+
* Learn more about [ReplicaSet](/docs/concepts/workloads/controllers/replicaset/).
234+
* Learn more about [Autoscaling](/docs/concepts/workloads/autoscaling/).

0 commit comments

Comments
 (0)