Skip to content

Commit 694c122

Browse files
committed
Fix headers and use figure with caption for diagrams
Signed-off-by: Andrei Kvapil <[email protected]>
1 parent acd8bb1 commit 694c122

File tree

1 file changed

+9
-6
lines changed
  • content/en/blog/_posts/2024-02-22-diy-create-your-own-cloud-with-kubernetes-part-1

1 file changed

+9
-6
lines changed

content/en/blog/_posts/2024-02-22-diy-create-your-own-cloud-with-kubernetes-part-1/index.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ To begin with, let's understand the main advantage of Kubernetes and how it has
3232

3333
It is important to understand that the use of Kubernetes in the cloud and on bare metal differs.
3434

35-
### Kubernetes in the cloud
35+
## Kubernetes in the cloud
3636

3737
When you operate Kubernetes in the cloud, you don't worry about persistent volumes, cloud load balancers, or the process of provisioning nodes. All of this is handled by your cloud provider, who accepts your requests in the form of Kubernetes objects. In other words, the server side is completely hidden from you, and you don't really want to know how exactly the cloud provider implements as it's not in your area of responsibility.
3838

39-
![A diagram showing cloud Kubernetes, with load balancing done outside the cluster](cloud.svg)
39+
{{< figure src="cloud.svg" alt="A diagram showing cloud Kubernetes, with load balancing and storage done outside the cluster" caption="A diagram showing cloud Kubernetes, with load balancing and storage done outside the cluster" >}}
4040

4141
Kubernetes offers convenient abstractions that work the same everywhere, allowing you to deploy your application on any Kubernetes in any cloud.
4242

@@ -46,11 +46,12 @@ Thanks to Kubernetes, virtual machines are now only seen as a utility entity for
4646

4747
This approach is fundamental when using Kubernetes in clouds. The reason for it is quite obvious: the simpler the system, the more stable it is, and for this simplicity you go buying Kubernetes in the cloud.
4848

49-
### Kubernetes on bare metal
49+
## Kubernetes on bare metal
5050

5151
Using Kubernetes in the clouds is really simple and convenient, which cannot be said about bare metal installations. In the bare metal world, Kubernetes, on the contrary, becomes unbearably complex. Firstly, because the entire network, backend storage, cloud balancers, etc. are usually run not outside, but inside your cluster. As result such a system is much more difficult to update and maintain.
5252

53-
![kubernetes on bare metal illustration](baremetal.svg)
53+
{{< figure src="baremetal.svg" alt="A diagram showing bare metal Kubernetes, with load balancing and storage done inside the cluster" caption="A diagram showing bare metal Kubernetes, with load balancing and storage done inside the cluster" >}}
54+
5455

5556
Judge for yourself: in the cloud, to update a node, you typically delete the virtual machine
5657
(or even use `kubectl delete node`) and you let your node management tooling create a new
@@ -66,7 +67,7 @@ There are different approaches to solving this problem, ranging from in-place up
6667
I like the hybrid approach offered by Talos Linux, where your entire system is described in a single configuration file. Most parameters of this file can be applied without rebooting or recreating the node, including the version of Kubernetes control-plane components. However, it still keeps the maximum declarative nature of Kubernetes.
6768
This approach minimizes unnecessary impact on cluster services when updating bare metal nodes. In most cases, you won't need to migrate your virtual machines and rebuild the cluster filesystem on minor updates.
6869

69-
### Preparing a base for your future cloud
70+
## Preparing a base for your future cloud
7071

7172
So, suppose you've decided to build your own cloud. To start somewhere, you need a base layer. You need to think not only about how you will install Kubernetes on your servers but also about how you will update and maintain it. Consider the fact that you will have to think about things like updating the kernel, installing necessary modules, as well packages and security patches. Now you have to think much more that you don't have to worry about when using a ready-made Kubernetes in the cloud.
7273

@@ -130,7 +131,7 @@ The [source](https://github.com/aenix-io/talos-bootstrap/) for that `talos-boots
130131
131132
This script allows you to deploy Kubernetes on bare metal in five minutes and obtain a kubeconfig for accessing it. However, many unresolved issues still lie ahead.
132133
133-
### Delivering system components
134+
## Delivering system components
134135
135136
At this stage, you already have a Kubernetes cluster capable of running various workloads. However, it is not fully functional yet. In other words, you need to set up networking and storage, as well as install necessary cluster extensions, like KubeVirt to run virtual machines, as well the monitoring stack and other system-wide components.
136137
@@ -170,6 +171,8 @@ cozy-telepresence telepresence 4m1s True Rele
170171
cozy-victoria-metrics-operator victoria-metrics-operator 4m1s True Release reconciliation succeeded
171172
```
172173
174+
## Conclusion
175+
173176
As a result, you achieve a highly repeatable environment that you can provide to anyone, knowing that it operates exactly as intended. This is actually what the [Cozystack](https://github.com/aenix-io/cozystack) project does, which you can try out for yourself absolutely free.
174177
175178
In the following articles, I will discuss how to prepare Kubernetes for running virtual machines and how to run Kubernetes clusters at the click of a button. Stay tuned, it'll be fun!

0 commit comments

Comments
 (0)