Kubernetes for Developers


Book Description

A developer's field-guide to designing scalable services using Kubernetes Key Features Develop and run your software using containers within a Kubernetes environment Get hands-on experience of using Kubernetes with DevOps concepts such as continuous integration, benchmark testing, monitoring, and so on Pragmatic example-based approach showing how to use Kubernetes in the development process Book Description Kubernetes is documented and typically approached from the perspective of someone running software that has already been built. Kubernetes may also be used to enhance the development process, enabling more consistent testing and analysis of code to help developers verify not only its correctness, but also its efficiency. This book introduces key Kubernetes concepts, coupled with examples of how to deploy and use them with a bit of Node.js and Python example code, so that you can quickly replicate and use that knowledge. You will begin by setting up Kubernetes to help you develop and package your code. We walk you through the setup and installation process before working with Kubernetes in the development environment. We then delve into concepts such as automating your build process, autonomic computing, debugging, and integration testing. This book covers all the concepts required for a developer to work with Kubernetes. By the end of this book, you will be in a position to use Kubernetes in development ecosystems. What you will learn Build your software into containers Deploy and debug software running in containers within Kubernetes Declare and add configuration through Kubernetes Define how your application fits together, using internal and external services Add feedback to your code to help Kubernetes manage your services Monitor and measure your services through integration testing and in production deployments Who this book is for If you are a full-stack or back-end software developers interested, curious, or being asked to test as well as run the code you're creating, you can leverage Kubernetes to make that process simpler and consistent regardless of where you deploy. If you're looking for developer focused examples in NodeJS and Python for how to build, test, deploy, and run your code with Kubernetes, this is perfect for you.




Kubernetes for Developers


Book Description

A clear and practical beginner’s guide that shows you just how easy it can be to make the switch to Kubernetes! Kubernetes for Developers reveals practical and painless methods for deploying your apps on Kubernetes—even for small-to-medium sized applications! You’ll learn how to migrate your existing apps onto Kubernetes without a rebuild, and implement modern cloud native architectures that can handle your future growth. Inside, you’ll learn how to: Containerize a web application with Docker Host a containerized app on Kubernetes with a public cloud service Save money and improve performance with cloud native technologies Make your deployments reliable and fault tolerant Prepare your deployments to scale without a redesign Monitor, debug and tune application deployments on Kubernetes Designed for busy working developers, this hands-on guide helps your first steps into Kubernetes using the powerful Google Kubernetes Engine (GKE) service. Learn how the GKE’s powerful automation tools can perform automatic checks and scaling, giving you more time to spend developing great applications. You’ll soon see that you don’t need to incur huge costs or have the manpower of an enterprise organization to get a productivity boost from Kubernetes! About the technology Modern software needs to perform at scale while effectively handling load balancing, state and security. Kubernetes makes these tasks easier and more reliable for apps of any size. This book, written especially for software developers creating applications that run on Kubernetes, shows you exactly how to address these and other important issues. About the book Kubernetes for Developers covers everything you need to know to containerize and deploy an app on Kubernetes from the developer’s perspective. You’ll start by creating a small application you can run on a cloud-based Kubernetes cluster. Then, you’ll systematically explore best practices for stable long-term deployment, including scaling, capacity planning, and resource optimization. What's inside Deploying reliable web applications using automated operations Scaling up without an application redesign Monitoring, debugging, and tuning workloads About the reader For developers familiar with building or deploying web applications. No Docker or Kubernetes experience required. About the author William Denniss is a product manager at Google working on Google Kubernetes Engine. Table of Contents PART 1 Getting started with Kubernetes 1 Kubernetes for application deployment 2 Containerizing apps 3 Deploying to Kubernetes 4 Automated operations 5 Resource management PART 2 Going to production 6 Scaling up 7 Internal services and load balancing 8 Node feature selection 9 Stateful applications 10 Background processing 11 GitOps: Configuration as code 12 Securing Kubernetes




Certified Kubernetes Application Developer (CKAD) Study Guide


Book Description

Developers with the ability to operate, troubleshoot, and monitor applications in Kubernetes are in high demand today. To meet this need, the Cloud Native Computing Foundation created a certification exam to establish a developer's credibility and value in the job market to work in a Kubernetes environment. The Certified Kubernetes Application Developer (CKAD) exam is different from the typical multiple-choice format of other certifications. Instead, the CKAD is a performance-based exam that requires deep knowledge of the tasks under immense time pressure. This study guide walks you through all the topics you need to fully prepare for the exam. Author Benjamin Muschko also shares his personal experience with preparing for all aspects of the exam. Learn when and how to apply Kubernetes concepts to manage an application Understand the objectives, abilities, tips, and tricks needed to pass the CKAD exam Explore the ins and outs of the kubectl command-line tool Demonstrate competency for performing the responsibilities of a Kubernetes application developer Solve real-world Kubernetes problems in a hands-on command-line environment Navigate and solve questions during the CKAD exam




Kubernetes Patterns


Book Description

