A Kubernetes Deployment declares an application’s desired state and provides a repeatable unit for placing a container image on selected clusters. Operational value comes from controlling where an application version runs and making that placement observable. section 11.3.3 section 12.3.1
A Deployment commonly coordinates these operational concerns:
- Application placement: annotations select rollout-testers, non-testers, or country-specific clusters. section 11.3.3
- Version control: separate Deployment definitions can use different container image tags for test and non-test environments. section 11.3.3
- Local exposure: a Deployment can be exposed through a NodePort service and reached through kubectl port forwarding. section 12.3.1
Preview a Deployment locally
Start minikube, create a hello-minikube Deployment from echoserver:1.4, expose it on port 8080, inspect the service, and forward service traffic to localhost:8080. This provides a working preview, although repeated image builds and kubectl updates make manual iteration inefficient. section 12.3.1
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: foh-engine
annotations:
configmanagement.gke.io/cluster-selector: rollout-testers
spec:
template:
spec:
containers:
- name: engine
image: gcr.io/ambiguous-rock/foh/engine:v2.1.0
imagePullPolicy: IfNotPresent
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: foh-engine
annotations:
configmanagement.gke.io/cluster-selector: non-testers
spec:
template:
spec:
containers:
- name: engine
image: gcr.io/ambiguous-rock/foh/engine:v2.0.3
imagePullPolicy: IfNotPresent
Compare two apps/v1 Deployment definitions that target disjoint cluster groups and select different engine image versions. section 11.3.3









