Revise MVK documentation: replace mermaid diagrams with images, add new sections for single node and three node viability, and enhance the usage slide with additional context.

This commit is contained in:
jon brookes 2025-10-21 15:47:15 +01:00
parent 563e6333dc
commit 072e2998ae
12 changed files with 212 additions and 77 deletions

View file

@ -8,33 +8,10 @@ The **V** in MVK is for *viable*, so why is MVK viable for 3 or more nodes ?
<div class="grid grid-cols-1">
```mermaid
%%{init: {'theme': 'dark', 'themeVariables': { 'darkMode': true }}}%%
flowchart LR
root((3-node))
PS[Persistent Storage]
LH[Longhorn]
ING[Ingress]
TRA[Traefik]
MET[cert-manager]
ETCD[etcd]
KA[keepalived]
root --> PS --> LH
root --> ING --> TRA
ING --> MET
root --> ETCD --> KA
classDef default fill:transparent,color:#fff,stroke:#888
```
<img src="/k8s-3.drawio.png">
</div>
<div v-click>
close to production - storage and multi node
</div>
<!--

View file

@ -8,34 +8,12 @@ The **V** in MVK is for *viable*, so why is MVK viable for single 'dev' nodes ?
<div class="grid grid-cols-1">
```mermaid
%%{init: {'theme': 'dark', 'themeVariables': { 'darkMode': true }}}%%
flowchart LR
root((1-node))
PS[Persistent Storage]
LH[Local attached]
ING[Ingress]
TRA[Traefik]
MET[cert-manager]
ETCD[etcd]
root --> PS --> LH
root --> ING --> TRA
ING --> MET
root --> ETCD
<img src="/k8s-2.drawio.png">
classDef default fill:transparent,color:#fff,stroke:#888
```
</div>
<div v-click>
Locally attached storage - single node implementation
Ingress can represent that of prodution environmetns that use cert-manager
</div>
<!--

View file

