60

Managed Kubernetes: Cloud Shared Responsibility

Decide what a cloud Kubernetes service operates, what your team still owns, and where Ziba's OOM recovery actually lands.

The enterprise problem and today’s slice

Enterprise problem: A managed Kubernetes purchase can remove control-plane toil, but Ziba still fails if the team assumes the provider owns application memory, workload security, capacity policy, data recovery, or customer-facing availability. Whole-course context: The incoming on-premises model assigns every rack-to-pod layer to the organization; today moves selected layers behind a provider service boundary without erasing accountability. Today’s slice: We compare self-managed, managed-control-plane, managed-node, and highly managed modes, then create a responsibility matrix tied to an OOM recovery. End-of-day evidence: A provider-neutral architecture, RACI-style ownership record, mode decision, deployment mapping, and recovery drill identify who acts at every boundary. Still unsolved: AWS- and GCP-specific network, identity, billing, and provisioning details are handled in dedicated days.

The thesis is that “managed Kubernetes” moves responsibilities; it does not remove them. Begin with three boxes—provider platform, shared cluster, customer outcome—then name every interface whose failure can still reach readers.

Customer use cases

Vendor feature lists hide ownership gaps unless each operational action has an accountable party and terminal evidence. These use cases turn a service-mode selection and a live incident escalation into testable customer outcomes.

Use case IDActorCustomer jobSuccess outcomeDenial or recovery evidence
D60-UC-01Cloud platform ownerSelect the least operationally burdensome mode that still meets Ziba's control and compliance needsSigned responsibility matrix matches provider contract, cluster mode, workload constraints, and staffingMode is rejected when a required host privilege, locality, upgrade control, or evidence path is unavailable
D60-UC-02On-call application operatorRecover Ziba from an OOM incident across the shared boundaryTeam changes owned workload state or escalates provider-owned failure with complete evidence; readers recoverEscalation is denied or redirected with missing diagnostics, while unaffected provider and workload controls remain recorded

Actor-centred user stories

Shared responsibility becomes useful only when it changes a decision during design or incident response. These stories require a named owner, action, and proof instead of the vague statement that “the cloud handles it.”

Story IDUse case IDsUser storyObservable acceptance conditions
D60-US-01D60-UC-01As a cloud platform owner, I want responsibilities mapped per service mode, so that I can buy reduced toil without surrendering required controlMatrix covers facilities, control plane, nodes, network, identity, workloads, data, observability, upgrades, and incident response; rejected modes cite a concrete constraint
D60-US-02D60-UC-02As an application operator, I want a boundary-aware OOM runbook, so that I act on Ziba's resources and escalate only provider-owned faultsRunbook distinguishes cgroup OOM, node capacity, control-plane availability, and provider infrastructure; replay and ticket IDs provide terminal evidence

End-to-end product flows

A cloud console click can create a cluster while leaving critical defaults implicit, so the product flow must begin with the customer's required outcome and expose every retained responsibility. The recovery flow likewise separates workload action from provider escalation before either party changes state.

Flow IDUse case IDsPathTriggerNumbered stepsTerminal evidence
D60-FLOW-01D60-UC-01HappyPlatform owner evaluates a managed Kubernetes service1. Record Ziba's availability, security, locality, workload, and evidence requirements.
2. Compare self-managed, managed-control-plane, managed-node, and highly managed modes.
3. Assign provider, customer, and shared actions.
4. Test required configuration and denial paths.
5. Approve one mode and support model.
Decision ID, service/mode, region, responsibility revision, positive and denied tests, actor, timestamp, and contract/document references
D60-FLOW-02D60-UC-02RecoveryZiba returns errors and one container reports OOMKilled1. Capture customer, workload, node, and control-plane signals.
2. Identify the enforcing and ownership boundary.
3. Restore through customer-owned workload action if safe.
4. Escalate only provider-owned degradation with required diagnostics.
5. Replay traffic and reconcile ticket plus incident.
Deployment revision or provider case ID, pod/node identity, expected and observed result, environment, time, immutable incident ID, and unaffected control

System design derived from the flows

A single “cloud” box conceals which API, machine, and process an operator can actually change. The architecture expands the service boundary while keeping Kubernetes control-plane state, worker execution, and Ziba's code/data distinct.