The way developers design, build, and run software has changed significantly with the evolution of microservices and containers. These modern architectures use new primitives that require a different set of practices than most developers, tech leads, and architects are accustomed to. With this focused guide, Bilgin Ibryam and Roland Huß from Red Hat provide common reusable elements, patterns, principles, and practices for designing and implementing cloud-native applications on Kubernetes. Each pattern includes a description of the problem and a proposed solution with Kubernetes specifics. Many patterns are also backed by concrete code examples. This book is ideal for developers already familiar with basic Kubernetes concepts who want to learn common cloud native patterns. You’ll learn about the following pattern categories: Foundational patterns cover the core principles and practices for building container-based cloud-native applications. Behavioral patterns explore finer-grained concepts for managing various types of container and platform interactions. Structural patterns help you organize containers within a pod, the atom of the Kubernetes platform. Configuration patterns provide insight into how application configurations can be handled in Kubernetes. Advanced patterns covers more advanced topics such as extending the platform with operators.




Kubernetes for Full-Stack Developers


Book Description

This book is designed to help newcomers and experienced users alike learn about Kubernetes. Its chapters are designed to introduce core Kubernetes concepts and to build on them to a level where running an application on a production cluster is a familiar, repeatable, and automated process. From there, more advanced topics are introduced, like how to manage a Kubernetes cluster itself.




Docker and Kubernetes for Java Developers


Book Description

Leverage the lethal combination of Docker and Kubernetes to automate deployment and management of Java applications About This Book Master using Docker and Kubernetes to build, deploy and manage Java applications in a jiff Learn how to create your own Docker image and customize your own cluster using Kubernetes Empower the journey from development to production using this practical guide. Who This Book Is For The book is aimed at Java developers who are eager to build, deploy, and manage applications very quickly using container technology. They need have no knowledge of Docker and Kubernetes. What You Will Learn Package Java applications into Docker images Understand the running of containers locally Explore development and deployment options with Docker Integrate Docker into Maven builds Manage and monitor Java applications running on Kubernetes clusters Create Continuous Delivery pipelines for Java applications deployed to Kubernetes In Detail Imagine creating and testing Java EE applications on Apache Tomcat Server or Wildfly Application server in minutes along with deploying and managing Java applications swiftly. Sounds too good to be true? But you have a reason to cheer as such scenarios are only possible by leveraging Docker and Kubernetes. This book will start by introducing Docker and delve deep into its networking and persistent storage concepts. You will then proceed to learn how to refactor monolith application into separate services by building an application and then packaging it into Docker containers. Next, you will create an image containing Java Enterprise Application and later run it using Docker. Moving on, the book will focus on Kubernetes and its features and you will learn to deploy a Java application to Kubernetes using Maven and monitor a Java application in production. By the end of the book, you will get hands-on with some more advanced topics to further extend your knowledge about Docker and Kubernetes. Style and approach An easy-to-follow, practical guide that will help Java developers develop, deploy, and manage Java applications efficiently.




Kubernetes Operators


Book Description

Operators are a way of packaging, deploying, and managing Kubernetes applications. A Kubernetes application doesn't just run on Kubernetes; it's composed and managed in Kubernetes terms. Operators add application-specific operational knowledge to a Kubernetes cluster, making it easier to automate complex, stateful applications and to augment the platform. Operators can coordinate application upgrades seamlessly, react to failures automatically, and streamline repetitive maintenance like backups. Think of Operators as site reliability engineers in software. They work by extending the Kubernetes control plane and API, helping systems integrators, cluster administrators, and application developers reliably deploy and manage key services and components. Using real-world examples, authors Jason Dobies and Joshua Wood demonstrate how to use Operators today and how to create Operators for your applications with the Operator Framework and SDK. Learn how to establish a Kubernetes cluster and deploy an Operator Examine a range of Operators from usage to implementation Explore the three pillars of the Operator Framework: the Operator SDK, the Operator Lifecycle Manager, and Operator Metering Build Operators from the ground up using the Operator SDK Build, package, and run an Operator in development, testing, and production phases Learn how to distribute your Operator for installation on Kubernetes clusters




Kubernetes Native Microservices with Quarkus and MicroProfile


Book Description

