Requests lead to node-capacity matching. CPU limits lead to throttling and waiting, while memory limits lead to reclaim and possible OOM.

Requests guide placement; limits constrain resource use

Requests guide placement and resource sharing; limits constrain runtime consumption. They are related inputs, not a universal floor-and-ceiling guarantee for application performance. Choose them from workload behavior, contention risk and recovery requirements. Inspect the admitted Pod because defaults and policy can change the resource values submitted in a manifest. ...

May 27, 2027 · 5 min · XB Field Notes
A client reaches a node-facing NodePort entry only through a usable route and firewall policy; forwarding then targets an eligible backend. Allocation alone does not prove reachability.

NodePort exposes a Service through eligible node addresses

A NodePort Service allocates a cluster-wide port and arranges forwarding through eligible node addresses. It is useful for external load balancers, development environments and deliberately exposed services. It does not make every address on every machine reachable, nor does it promise an application-level listening socket on each node. Network routing, firewalls, proxy implementation and traffic policy remain part of the path. ...

May 11, 2027 · 4 min · XB Field Notes
Eviction API requests pass through a PDB budget gate to selected Pods. Direct deletion, normal rolling updates and failures bypass or are not prevented by that gate. Ready does not prove application quorum.

A PodDisruptionBudget limits eviction-based disruption

A PodDisruptionBudget limits eviction-based disruption for a selected group of Pods. It can help preserve serving capacity or quorum during maintenance, but cannot guarantee either. Its protection depends on the caller using the Eviction API, the selector identifying the intended members, and Ready conditions meaning something useful for the application. ...

April 10, 2027 · 4 min · XB Field Notes
Schematic nodes A, B and C are intended for coverage: A is Ready, B Pending and C a gap; D is intentionally excluded.

A DaemonSet puts one Pod on every eligible node

A Deployment targets a replica count; a DaemonSet targets coverage of eligible nodes. That is useful for node-level log collectors, network agents, and device plugins. A newly eligible node creates reconciliation work, not an immediate guarantee that its agent is running or ready. Selection rules, scheduling, image pulls, startup, and node health can all delay useful coverage. ...

March 29, 2027 · 6 min · XB Field Notes
Six eligible hostname domains each contain one matching peer, while three of nine replicas remain Pending under required hostname anti-affinity with mutually selected peers.

Pod anti-affinity spreads peers away from each other

Pod anti-affinity expresses where a Pod should avoid selected peers. A hostname topology can reduce shared-node exposure; a zone topology can address a broader failure domain. The rule does not create extra capacity or prove application availability. It shapes placement, while replication, readiness, storage, and failure recovery remain separate responsibilities. ...

March 18, 2027 · 5 min · XB Field Notes
Two annotation paths in the article’s Deployment example: top-level metadata preserves the Pod identity; Pod-template metadata changes replace it. Consumers can interpret annotations.

Annotations carry metadata that consumers can interpret

Annotations attach non-identifying metadata to Kubernetes objects. They can record provenance, ownership notes, or information consumed by a tool. Standard label selectors do not select objects by annotation values, but that does not make annotations inert. A controller, admission component, or deployment tool can interpret a documented annotation and change behavior accordingly. Know the consumer before deciding that a metadata edit is harmless. ...

March 10, 2027 · 6 min · XB Field Notes
For untolerated taints, NoSchedule blocks new ordinary scheduling but leaves bound Pods; PreferNoSchedule softly avoids placement and leaves bound Pods; NoExecute blocks new scheduling and can evict bound Pods.

Taints repel pods that do not tolerate them

A taint repels Pods that do not tolerate its effect. A toleration removes that obstacle; it does not force placement onto specialized hardware. Dedicated-node designs usually combine a taint with a label and required node affinity, then check capacity and admission policy separately. ...

February 25, 2027 · 6 min · XB Field Notes
One ordinary ClusterIP Service address spans backend replacement: the before and after Pod states differ, while the Service object remains. This does not guarantee uninterrupted traffic.

A Service gives a pod a stable virtual address

The selector turns the Service from a fixed Endpoint into a live view: refresh happens in the background, and a client never edits its config when pods restart. The Service object lifetime bounds address stability. Membership, routing convergence and successful traffic remain separate. The exact allocator model passed again; no Kubernetes execution was added. Declared, then given an address An ordinary ClusterIP Service provides a virtual address and, with cluster DNS, a stable discovery name for its lifetime. A selector-based Service also declares which Pods in its namespace are intended backends. Other forms differ: headless Services allocate no virtual IP, ExternalName uses DNS indirection, and selectorless Services can use separately managed EndpointSlices. ...

February 9, 2027 · 6 min · XB Field Notes