Use case IDEntry pointResponsible servicesAuthoritative storeFailure evidence
D60-UC-01Cloud organization policy and managed-cluster APICloud IAM, network, managed Kubernetes service, node service or node pools, policy/admission, support entitlementCloud resource manager and reviewed responsibility/decision recordUnsupported workload constraint, denied policy test, unavailable region/mode, or unassigned operational action
D60-UC-02Incident system, Kubernetes API, and provider support APIZiba observability, controllers, kubelet/runtime where exposed, cloud monitoring, provider control-plane operations and supportKubernetes desired/status state, telemetry, incident store, provider case systemOOMKilled, insufficient node capacity, unavailable API, missing telemetry, rejected case, or failed customer replay

Google states that GKE manages the control plane, while customers retain workload code, images, data, IAM/RBAC policy, monitoring, and incident response; Standard mode also leaves more node lifecycle responsibility with the customer (GKE shared responsibility). AWS likewise separates security of the cloud from customer configuration in the cloud and lists EKS data-plane, node OS, and workload choices among customer concerns (Security in Amazon EKS). These vendor examples support a general rule, not a universal matrix: the exact boundary is service- and mode-specific.

Data model and ownership

Responsibility drifts when it lives only in onboarding slides, leaving later operators to infer ownership from permissions. Durable records connect each responsibility to a service mode, evidence path, review date, and escalation route.

Generated-application database: Not created in this slice — Ziba's domain data is unchanged; cloud resource state, Kubernetes state, responsibility decisions, provider cases, and incident evidence provide the durable records required here.

Record or entityStore and ownerPrimary keyForeign key or opaque referenceTenant keyMaterial constraintLifecycle and deletionUse case IDs
ManagedClusterCloud provider resource manager, owned jointly by provider service and customer cloud team according to fieldsProvider cluster resource IDOpaque cloud network, account/project, and Kubernetes cluster UID referencesCloud account/project and organizationRegion, mode, version policy, endpoint exposure, and ownership revision must be explicitCreated, upgraded, disabled, deleted; provider metadata retained by contractD60-UC-01, D60-UC-02
ResponsibilityAssignmentGovernance repository, owned by platform leadershipService mode plus responsibility revision plus capability IDProvider document/contract reference and internal runbook referenceOrganization IDExactly one accountable customer role and one escalation route per capability; shared work is decomposed into actionsProposed, tested, approved, periodically reviewed, superseded, retained for auditD60-UC-01, D60-UC-02
ProviderCaseProvider support system, owned by provider with customer-visible copyCase IDOpaque cluster resource, incident, and diagnostic bundle referencesCloud account/projectContains only approved diagnostics; severity and entitlement meet support policyOpened, updated, resolved, exported if available, retained by provider policyD60-UC-02
WorkloadIncidentCustomer incident store, owned by operationsIncident IDOpaque cluster ID, pod UID, revision, telemetry queries, and provider caseService/team keyCustomer and provider actions share one timeline; positive and negative controls are recordedOpened, mitigated, reviewed, sealed, retained then expired by policyD60-UC-02

The service-mode ladder

“Managed” is not binary, and comparing only product names creates a false dichotomy. Each step moves a different set of operational loops while leaving application outcome and policy choices with the customer.

ModeProvider typically operatesCustomer still operatesUse whenAvoid when
Self-managed on cloud VMsPhysical facilities, hypervisor, base cloud APIsControl plane, etcd, nodes, upgrades, network integrations, workloads, dataExact control or portability outweighs toilTeam wants a managed control plane or lacks cluster lifecycle expertise
Managed control planeControl-plane hosts, etcd availability/maintenance, service APIVPC design, nodes or node groups, add-ons, workloads, data, authorization, SLOStandard Kubernetes API plus node flexibilityRequired responsibility remains ambiguous or provider constraints conflict
Managed control plane and node groupsAbove plus automation around node creation/update/repairNode-pool policy and rollout timing, workload compatibility, resources, data, SLOReduce repetitive fleet operations while retaining shapes/configurationWorkload cannot tolerate provider node lifecycle or needs unsupported host control
Highly managed or autopilot modeAbove plus much node sizing, scaling, security configuration, and maintenanceWorkload manifests, supported constraints, application/data security, availability design, observability and responseMost workloads fit constraints and reduced toil is the priorityPrivileged agents, unusual host access, or exact hardware/network control is mandatory

