Hybrid Cloud Apps with OpenShift and Kubernetes

Book description

Selling your CTO on the merits of OpenShift and Kubernetes is only the beginning. To operate and scale OpenShift, you also need to know how to manage and expose resources to application teams and continuously deliver changes to the applications running in these environments. With this practical book, new and experienced developers and operators will learn specific techniques for operationalizing OpenShift and Kubernetes in the enterprise.

Industry experts Michael Elder, Jake Kitchener, and Brad Topol show you how to run OpenShift and Kubernetes in production and deliver your applications to a highly available, secure, and scalable platform. You'll learn how to build a strong foundation in advanced cluster operational topics, such as tenancy management, scheduling and capacity management, cost management, continuous delivery, and more.

  • Examine the fundamental concepts of Kubernetes architecture
  • Get different Kubernetes and OpenShift environments up and running
  • Dive into advanced resource management topics, including capacity planning
  • Learn how to support high availability inside a single cluster
  • Use production-level approaches for continuous delivery and code promotion across clusters
  • Explore hybrid cloud use cases, including multicluster provisioning, upgrading, and policy support
  • Devise and deliver disaster recovery strategies

Publisher resources

View/Submit Errata

Table of contents

  1. Foreword
  2. Preface
    1. Why We Wrote This Book
    2. Who This Book Is For
    3. How This Book Is Organized
    4. Conventions Used in This Book
    5. Using Code Examples
    6. O’Reilly Online Learning
    7. How to Contact Us
    8. Acknowledgments
  3. 1. Kubernetes and OpenShift Overview
    1. Kubernetes: Cloud Infrastructure for Orchestrating Containerized Applications
    2. CNCF Accelerates the Growth of the Kubernetes Ecosystem
    3. OpenShift: Red Hat’s Distribution of Kubernetes
      1. Benefits of OpenShift for Developers
      2. Benefits of OpenShift for IT Operations
    4. Summary
  4. 2. Getting Started with OpenShift and Kubernetes
    1. Kubernetes Architecture
    2. Deployment Options for Kubernetes and OpenShift
      1. Red Hat’s CodeReady Containers
      2. IBM Cloud
      3. OpenShift Deployment Options
    3. Kubernetes and OpenShift Command-Line Tools
    4. Kubernetes Fundamentals
      1. What’s a Pod?
      2. How Do I Describe What’s in My Pod?
      3. Deployments
      4. Running the Pod and Deployment Examples in Production on OpenShift
      5. Service Accounts
    5. OpenShift Enhancements
      1. Authentication
      2. Projects
      3. Applications
      4. Security Context Constraints
      5. Image Streams
    6. Kubernetes and OpenShift Advanced Topics
      1. Webhooks
      2. Admission Controllers
      3. Role-Based Access Control
      4. Operators
    7. Summary
  5. 3. Advanced Resource Management
    1. Pod Resources and Scheduling
      1. Driving Scheduler Decisions via Resource Requests
      2. Node Available Resources
      3. Scheduling
      4. Pod Priority and Preemption
    2. Post-Scheduling Pod Life Cycle
      1. Pod Quality of Service
      2. Pod QoS Levels
      3. Testing Resource Limits
      4. Node Eviction
    3. Capacity Planning and Management
      1. Kubernetes Worker Node Capacity
      2. Kubernetes Master Capacity
    4. Admission Controller Best Practices
      1. Standard Admission Controllers
      2. Admission Webhooks
    5. Summary
  6. 4. Single Cluster Availability
    1. System Availability
      1. Measuring System Availability
      2. What Is a Highly Available System?
      3. OpenShift and Kubernetes Application and Service Availability
    2. Failure Modes
      1. Application Pod Failure
      2. Worker Node Failure
      3. Worker Zone Failure
      4. Control Plane Failure
      5. Network Failure
    3. Summary
  7. 5. Continuous Delivery Across Clusters
    1. Helm
    2. Kustomize
      1. Generators
      2. Composition
      3. Patches
      4. Overlays
      5. Direct Deploy of Kustomize-Generated Resource Files
    3. GitOps
    4. Razee
    5. Argo CD
    6. Tekton
      1. Tasks
      2. Pipelines
    7. OpenShift Pipelines
    8. Open Cluster Management Apps
    9. Summary
  8. 6. Multicluster Fleets: Provision and Upgrade Life Cycles
    1. Why Multicluster?
      1. Use Case: Using Multiple Clusters to Provide Regional Availability for Your Applications
      2. Use Case: Using Multiple Clusters for Multiple Tenants
      3. Use Case: Supporting Far-Edge Use Cases Where Clusters Do Not Run in Traditional Datacenters or Clouds
      4. Architectural Characteristics
    2. Provisioning Across Clouds
      1. User-Managed OpenShift
      2. Upgrading Your Clusters to the Latest Version of Kubernetes
      3. Summary of Multicloud Cluster Provisioning
      4. OpenShift as a Service
      5. Kubernetes as a Service
    3. Operating System Currency for Nodes
    4. Summary
  9. 7. Multicluster Policy Configuration
    1. Configuring Your Cluster with Operators
      1. Understanding Operators
      2. Example: Container Security Operator
      3. Using Cluster Operators to Manage OpenShift
      4. Example: Configuring the Authentication Operator
      5. OpenShift htpasswd Identity Provider
    2. Policy and Compliance Across Multiple Clusters
      1. Policy Example: Federate a Project Across Your Fleet
      2. PlacementRules to Assign Content to ManagedClusters
      3. Policy Example: Managing etcd Encryption Within ManagedClusters
      4. Policy Example: Managing RBAC Within ManagedClusters
      5. Policy Example: Managing IdPs Within ManagedClusters
      6. Policy Example: Managing Upgrades with Policy Across ManagedClusters
    3. Summary
  10. 8. Working Example of Multicluster Application Delivery
    1. Failure Is Inevitable
    2. Multicluster Load Balancing
    3. Automating Without Operators
    4. Deploying the Example Application
    5. Configure Your Hub Cluster
      1. Provision an OpenShift Cluster to Host the Open Cluster Management Hub
      2. Configure the Open Cluster Management Hub
      3. Provision Two or More Clusters to Host the Application
    6. Deploy Ansible Tower and the Ansible Resource Operator
      1. Configure Projects for ServiceNow and F5 DNS Load Balancer
      2. Configure the toweraccess Secret and Create the Ansible Tower Token
    7. Deploy the pacman-app Example to Your Cluster
    8. Summary
  11. 9. The Future of Kubernetes and OpenShift
    1. Increased Migration of Legacy Enterprise Applications to Cloud Native Applications
    2. Increased Adoption of Kubernetes for High Performance Computing
    3. Kubernetes and OpenShift Will Become the De Facto Platforms for Machine Learning and Deep Learning
    4. Open Cloud Marketplaces Will Accelerate Adoption of Cloud Native Applications
    5. OpenShift Will Be the Platform for Enterprise Multicloud
    6. Recommended Resources
      1. IBM Developer Website
      2. Learn OpenShift
      3. Kubernetes Website
      4. Kubernetes IBM Cloud Provider Special Interest Group
      5. Kubernetes Contributor Experience Special Interest Group
    7. Summary
  12. Index

Product information

  • Title: Hybrid Cloud Apps with OpenShift and Kubernetes
  • Author(s): Michael Elder, Jake Kitchener, Dr. Brad Topol
  • Release date: June 2021
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9781492083818