Hands-On Kubernetes on Windows
Effectively orchestrate Windows container workloads using Kubernetes
Piotr Tylenda
- 592 pages
- English
- ePUB (mobile friendly)
- Available on iOS & Android
Hands-On Kubernetes on Windows
Effectively orchestrate Windows container workloads using Kubernetes
Piotr Tylenda
About This Book
Build and deploy scalable cloud applications using Windows containers and Kubernetes
Key Features
- Run, deploy, and orchestrate containers on the Windows platform with this Kubernetes book
- Use Microsoft SQL Server 2019 as a data store to deploy Kubernetes applications written in.NET Framework
- Set up a Kubernetes development environment and deploy clusters with Windows Server 2019 nodes
Book Description
With the adoption of Windows containers in Kubernetes, you can now fully leverage the flexibility and robustness of the Kubernetes container orchestration system in the Windows ecosystem. This support will enable you to create new Windows applications and migrate existing ones to the cloud-native stack with the same ease as for Linux-oriented cloud applications.
This practical guide takes you through the key concepts involved in packaging Windows-distributed applications into containers and orchestrating these using Kubernetes. You'll also understand the current limitations of Windows support in Kubernetes. As you advance, you'll gain hands-on experience deploying a fully functional hybrid Linux/Windows Kubernetes cluster for development, and explore production scenarios in on-premises and cloud environments, such as Microsoft Azure Kubernetes Service.
By the end of this book, you'll be well-versed with containerization, microservices architecture, and the critical considerations for running Kubernetes in production environments successfully.
What you will learn
- Understand containerization as a packaging format for applications
- Create a development environment for Kubernetes on Windows
- Grasp the key architectural concepts in Kubernetes
- Discover the current limitations of Kubernetes on the Windows platform
- Provision and interact with a Kubernetes cluster from a Windows machine
- Create hybrid Windows Kubernetes clusters in on-premises and cloud environments
Who this book is for
This book is for software developers, system administrators, DevOps engineers, and architects working with Kubernetes on Windows, Windows Server 2019, and Windows containers. Knowledge of Kubernetes as well as the Linux environment will help you get the most out of this book.
Frequently asked questions
Information
Section 1: Creating and Working with Containers
- Chapter 1, Creating Containers
- Chapter 2, Managing State in Containers
- Chapter 3, Working with Container Images
Creating Containers
- Linux versus Windows containers
- Understanding Windows container variants
- Installing Docker Desktop for Windows tooling
- Building your first container
Technical requirements
- Intel Virtualization Technology (Intel VT) or AMD Virtualization (AMD-V) technology features enabled in the BIOS
- A minimum of 4 GB of RAM
- Windows 10 Pro, Enterprise, or Education (version 1903 or later, 64-bit) installed
- Visual Studio Code
Linux versus Windows containers
Docker containerization on Linux
- Kernel namespaces: This is the core concept for containers and makes it possible to create isolated process workspaces. Namespaces partition kernel resources (such as network stacks, mount points, and so on) so that each process workspace can access its own set of resources and ensures they can't be accessed by processes from other workspaces. This is what ensures the isolation of containers.
- Control groups: Resource usage limits and isolation is a secondary core concept in containerization. On Linux, this feature is provided by cgroups, which enables resource limiting (CPU usage, RAM usage, and so on) and priority access to resources for one process or a group of processes.
- Layer filesystem capabilities: On Linux, UnionFS is one of the many implementations of union mount ā a file system service that allows files and directories coming from separate filesystems to be unified into one transparent, coherent filesystem. This feature is crucial for Docker container images that consist of immutable layers. During the container runtime, the read-only layers are transparently overlaid together with a writable container layer.