liveBook · Manning

What you will learn in Road to Kubernetes

by Justin Mitchel

Chapter by chapter

Chapter 1: Kubernetes and the path to modern deployment

1.1 Anyone can deploy · 1.2 Our path to deployment · 1.3 The challenge of dependencies · 1.4 What do containers do? · 1.5 The challenges in building and running containers without Kubernetes · 1.6 What are the fundamental challenges with using Kubernetes? · 1.7 How does this book teach the technology? · 1.8 Summary

What you learn in chapter 1 →

Chapter 2: Creating the Python and JavaScript web apps

2.1 Designing a basic FastAPI web app in Python · 2.1.1 Python project setup with virtual environments · 2.1.2 Hello World with FastAPI · 2.1.3 Handling multiple routes with FastAPI · 2.2 Creating a JavaScript web application with Node.js and Express.js · 2.2.1 Hello World from Express.js · 2.2.2 Run the Node.js + Express.js app · 2.2.3 Create a JSON response with Express.js · 2.3 Tracking code changes with Git · 2.3.1 Using Git in our projects · 2.3.2 Ignoring files · 2.3.3 Tracking files · 2.3.4 Complete Git repo reboot · 2.3.5 Git logs and show · 2.3.6 Fundamental Git commands overview · 2.4 Pushing code to GitHub · 2.4.1 Creating a GitHub account · 2.4.2 Create a Git repository on GitHub · 2.4.3 Configuring our local git repo for GitHub · 2.4.4 Rinse and repeat · 2.5 Summary

What you learn in chapter 2 →

Chapter 3: Manual deployment with virtual machines

3.1 Creating and connecting to a remote server · 3.1.1 Provisioning a virtual machine · 3.1.2 Connecting via SSH · 3.2 Serving static websites with NGINX · 3.2.1 Embrace ephemeral VMs · 3.2.2 Modify the default NGINX HTML page · 3.3 Self-hosted remote Git repositories · 3.3.1 Log in to the server with SSH · 3.3.2 Creating the bare Git repositories · 3.3.3 Pushing local code to the remote repo · 3.3.4 Git hook to check out code · 3.4 Installing the apps’ dependencies · 3.4.1 Installing Python 3 and our FastAPI project · 3.4.2 Installing Node.js and our Express.js app · 3.4.3 Running the Express.js application · 3.5 Run multiple applications in the background with Supervisor · 3.5.1 Installing Supervisor · 3.5.2 Configure Supervisor for apps · 3.6 Serve multiple applications with NGINX and a firewall · 3.6.1 Configuring NGINX as a reverse proxy · 3.6.2 Installing Uncomplicated Firewall · 3.7 Summary

What you learn in chapter 3 →

Chapter 4: Deploying with GitHub Actions

4.1 Getting started with CI/CD pipelines with GitHub Actions · 4.1.1 Your first GitHub Actions workflow · 4.1.2 Creating your first GitHub Actions secret · 4.1.3 Installing the public SSH key on Akamai Connected Cloud · 4.1.4 Creating a new virtual machine on Akamai Linode · 4.1.5 Installing NGINX on a remote server with a GitHub Actions workflow · 4.2 Virtual machine automation with Ansible · 4.2.1 GitHub Actions workflow for Ansible · 4.2.2 Creating your first Ansible Playbook · 4.2.3 Ansible for our Python app · 4.2.4 Ansible for our Node.js app · 4.3 Summary

What you learn in chapter 4 →

Chapter 5: Containerizing applications

5.1 Hello World with Docker · 5.1.1 Running your first container · 5.1.2 Exposing ports · 5.1.3 Entering a container · 5.1.4 Stateless containers · 5.2 Designing new container images · 5.2.1 Creating a Dockerfile · 5.2.2 Running your first container image · 5.3 Containerizing Python applications · 5.3.1 Version tags and a Python Dockerfile · 5.3.2 Creating a Python Dockerfile · 5.3.3 Ignoring unwanted files in Docker builds · 5.3.4 Creating and running an entrypoint script · 5.4 Containerizing Node.js applications · 5.4.1 The Node.js entrypoint script and .dockerignore file · 5.4.2 The Node.js Dockerfile · 5.5 Pushing container images to Docker Hub · 5.5.1 Your first push to Docker Hub · 5.6 Summary

