cluster: OpenShift-first narrative - oc as the command language, scope panel reframed, node investigation via oc describe/debug, generic-model caption on Course II
This commit is contained in:
+14
-7
@@ -32,6 +32,9 @@
|
|||||||
<p>The Exploded Cluster teaches how modern container platforms work by taking them apart,
|
<p>The Exploded Cluster teaches how modern container platforms work by taking them apart,
|
||||||
literally. Each course is one machine drawn as a single exploded illustration, sliced into its
|
literally. Each course is one machine drawn as a single exploded illustration, sliced into its
|
||||||
real components and wired to your scroll, so the architecture moves while the words explain it.
|
real components and wired to your scroll, so the architecture moves while the words explain it.
|
||||||
|
OpenShift is the teaching lens. <span class="mono">oc</span> is the command language. Kubernetes
|
||||||
|
primitives explain the machinery underneath. Occasional lab notes show a separate Kubernetes
|
||||||
|
environment where a concept was observed; they are not a claim that the lab runs OpenShift.
|
||||||
Start with the aperitif's four terminal commands - three that deliver, one that checks - and
|
Start with the aperitif's four terminal commands - three that deliver, one that checks - and
|
||||||
finish knowing how a change travels from a Git commit to a running, secret-fed, digest-pinned workload on a fleet. The library at the end links only to official documentation, so every claim here can be
|
finish knowing how a change travels from a Git commit to a running, secret-fed, digest-pinned workload on a fleet. The library at the end links only to official documentation, so every claim here can be
|
||||||
checked against its source.</p>
|
checked against its source.</p>
|
||||||
@@ -69,10 +72,10 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="prose">
|
<div class="prose">
|
||||||
<p class="aside">A note on the commands: this site uses <span class="mono">oc</span>,
|
<p class="aside">A note on the commands: this site uses <span class="mono">oc</span>,
|
||||||
OpenShift's CLI. The Kubernetes commands here work the same
|
OpenShift's CLI. Examples use <span class="mono">oc</span>, the OpenShift CLI, against
|
||||||
under <span class="mono">kubectl</span>; <span class="mono">oc</span> is a superset, and the
|
Kubernetes API resources - for those, <span class="mono">kubectl</span> behaves identically.
|
||||||
OpenShift-only parts (SCCs, Routes) are its own. Read
|
Where a step needs OpenShift APIs (SCCs, Routes, ClusterOperators, MachineConfig), it will
|
||||||
<span class="mono">kubectl</span> in the docs, type whichever your cluster gives you.</p>
|
not exist on a plain Kubernetes cluster, and the text says so.</p>
|
||||||
<p>That <span class="mono">1/1</span> reads as containers-ready over containers-wanted: a pod
|
<p>That <span class="mono">1/1</span> reads as containers-ready over containers-wanted: a pod
|
||||||
can hold more than one, which is Course IIIb.</p>
|
can hold more than one, which is Course IIIb.</p>
|
||||||
<p>Three of those were delivery actions - build, push, apply, and the
|
<p>Three of those were delivery actions - build, push, apply, and the
|
||||||
@@ -171,6 +174,8 @@
|
|||||||
alt="A small fleet mid-explosion: one wide command slab with a strong cyan seam
|
alt="A small fleet mid-explosion: one wide command slab with a strong cyan seam
|
||||||
hovering above a row of three identical worker blocks, all floating apart in
|
hovering above a row of three identical worker blocks, all floating apart in
|
||||||
the void.">
|
the void.">
|
||||||
|
<figcaption class="fieldnote">Generic OpenShift/Kubernetes cluster model - not a diagram
|
||||||
|
of the homelab.</figcaption>
|
||||||
</figure>
|
</figure>
|
||||||
<ol class="legend"></ol>
|
<ol class="legend"></ol>
|
||||||
</div>
|
</div>
|
||||||
@@ -247,9 +252,11 @@
|
|||||||
runtime, not the kubelet, and kube-proxy, or an eBPF datapath replacing it, makes
|
runtime, not the kubelet, and kube-proxy, or an eBPF datapath replacing it, makes
|
||||||
Service addresses route to real pods.</p>
|
Service addresses route to real pods.</p>
|
||||||
<p class="sayit">The scheduler places the pod. The kubelet realises it. The runtime runs it.</p>
|
<p class="sayit">The scheduler places the pod. The kubelet realises it. The runtime runs it.</p>
|
||||||
<p class="fieldnote"><b>Field note.</b> Node NotReady? The kubelet is a systemd unit
|
<p class="fieldnote"><b>Field note.</b> Node NotReady?
|
||||||
like any other: <span class="mono">journalctl -u kubelet</span> on that node, and check it
|
<span class="mono">oc describe node</span> shows its conditions and the last heartbeat, and
|
||||||
can still reach the api-server. A node that cannot phone home is presumed lost.</p>
|
the node's events say what the platform already knows. When you need the node itself,
|
||||||
|
<span class="mono">oc debug node/<name></span> is the supported doorway - not SSH. A
|
||||||
|
node that cannot phone home is presumed lost.</p>
|
||||||
<p class="closeline">The control plane does not start container processes directly. It records
|
<p class="closeline">The control plane does not start container processes directly. It records
|
||||||
and reconciles intent; node-side components execute it - the kubelet turning intent into
|
and reconciles intent; node-side components execute it - the kubelet turning intent into
|
||||||
instructions, the runtime turning instructions into processes.</p>
|
instructions, the runtime turning instructions into processes.</p>
|
||||||
|
|||||||
@@ -282,6 +282,7 @@ const banned = [
|
|||||||
[/every manifest <span class="mono">include<\/span>s/, "broken 'include s' construction"],
|
[/every manifest <span class="mono">include<\/span>s/, "broken 'include s' construction"],
|
||||||
[/two policies renders from one field/, "subject/verb error 'renders from one field'"],
|
[/two policies renders from one field/, "subject/verb error 'renders from one field'"],
|
||||||
[/grown-up chart/, "'grown-up chart' (use 'production-grade chart')"],
|
[/grown-up chart/, "'grown-up chart' (use 'production-grade chart')"],
|
||||||
|
[/journalctl -u kubelet/, "node-shell instruction (use oc describe / oc debug node)"],
|
||||||
];
|
];
|
||||||
// legend blurbs are inlined into the app JS (the SCENES const), so scan both surfaces
|
// legend blurbs are inlined into the app JS (the SCENES const), so scan both surfaces
|
||||||
const visible = html + "\n" + app;
|
const visible = html + "\n" + app;
|
||||||
|
|||||||
Reference in New Issue
Block a user