What you will learn in Road to Kubernetes
Chapter by chapter
Concepts explained in this book
- kubectlkubectl is the command-line client for interacting with Kubernetes clusters and their resources through the Kubernetes API.
- Docker ComposeThe Docker Compose plugin is a Docker CLI extension that provides Docker Compose commands for defining and running multi-container applications.
- containerA container is an isolated executable environment that packages an application with its dependencies while sharing the host operating system kernel.
- workflow definitionA GitHub Actions workflow is a YAML-defined automation procedure composed of jobs and steps that GitHub Actions executes in response to configured events.
- virtual environmentA Python virtual environment is an isolated project environment with its own Python interpreter configuration and installed packages.
- GitHub ActionsGitHub Actions is a GitHub automation platform for defining and running workflows in response to repository events or on specified schedules.
- environment variableAn environment variable is a named value supplied by the execution environment to configure or provide information to a process.
- serviceA Kubernetes Service is a Kubernetes API resource that provides a stable network endpoint and routes traffic to a set of Pods.
- container imageA container image is an immutable package containing an application, its dependencies, and the filesystem configuration needed to create a container.
- DockerDocker is a software platform and command-line tool for building, distributing, and running applications in containers.
- docker-compose.ymlA Compose file is a YAML configuration file that declares the services, parameters, networks, volumes, and other settings for a Docker Compose application.
- Ansible playbookAnsible playbook is a YAML-based automation definition that describes hosts, variables, and ordered tasks for configuring systems or deploying applications.
- podA Kubernetes Pod is the smallest deployable workload unit and groups one or more containers with shared network and storage resources.
- image tagA container image tag is a human-readable identifier attached to an image reference to distinguish a version, environment, or release.
- NGINXNGINX is a web server and reverse proxy software used to serve content and route network requests.
- configmapA Kubernetes ConfigMap is a resource that stores non-sensitive configuration data as key-value pairs for use by workloads.
- NomadHashiCorp Nomad is a workload orchestrator for deploying and managing applications and services across clusters.
- AnsibleAnsible is an open-source automation tool for configuring systems and deploying applications.
- GitHub Actions secretA GitHub Actions secret is an encrypted repository-scoped value that workflows can access without exposing its contents in source code or logs.
- Docker volumeA Docker volume is storage mounted into a container that can persist data independently of the container filesystem and may be shared with the host or other containers.
- Docker HubDocker Hub is a hosted registry service for discovering, storing, and distributing container images.
- DockerfileA Dockerfile is a text-based configuration file that specifies how to build a container image.
- StatefulSetA StatefulSet is a Kubernetes workload resource that manages stateful Pods with stable identities, ordered deployment, and persistent storage associations.
- kubeconfigA kubeconfig is a configuration file that specifies Kubernetes cluster connections, credentials, and contexts for client authentication.
- PythonPython is a general-purpose, high-level programming language known for readable syntax and broad application support.
- post-receive hookA post-receive hook is a Git server-side hook that runs after received references have been updated by a push.
- KubernetesKubernetes is an open-source platform for orchestrating containerized workloads and services across compute resources.
- Docker SwarmDocker Swarm is Docker's native orchestration mode for managing services across a cluster of Docker engines.
- repositoryA Git repository is a directory managed by Git that stores files, metadata, and version history.
- git hookA Git hook is an executable script that Git runs automatically in response to a repository event or command.
- gitGit is a distributed version control system for tracking changes to files and coordinating software development.
- aptAPT is a package-management system and command-line tool for installing and managing software packages on Debian-based Linux systems.
- Kubernetes DeploymentA Kubernetes Deployment is a Kubernetes workload resource that declaratively manages replicated application Pods and their updates.
- Compose serviceA Docker Compose service is a named application component declared in a Compose configuration and instantiated as one or more containers.
- HashiCorp Configuration LanguageHCL, or HashiCorp Configuration Language, is a declarative configuration language for expressing structured settings and infrastructure definitions.
- YAMLYAML is a human-readable data serialization format commonly used for configuration and declarative programming.
- .env fileA dotenv file is a text file containing environment-variable assignments that applications or tooling can load into an execution environment.
- virtual machineA virtual machine is a software-emulated computer that provides an isolated operating-system environment on physical or virtualized infrastructure.
- venv modulevenv is a Python standard-library module for creating and managing virtual environments.
- node portA NodePort Service is a Kubernetes Service type that exposes a port on each cluster node and routes traffic to selected Pods.
- label selectorA label selector is a Kubernetes matching expression that identifies or filters resources by their key-value labels.
- loadbalancer serviceA Kubernetes LoadBalancer Service is a Service type that provisions or integrates with an external load balancer to expose workloads outside the cluster.
- deploymentDeployment is the process of releasing software so that it can run in a target environment.
- portabilityPortability is the property of software being transferable and usable across different computing environments with minimal modification.
- dependencyAn application dependency is an external library, service, runtime, or other component required by an application.
- SSHSSH is a secure network protocol for remotely accessing and administering computers over an authenticated, encrypted connection.
- clusterip service typeA ClusterIP Service is a Kubernetes Service type that provides an internal cluster-only endpoint and balances traffic across selected Pods.
- docker compose updocker compose up -d is a Docker Compose command that creates and starts Compose application services in detached mode.
- bare Git repositoryA bare Git repository is a Git repository that contains version-control data without a checked-out working tree.
- docker rundocker run is a Docker command that creates and starts a container from a specified container image.
- service accountA Kubernetes service account is an identity for processes running in a cluster that can be granted permissions to access Kubernetes resources.
- scalabilityScalability is the ability of a system or process to accommodate increasing workload or resource demands while maintaining acceptable operation.
- declarative programmingDeclarative programming is a programming style that specifies the desired result or state rather than the step-by-step procedure for achieving it.
- service nameA service name is the identifier assigned to a Docker Compose service and used for addressing that service within the Compose network.
- replica countA replica count is the declared number of Pod instances that a Kubernetes workload should maintain.
- Nomad serverA Nomad client is a cluster agent and machine that receives and runs workloads assigned by the Nomad server.
- Nomad jobA Nomad job is a declarative specification of workloads and their required deployment configuration for HashiCorp Nomad.
- Nomad taskA Nomad task is an executable workload specification within a group that defines how an application or container should run.
- Docker Swarm manager nodeA Docker Swarm manager node is a Swarm node that coordinates worker nodes, schedules tasks, and manages the cluster.
- Docker Swarm worker nodeA Docker Swarm worker node is a Swarm node that runs the tasks assigned by a manager node.
- Kubernetes SecretA Kubernetes Secret is a resource for storing sensitive configuration data and exposing it to workloads as keys, environment variables, or volumes.
- git init commandgit init is a Git command that creates or reinitializes a repository in a directory.
- Docker Swarm stackA Docker Swarm Stack is a deployable group of containerized services defined by a Compose-format configuration for Swarm.
- Kubernetes namespaceA Kubernetes Namespace is a resource that logically partitions, isolates, and groups other Kubernetes resources within a cluster.
- computer clusterA cluster is a group of machines coordinated to run workloads as a shared computing system.
- GunicornGunicorn is a Python WSGI HTTP server for running web applications in production.
- commitA commit is a recorded snapshot of changes in a Git repository, identified by a commit identifier and optionally accompanied by a message.
- git addgit add is a Git command that stages specified files or directories for tracking and inclusion in a commit.
- volume claim templateA volume claim template is a StatefulSet specification that defines claims for creating persistent storage resources for its Pods.
- load balancingLoad balancing is the distribution of incoming traffic across one or more servers capable of handling it.
- Nomad UIThe Nomad UI is a web interface for viewing and managing Nomad cluster workloads and resources.
- docker compose downdocker compose down is a Docker Compose command that stops and removes application services and can optionally remove managed volumes.
- ExpressExpress.js is a minimal Node.js web application framework for building server-side applications and APIs.
- SSH keyAn SSH key is a cryptographic key pair consisting of a private key and a corresponding public key for authenticating secure shell connections.
- Kubernetes manifestA Kubernetes manifest is a YAML configuration file that declares the desired state of Kubernetes resources.
- git pushgit push is a Git command that transfers local commits and associated references to a remote repository.
- firewallA firewall is a network security system that filters traffic according to configured rules governing hosts, protocols, or ports.
- npm installnpm install is an npm command that installs project dependencies declared by a Node.js package.
- container registryA container registry is a storage and distribution service for container images.
- service IPA cluster IP is the virtual IP address assigned to provide an internal network endpoint for a Kubernetes Service.
- versioningVersion control is a system for recording, managing, and coordinating changes to files and source code over time.
- cmd directiveCMD is a Dockerfile instruction that specifies the default command for a container when it starts.
- deployment pipelineCI/CD is the practice of continuously integrating code changes and continuously delivering or deploying software through automated pipelines.
- commit messageA commit message is text attached to a version-control commit that describes the changes it records.
- databaseA database is a system that persistently stores and manages structured or semi-structured data for applications.
- Nomad groupA Nomad group is a workload-definition unit within a Nomad job that contains tasks and controls their instance count and shared settings.
- Nomad network blockA Nomad network block is a group-level configuration block that declares network values, including ports, available to tasks in the group.
- Nomad serviceA Nomad service is a task- or group-level definition that registers a workload and assigns an accessible network port to its instances.
- container orchestrationContainer orchestration is the automated coordination and management of containerized workloads across computing resources.
- RedisRedis is an open-source in-memory data structure store that can provide database, cache, and messaging functionality.
- workflowA workflow is an automated definition of triggers, jobs, and steps that performs tasks in a software repository.
- workflow_dispatchworkflow_dispatch is a GitHub Actions workflow trigger that permits manual execution from the GitHub interface.
- docker logindocker login is a Docker command that authenticates the command-line client to a container registry.
- package.jsonpackage.json is a project configuration file that records a package's metadata, dependencies, version, and scripts.
- public keyA public SSH key is the shareable half of an SSH key pair used by a remote system to authenticate the corresponding private key.
- persistent volumeA persistent volume is a Kubernetes storage resource that provides durable storage independently of an individual container's lifecycle.
- labelA metadata label is a key-value annotation attached to a Kubernetes resource for identification and filtering.
- Node.jsA runtime platform for executing JavaScript outside a web browser, commonly for server-side applications.
- requirements.txtA requirements file is a text configuration file that lists Python packages and optionally their required versions for installation.
- .gitignore.gitignore is a Git configuration file that specifies files and directories Git should ignore.
- Kubernetes DNS endpointA Kubernetes DNS endpoint is a DNS name that identifies a Kubernetes Service or other resource within the cluster DNS domain.
- psqlpsql is the PostgreSQL interactive command-line client for executing SQL statements and administrative commands.
- entrypoint fileAn entrypoint script is an executable script that performs startup logic and launches an application inside a container.
- private keyAn SSH private key is the secret member of a cryptographic key pair used to authenticate secure shell connections.
- SupervisorSupervisor is a process-control system for starting, stopping, and monitoring background processes on Unix-like operating systems.
- init containerAn init container is a Kubernetes container that runs to completion before the main containers in a Pod start.
- port forwardingPort forwarding is a networking technique that maps a local port to a port on a remote resource.
- volumeA storage volume is a storage resource attached to an application environment for retaining and accessing data.
- containerdcontainerd is an open-source container runtime that manages the complete container lifecycle on a host system.
- persistent volume claimA PersistentVolumeClaim is a Kubernetes resource that requests storage with specified capacity, access modes, and storage class properties.
- docker compose pulldocker compose pull is a Docker Compose command that downloads the container images specified by a Compose application.
- Docker Swarm taskA Docker Swarm task is a scheduled unit representing a container instance in a Swarm service.
- from instructionThe FROM directive is a Dockerfile instruction that specifies the base container image for a build.
- nvmnvm is a version manager for installing and switching between Node.js runtime versions.
- container-to-container communicationContainer-to-container communication is the exchange of data or service requests between separately running containers.
- hostnameA hostname is a human-readable network name that identifies a host or service for network communication.
- FastAPIFastAPI is a Python web framework for building APIs.
- dockerignore.dockerignore is a Docker configuration file that specifies files and directories to exclude from the Docker build context and container image.
- port numberA port is a numbered network endpoint through which a host or container accepts or sends traffic for an application or service.
- inventoryAn Ansible inventory is a file that defines and groups the remote hosts managed by Ansible.
- GitHubGitHub is a web-based platform for hosting, collaborating on, and managing software repositories with version control.
- docker stopdocker stop is a Docker command that stops a running container.
- stateState is the persistent data or condition that determines how software behaves across operations or restarts.
- JSONJSON is a text-based data interchange format representing structured values such as objects, arrays, strings, numbers, booleans, and null.
- JavaScriptJavaScript is a dynamic programming language standardized as ECMAScript and commonly used for web application development.
- reverse proxyA reverse proxy is a network intermediary that accepts client requests and forwards them to one or more backend servers or applications.
- A recordA DNS A record maps a domain name to an IPv4 address.
- NodeBalancerNodeBalancer is a managed load-balancing service that distributes network requests across cluster nodes and provides a static public IP address.
- Nomad CLIThe Nomad CLI is a command-line interface for scheduling jobs, managing tasks, and monitoring Nomad.
- git loggit log is a Git command that displays the commit history of a repository.
- npmnpm is the package manager and registry ecosystem commonly used to install and manage Node.js packages.
- docker builddocker build is a Docker command that constructs a container image from a Dockerfile and build context.
- file trackingFile tracking is the recording of which files and file changes are included in successive version-control states.
- stateless systemA stateless application is an application that does not retain client-specific state between requests or depend on persistent session state across restarts.
- pippip is the standard package installer and dependency-management tool for Python.
- node_modulesThe node_modules directory is the local filesystem directory containing installed Node.js packages and their dependencies.
- pod templateA Pod template is the configuration specifying the default metadata and containers for Pods created by a Kubernetes workload resource.
- process managerA process manager is software that controls the lifecycle and execution state of long-running processes.
- docker pulldocker pull is a Docker command that downloads a container image from a registry to the local machine.
- Docker Swarm serviceA Docker Swarm service is a declarative definition of tasks to run on manager or worker nodes.
- kubectl applykubectl apply is a kubectl command that creates or updates Kubernetes resources from configuration manifests.
- kubectl rollout restartkubectl rollout restart is a kubectl command that triggers a new rollout of a Kubernetes workload without deleting the workload resource.
- Cloud Native BuildpacksA set of scripts or components that detects an application's source and assembles its runtime environment or image.
- Kubernetes worker nodeA node is a machine in a Kubernetes cluster that runs container workloads.
- provisioningProvisioning is the process of creating and initializing computing resources so they are ready to run software.
- upstream definitionAn upstream definition is an NGINX configuration construct that names a group of backend destinations for request forwarding.
- statefulnessA stateful containerized application is a containerized application whose behavior or data depends on persistent state across operations or restarts.
- password authenticationA password is a secret authentication credential used to verify a user's identity.
- passwordless SSH sessionA passwordless SSH session is an SSH connection authenticated through keys or another non-password mechanism.
- strict host key checkingStrict host key checking is an SSH verification mode that requires a remote host key to be trusted before connection.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.