What you learn in chapter 5 →

Chapter 6: Containers in action

6.1 Building and pushing containers with GitHub Actions · 6.1.1 Docker login and third-party GitHub Action tools · 6.1.2 A GitHub Actions workflow for building containers · 6.2 Managing a container with Docker Compose · 6.2.1 Why we need Docker Compose · 6.2.2 Docker Compose for our Python app · 6.2.3 Docker Compose for our Node.js app · 6.3 Stateful containers with volumes · 6.3.1 Using volumes with Docker · 6.3.2 Using volumes with Docker Compose · 6.3.3 Built-in volume management with Docker Compose · 6.4 Networking fundamentals in Docker Compose · 6.4.1 Container-to-container communication simplified · 6.4.2 Databases and Docker Compose · 6.4.3 Environment variables with dotenv in Docker and Docker Compose · 6.5 Summary

What you learn in chapter 6 →

Chapter 7: Deploying containerized applications

7.1 Hello prod, it’s Docker · 7.1.1 Provisioning a new virtual machine · 7.1.2 Installing Docker on Ubuntu · 7.1.3 Installing Docker Compose on Ubuntu · 7.1.4 Deploying NGINX · 7.2 Staging containers · 7.2.1 Dockerfiles for multiple environments · 7.2.2 Docker Compose for multiple environments · 7.3 GitHub Actions to deploy production containers · 7.3.1 Building and hosting a production container · 7.3.2 Installing Docker and Docker Compose on a virtual machine with GitHub Actions · 7.3.3 Using GitHub Actions to run Docker Compose in production · 7.4 The limitations of using Docker Compose for production · 7.4.1 Scaling containers with Docker Compose · 7.5 Summary

What you learn in chapter 7 →

Chapter 8: Managed Kubernetes Deployment

8.1 Getting started with Kubernetes · 8.1.1 Self-service or managed Kubernetes? · 8.1.2 Provisioning a Kubernetes cluster · 8.1.3 Core concepts and components · 8.2 Connecting to Kubernetes · 8.2.1 The Kubernetes Dashboard GUI · 8.2.2 Installing kubectl · 8.2.3 Configuring kubectl · 8.3 Deploy containers to Kubernetes · 8.3.1 Your first Pod and manifest · 8.3.2 Your first Service · 8.3.3 From Pods to Deployments · 8.3.4 Customize NGINX with ConfigMaps · 8.3.5 Environment Variables with ConfigMaps and Secrets · 8.4 Volumes and stateful containers · 8.4.1 Volumes and Deployments · 8.4.2 StatefulSets · 8.4.3 Container-to-container communication within Kubernetes · 8.4.4 Namespaces to manage cluster resources · 8.5 Deploy apps to production with Kubernetes · 8.5.1 LoadBalancer Services · 8.5.2 Deploying to Kubernetes with GitHub Actions · 8.6 Summary

What you learn in chapter 8 →

Chapter 9: Alternative orchestration tools

9.1 Container orchestration with Docker Swarm · 9.1.1 Preparing the Docker Swarm Manager · 9.1.2 Docker Compose for Docker Swarm · 9.1.3 Start Docker Swarm · 9.1.4 Deploy a Docker Swarm Stack · 9.2 HashiCorp Nomad · 9.2.1 Preparing our Nomad cluster · 9.2.2 Installing Nomad · 9.2.3 Configuring the Nomad server · 9.2.4 Configuring the Nomad Clients · 9.2.5 Running containers with Nomad jobs · 9.3 Summary

What you learn in chapter 9 →

Concepts explained in this book

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.