liveBook · Manning

Kubernetes

As explained in Designing Deep Learning Systems: A guide for software engineers

Kubernetes is an open-source platform for automating deployment, scaling, and management of containerized applications.

Kubernetes is an open-source container orchestration platform for automating deployment, scaling, and management. It becomes useful when a service environment grows from a few containers to many containers distributed across servers, where scheduling, failover, restarts, monitoring, and completion tracking become operational burdens. section 1.2.5

A Kubernetes cluster turns server groups and their resources into manageable infrastructure. A deployment can request a Docker image with defined memory and GPU requirements, allowing Kubernetes to allocate a suitable runtime environment. section 1.2.5

For deep learning service environments, Kubernetes addresses several production requirements:

  • Schedules containers across available servers instead of requiring services to select machines manually. section 1.2.5
  • Supports operational management of server groups, including deployment, patching, and updates. section 1.2.5
  • Provides namespaces as lightweight virtual clusters for separating users and training workloads on shared physical infrastructure. section 3.3.7
  • Tracks namespace capacity and rejects training launches when configured CPU, memory, or GPU quotas are fully consumed. section 3.3.7

Submitting an isolated training job

An administrator creates a namespace with CPU, memory, and GPU quotas, then maps users to namespaces. When a user submits a training request, the training service identifies the assigned namespace and calls the Kubernetes API to place the executable there. Kubernetes tracks usage and rejects the launch if the namespace lacks capacity. section 3.3.7

Figure 3.10 Creating machine pools within the training cluster to set up the resource consumption boundary for different users.

Use the machine-pool boundary diagram to relate shared physical infrastructure to isolated resource consumption for different users. section 3.3.7

How Designing Deep Learning Systems: A guide for software engineers covers it

How deep it goes
Explains scheduling, quotas, namespaces, and API placement, but stops short of comprehensive Kubernetes instruction.
Examples
Uses multi-server container deployment, GPU allocation, namespace quotas, and API-driven training job submission as concrete scenarios.
What it assumes
Assumes containerized applications and service environments, while motivating Kubernetes from basic Docker deployment challenges.
What you can do after
Operate training-cluster isolation by assigning users to namespaces, configuring quotas, and submitting workloads through the Kubernetes API.
How it connects
Connects container orchestration with Docker containers, namespaces, resource quotas, GPUs, and training cluster management.

Also explained in

Compare how 22 books explain Kubernetes →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Designing Deep Learning Systems: A guide for software engineers. The section links point to the parts of the book it draws on.