Reference · Canonical nomenclature
Glossary
The shared vocabulary for this course. Every lesson uses these terms exactly as defined here. Bookmark it; it grows as we go.
- Host
- Your macOS machine. It runs
multipassand thekubectlclient — but not Kubernetes itself. - Multipass
- Canonical's tool for launching lightweight Ubuntu VMs on your host. We use it to get one real Linux machine to run Kubernetes inside.
- VM (the node)
- The Ubuntu virtual machine Multipass creates (we name it
microk8s-vm). In our single-node cluster this VM is the one and only Kubernetes node. - MicroK8s
- A small, single-package ("snap") Kubernetes distribution from Canonical.
Installed inside the VM. Ships extras as addons
(dns, ingress, storage) you turn on with
microk8s enable. - Cluster
- A running Kubernetes installation: a control plane plus one or more nodes. Ours has exactly one node (the VM).
- Control plane
- The "brain" of the cluster: the API server, scheduler, controller
manager, and the
etcddatastore. You never talk to these directly — you talk to the API server, and it makes reality match your declared desire. - Node
- A machine that actually runs your workloads (the kubelet + container runtime live here). Our single node is the VM.
- kubelet
- The agent on each node that talks to the API server and makes sure the containers that are supposed to run, run.
- kubectl
- The command-line client. It does one thing: send HTTP requests to the API server. Fluency in Kubernetes is largely fluency here.
- kubeconfig
- A YAML file (default
~/.kube/config) tellingkubectlthree things: which cluster (API server URL), who you are (client credentials), and the CA to trust. No magic — just an address book + keys. Introduced in Lesson 01. - Addon
- An optional microk8s feature toggled with
microk8s enable <name>(e.g.dns,ingress,hostpath-storage). - Pod
- The smallest deployable unit: one or more containers sharing one IP and storage. Disposable — recreated freely, and its IP changes when it is. Never address a Pod by IP. Lesson 02.
- Deployment
- A controller declaring "keep N replicas of this Pod template running." It self-heals (replaces dead Pods) and rolls out changes gradually. You create Deployments, not Pods. Lesson 02.
- Service
- A stable virtual IP + in-cluster DNS name that load-balances to Pods chosen by
label selector. Default type
ClusterIP= internal-only. Lesson 02. - Ingress
- An L7 (HTTP/S) routing rule mapping a hostname/path to a Service. Executed by an ingress controller (microk8s ingress addon = Traefik on 1.35+). The single public door to your sites. Lesson 02.
- IngressClass
- Names which controller handles an Ingress. microk8s offers
public(default, NGINX-compatible),traefik, andnginx. Lesson 02. - Label & selector
- Labels are key/value tags on objects (e.g.
app: hello-site); a selector matches objects by their labels. This is how Deployments and Services find their Pods — the "glue" of the request path. Lesson 02. - Manifest
- A YAML file declaring desired objects, applied with
kubectl apply -f. Multiple objects in one file are separated by---. Lesson 02. - Reconciliation
- The core loop: you declare desired state; a controller continuously works to make actual state match it. Explains self-healing and rollouts. Lesson 02.
- Service type (ClusterIP / NodePort / LoadBalancer)
- How far a Service is reachable.
ClusterIP= inside only (default);NodePort= a high port (30000–32767) on every node;LoadBalancer= its own external IP, if something fulfills the request. Lesson 03. - MetalLB
- A load-balancer implementation for bare-metal/local clusters. It fulfills
LoadBalancerServices by assigning each an IP from a pool you define and advertising it. microk8s addon:microk8s enable metallb:<range>. Lesson 03. - EXTERNAL-IP & <pending>
- The address column of
kubectl get svc.<pending>means aLoadBalancerService has no fulfiller — the classic "no MetalLB / no cloud" symptom. Lesson 03. - Layer-2 mode (ARP)
- MetalLB's default: one node "owns" each external IP and answers ARP requests for it on the local network, so the IP appears as just another host. Alternative is BGP. Lesson 03.
This is a living document. If a term is fuzzy, ask your
teacher (me) to expand it — and I'll add it here.