Asterrr's Handbook

Domain 3 · Services and networking

20% of the exam. How Pods reach each other, how traffic gets in through Services, Gateway API and Ingress, how NetworkPolicies fence it, and how CoreDNS turns names into IPs.

Domain 3 tasks hand you a running app and ask you to connect it: give it a stable address, publish it on a node port or hostname, route paths and weights to the right backend, lock down who may talk to it, or make a name resolve. Almost every task ends with the same check: a request from a throwaway Pod either gets through or doesn't.

CompetencyWhat it's really askingPages
3.1 Connectivity between PodsThe flat Pod network, what the CNI plugin and kube-proxy each do, and how containers in one Pod share a network namespacePod networking
3.2 Network PoliciesDefault deny, selecting peers by Pod and namespace labels, AND vs OR in from, and not forgetting DNS on egressNetwork policies
3.3 ClusterIP, NodePort, LoadBalancer and endpointsPicking the Service type, getting port / targetPort / nodePort right, and reading EndpointSlices when nothing answersServices
3.4 Gateway APIGatewayClass, Gateway and HTTPRoute, listeners and allowedRoutes, path and header matches, weighted splitsGateway API
3.5 Ingress controllers and resourcesIngressClass, host and path rules, pathType, TLS Secrets, and why nothing happens without a controllerIngress
3.6 CoreDNSService and Pod DNS names, the Corefile, forwarding a private zone, and debugging a lookup that failsCoreDNS

What connects Domain 3 to the rest of the exam:

Declaring victory after kubectl apply

A Service, Ingress, HTTPRoute or NetworkPolicy that applies cleanly can still route nothing: the selector matches no Pods, the class names a controller that isn't installed, or the route was never accepted by its Gateway. Graders test traffic, so you should too: kubectl run t --rm -it --image=busybox:1.36 --restart=Never -- wget -qO- -T 2 http://target and read the status of the object you created.