GKE currently describes Autopilot as its recommended managed mode for most production workloads and says Google manages nodes, scaling, security configuration, and other preconfigured settings; Standard preserves direct node-infrastructure control (GKE modes). This is a current product claim, not a reason to skip workload validation.

Code versus cloud, cluster, and hardware effects

Infrastructure declarations compose provider APIs and Kubernetes APIs, but they act at different ownership layers. Reviewers should be able to trace each block to the resources, software, and residual customer duty it creates.

module "managed_kubernetes" {
  source = "./modules/managed-kubernetes"

  region             = var.region
  private_endpoint   = true
  node_mode          = "managed"
  minimum_node_count = 3
}
apiVersion: apps/v1
kind: Deployment
metadata:
  name: ziba-blog
spec:
  replicas: 3
  template:
    spec:
      containers:
        - name: blog
          image: registry.example/ziba@sha256:REPLACE_ME
          resources:
            requests:
              memory: 384Mi
            limits:
              memory: 768Mi
Code or actionCloud/provider effectKubernetes/software effectActual compute/customer effect
Terraform managed-cluster moduleCalls provider APIs to create regional service resources, endpoint, and mode-specific compute policyProvider initializes a Kubernetes control plane and integration controllersProvider allocates hidden control-plane compute; customer pays/operates according to service terms
private_endpoint = trueConfigures provider network reachability for the cluster APIChanges where Kubernetes clients can connect fromDoes not make workloads private automatically; routes, DNS, firewall, and egress remain designed
minimum_node_count = 3Requests mode-specific worker capacity or lower boundNodes register and expose allocatable resources when provisioning succeedsCreates three separate machine budgets, not one pooled RAM heap
Ziba DeploymentNo control-plane hardware is createdControllers schedule three desired pod replicasProcesses consume real node CPU/RAM; replicas improve availability only across failures they are spread over
Memory request/limitNo cloud VM is resized directlyScheduler reserves request; runtime applies limitKernel accounts physical/VM-backed pages and may kill a process at its boundary

OOM response across the shared boundary

An application OOM usually remains a customer-owned workload incident even when every machine is provider-managed. Escalation becomes appropriate when evidence points to the managed service rather than the application's declared or observed state.

EvidenceFirst ownerActionEscalate when
Container exceeds declared limitApplication/platform teamProfile growth; justify resource or code change; replayProvider enforcement contradicts documented behavior with reproducible evidence
Pod Pending for insufficient resourcesPlatform team or mode-specific autoscaler ownerCheck requests, constraints, quotas, and capacity policyProvider cannot provision eligible advertised capacity or service reports degradation
Managed control-plane endpoint unavailableProvider service plus customer network ownerSeparate provider status from customer DNS/routes/firewallsProvider-owned endpoint fails from approved paths with network controls proven
Node maintenance disrupts all replicasShared: provider schedules lifecycle; customer designs workload toleranceFix spreading, budgets, readiness, rollout policyProvider violates documented maintenance behavior after workload controls are proven

Decision rule: buy the most managed mode that satisfies required privileges, topology, evidence, and lifecycle control; keep an explicit owner for everything above the service boundary. Reduced access should be accepted only when the provider supplies enough behavior and evidence to operate the customer outcome.

Key takeaways

Cloud Kubernetes changes the location and operator of infrastructure, but Ziba's manifest, memory behavior, data, replicas, and reader SLO remain customer concerns. The exact responsibility boundary depends on service mode and must be tested rather than inferred from the word “managed.”

  • Compare operational loops and evidence, not provider feature counts alone.
  • Decompose “shared” work until one party owns each concrete action.
  • Route OOM, capacity, network, and control-plane failures to different owners.

Checklist

A managed-service decision is incomplete if a future on-call engineer cannot tell what they can change and what evidence a provider requires. Validate the matrix through both a workload failure and a provider-boundary simulation.

  • [ ] Recorded requirements and rejected modes with concrete falsifiers.
  • [ ] Assigned owner, action, evidence, and escalation route per layer.
  • [ ] Mapped Terraform and Kubernetes code to provider, software, and compute effects.
  • [ ] Exercised Ziba's OOM path without assuming provider ownership.
  • [ ] Retained customer proof and provider case identifiers in one incident timeline.