Kubernetes (k8s) is an open-source platform for managing containerized workloads and services across a cluster of machines. It abstracts infrastructure such as machines, disks, and networking so independently deployed microservices can run in a managed environment. section 8.2 section 8.0
A monolith can often run on virtual machines behind a load balancer. Independent microservices create a different management problem: each service may need its own resources, deployment configuration, and scaling capacity. Kubernetes deployment specifications let teams configure those needs per service rather than scale everything together. section 1.4.2
For Go gRPC microservices, Kubernetes connects several production concerns:
- Deploy container images through a CI/CD pipeline using Kubernetes deployment specifications. section 1.4.2 section 8.0
- Dial another microservice by the name defined in its Kubernetes service specification, rather than managing its IP address directly. section 1.4.2 section 8.2
- Use Kubernetes service communication with server-side load balancing when a service has multiple backends. section 5.1
Scale a busy Product service
If customers search and view products more heavily than they use other services, give the Product service greater resource capacity or scaling factors in its deployment configuration. The other services need not scale at the same time. section 1.4.2
Figure 1.1 Architecture diagram of an e-commerce product built with Go microservices on top of Kubernetes, including CI/CD flow and observability
Trace the e-commerce services from CI/CD into their Kubernetes environment, alongside the architecture’s observability flow. section 1.4





