@ -0,0 +1,31 @@
# Pre release
<div grid="~ cols-2 gap-4">
<div>
[MVK](https://mvk.headshed.dev) is new and evolving
`infctl` is an early release.
Its a snapshot of ideas I've been working on for over 10 years.
I'd like to share it as I code it and use it.
It is open to ideas, comments, contribution and collaboration.
License: [GNU General Public License](https://www.gnu.org/licenses/gpl-3.0.en.html)
# [https://headshed.dev/n25](https://headshed.dev/n25)
</div>
<div>
<img class="mx-auto" alt="qr code for https://headshed.dev/n25/" src="/n25-qr.png">
</div>
</div>
<!--
TBC
-->

38
pages/make-it-work.md Normal file
View file

@ -0,0 +1,38 @@
---
level: 2
---
# MVK Viablility
### Is MVK, single node, viable ?
<div class="grid grid-cols-1">
<div class="flex justify-center">
<img src="/k8s-2.drawio.png">
</div>
</div>
<!--
why is MVK 'viable' ?
Out of the box K8s examples and some deployments are not useable without other externalities
* Persistent storage - often built in to managed kubernetes cloud platforms
* Ingress - is also provided by cloud providers, K8s does not natively have this
* ETCD is often offered as the 'management plane', again as part of managed kubernetes by cloud providers
K3s does not use k8s traditional 3 node ETCD unless you configure it to do so
MKK's infctl pipelines configure 3 node k3s on all 3 nodes
it also adds Longhorn for persistent storage
ingress is impossible without metallb and some kind of load balancer - traefik being my preference but others could be used, of course
-->

38
pages/out-the-box-node.md Normal file
View file

@ -0,0 +1,38 @@
---
level: 2
---
# K8s Viablility
Is K8s out of the box, self-hosted, viable ?
<div class="grid grid-cols-1">
<div class="flex justify-center">
<img src="/k8s-1.drawio.png">
</div>
</div>
<!--
why is MVK 'viable' ?
Out of the box K8s examples and some deployments are not useable without other externalities
* Persistent storage - often built in to managed kubernetes cloud platforms
* Ingress - is also provided by cloud providers, K8s does not natively have this
* ETCD is often offered as the 'management plane', again as part of managed kubernetes by cloud providers
K3s does not use k8s traditional 3 node ETCD unless you configure it to do so
MKK's infctl pipelines configure 3 node k3s on all 3 nodes
it also adds Longhorn for persistent storage
ingress is impossible without metallb and some kind of load balancer - traefik being my preference but others could be used, of course
-->

36
pages/three-node-happy.md Normal file
View file

@ -0,0 +1,36 @@
---
level: 2
---
# MVK for pre-production
### MVK, three node, production
<div class="grid grid-cols-1">
<div class="flex justify-center">
<img src="/k8s-3.drawio.png" alt="3-node Kubernetes diagram">
</div>
</div>
<!--
why is MVK 'viable' ?
Out of the box K8s examples and some deployments are not useable without other externalities
* Persistent storage - often built in to managed kubernetes cloud platforms
* Ingress - is also provided by cloud providers, K8s does not natively have this
* ETCD is often offered as the 'management plane', again as part of managed kubernetes by cloud providers
K3s does not use k8s traditional 3 node ETCD unless you configure it to do so
MKK's infctl pipelines configure 3 node k3s on all 3 nodes
it also adds Longhorn for persistent storage
ingress is impossible without metallb and some kind of load balancer - traefik being my preference but others could be used, of course
-->

View file

@ -50,6 +50,9 @@ infctl -f pipelines/dev/vagrant-k3s.json
````
[cast](https://ascii.headshed.dev/a/OB2jSE47d1HTz2d5vFhJhIKAl)
<!--
`infctl` has only one compulsory parameter

31
pages/why.md Normal file
View file

@ -0,0 +1,31 @@
# Why ?
* 2025 building a minimal k8s for our own hosting
* asked for an intro for techs getting into k8s
* been working with Linux and Unix from SME to large enterprise since before Y2K
* k8s since 2018
<div v-click>
**I want to ...**
➤ bring down the cost of k8s
➤ pass on what I have learnt
</div>
<div v-click>
➤ not pay vercel
</div>
<!--
-->

BIN
public/k8s-1.drawio.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
public/k8s-2.drawio.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
public/why.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

View file

@ -58,33 +58,21 @@ Jon Brookes 2025
<!--
Welcome
why and why now ?
this is an intro to MVK and why I made it ...
I created it because
My exp
* was building a minimal k8s for our own hosting
* asked for an intro for techs getting into k8s
over 20+ years Unix, Linux, Winodws, internet managed infructure
as I've been working with unix, linux and systems since before Y2K and k8s since 2018 I thought I could have something to say
early linux Xen and KVM, vmware and hyper-v
from 14 moving into containers with docker
2017/18 Swarm, then rapidly to kubernetes
AWS/cloud and vmware/on prem vms, self-hosted
one week deploying self-hosted K8s with kubeadm & ansible
the next week production, on call 24X7 with k8s in the mix
Since then, I worked on managed k8s in Azure and AWS, often with Terraform
I wanted to
so I wanted to
* use my own knowlege to deliver my own self managed k8s
* bring down the cost of k8s
* share what I know and pass it on
* pass on what I have learnt
* not pay vercel
@ -93,6 +81,14 @@ I wanted to
-->
---
layout: image-left
image: why.jpg
transition: fade-out
src: ./pages/why.md
---
---
layout: image-right
image: cont3_c.jpg
@ -192,25 +188,30 @@ transition: fade-out
src: ./pages/usage-slide.md
---
---
transition: fade-out
src: ./pages/diagram-single-node.md
src: ./pages/out-the-box-node.md
---
---
transition: fade-out
src: ./pages/diagram-3node.md
src: ./pages/make-it-work.md
---
---
transition: fade-out
src: ./pages/gcloud-single.md
---
---
transition: fade-out
src: ./pages/three-node-happy.md
---
@ -221,8 +222,10 @@ transition: fade-out
src: ./pages/infctl-summary.md
---
---
transition: fade-out
src: ./pages/infctl-summary-end.md
---
---
layout: center