Build fast, efficient Kubernetes-based Java applications using the Quarkus framework, MicroProfile, and Java standards. In Kubernetes Native Microservices with Quarkus and MicroProfile you’ll learn how to: Deploy enterprise Java applications on Kubernetes Develop applications using the Quarkus runtime Compile natively using GraalVM for blazing speed Create efficient microservices applications Take advantage of MicroProfile specifications Popular Java frameworks like Spring were designed long before Kubernetes and the microservices revolution. Kubernetes Native Microservices with Quarkus and MicroProfile introduces next generation tools that have been cloud-native and Kubernetes-aware right from the beginning. Written by veteran Java developers John Clingan and Ken Finnigan, this book shares expert insight into Quarkus and MicroProfile directly from contributors at Red Hat. You’ll learn how to utilize these modern tools to create efficient enterprise Java applications that are easy to deploy, maintain, and expand. About the technology Build microservices efficiently with modern Kubernetes-first tools! Quarkus works naturally with containers and Kubernetes, radically simplifying the development and deployment of microservices. This powerful framework minimizes startup time and memory use, accelerating performance and reducing hosting cost. And because it's Java from the ground up, it integrates seamlessly with your existing JVM codebase. About the book Kubernetes Native Microservices with Quarkus and MicroProfile teaches you to build microservices using containers, Kubernetes, and the Quarkus framework. You'll immediately start developing a deployable application using Quarkus and the MicroProfile APIs. Then, you'll explore the startup and runtime gains Quarkus delivers out of the box and also learn how to supercharge performance by compiling natively using GraalVM. Along the way, you'll see how to integrate a Quarkus application with Spring and pick up pro tips for monitoring and managing your microservices. What's inside Deploy enterprise Java applications on Kubernetes Develop applications using the Quarkus runtime framework Compile natively using GraalVM for blazing speed Take advantage of MicroProfile specifications About the reader For intermediate Java developers comfortable with Java EE, Jakarta EE, or Spring. Some experience with Docker and Kubernetes required. About the author John Clingan is a senior principal product manager at Red Hat, where he works on enterprise Java standards and Quarkus. Ken Finnigan is a senior principal software engineer at Workday, previously at Red Hat working on Quarkus. Table of Contents PART 1 INTRODUCTION 1 Introduction to Quarkus, MicroProfile, and Kubernetes 2 Your first Quarkus application PART 2 DEVELOPING MICROSERVICES 3 Configuring microservices 4 Database access with Panache 5 Clients for consuming other microservices 6 Application health 7 Resilience strategies 8 Reactive in an imperative world 9 Developing Spring microservices with Quarkus PART 3 OBSERVABILITY, API DEFINITION, AND SECURITY OF MICROSERVICES 10 Capturing metrics 11 Tracing microservices 12 API visualization 13 Securing a microservice




Programming Kubernetes


Book Description

If you’re looking to develop native applications in Kubernetes, this is your guide. Developers and AppOps administrators will learn how to build Kubernetes-native applications that interact directly with the API server to query or update the state of resources. AWS developer advocate Michael Hausenblas and Red Hat principal software engineer Stefan Schimanski explain the characteristics of these apps and show you how to program Kubernetes to build them. You’ll explore the basic building blocks of Kubernetes, including the client-go API library and custom resources. All you need to get started is a rudimentary understanding of development and system administration tools and practices, such as package management, the Go programming language, and Git. Walk through Kubernetes API basics and dive into the server’s inner structure Explore Kubernetes’s programming interface in Go, including Kubernetes API objects Learn about custom resources—the central extension tools used in the Kubernetes ecosystem Use tags to control Kubernetes code generators for custom resources Write custom controllers and operators and make them production ready Extend the Kubernetes API surface by implementing a custom API server




Core Kubernetes


Book Description

Take a deep dive into Kubernetes inner components and discover what really powers a Kubernetes cluster. This in-depth guide shines a light on Kubernetes' murky internals, to help you better plan cloud native architectures and ensure the reliability of your systems. In Core Kubernetes you will learn about: Kubernetes base components Kubernetes networking Storage and the Container Storage Interface External load balancing and ingress Kubernetes security Different ways of creating a Kubernetes cluster Configuring Kubernetes to use a GPU To build and operate reliable Kubernetes-based systems, you need to understand what’s going on below the surface. Core Kubernetes is an in-depth guide to Kubernetes’ internal workings written by Kubernetes contributors Chris Love and Jay Vyas. It’s packed with experience-driven insights and advanced techniques you won’t find anywhere else. You’ll understand the unique security concerns of container-based applications, minimize costly unused capacity, and get pro tips for maximizing performance. Diagrams, labs, and hands-on examples ensure that the complex ideas are easy to understand and practical to apply. About the technology Real-world Kubernetes deployments are messy. Even small configuration errors or design problems can bring your system to its knees. In the real world, it pays to know how each component works so you can quickly troubleshoot, reset, and get on to the next challenge. This one-of-a-kind book includes the details, hard-won advice, and pro tips to keep your Kubernetes apps up and running. About the book This book is a tour of Kubernetes under the hood, from managing iptables to setting up dynamically scaled clusters that respond to changes in load. Every page will give you new insights on setting up and managing Kubernetes and dealing with inevitable curveballs. Core Kubernetes is a comprehensive reference guide to maintaining Kubernetes deployments in production. What's inside Kubernetes base components Storage and the Container Storage Interface Kubernetes security Different ways of creating a Kubernetes cluster Details about the control plane, networking, and other core components About the reader For intermediate Kubernetes developers and administrators. About the author Jay Vyas and Chris Love are seasoned Kubernetes developers. Table of Contents 1 Why Kubernetes exists 2 Why the Pod? 3 Let’s build a Pod 4 Using cgroups for processes in our Pods 5 CNIS and providing the Pod with a network 6 Troubleshooting large-scale network errors 7 Pod storage and the CSI 8 Storage implementation and modeling 9 Running Pods: How the kubelet works 10 DNS in Kubernetes 11 The core of the control plane 12 etcd and the control plane 13 Container and Pod security 14 Nodes and Kubernetes security 15 Installing applications