My Account Log in

1 option

Implementing GitOps with Kubernetes : automate, manage, scale, and secure infrastructure and cloud-native applications on AWS and Azure / Pietro Libro, Artem Lajko.

O'Reilly Online Learning: Academic/Public Library Edition Available online

View online
Format:
Book
Author/Creator:
Libro, Pietro, author.
Lajko, Artem, author.
Language:
English
Subjects (All):
Git (Computer file).
Kubernetes.
Application software--Development.
Application software.
Physical Description:
1 online resource (444 pages) : illustrations
Edition:
First edition.
Place of Publication:
Birmingham, UK : Packt Publishing Ltd., 2024.
Summary:
This book covers actionable GitOps practices for automated, secure Kubernetes deployments with industry-tested scenarios. You’ll be able to leverage GitOps to tackle cloud-native software delivery challenges, such as preventing data drifts between systems and Git repositories, and ensuring rapid, error-free deployments. The book introduces GitOps core concepts and principles and then delves into integrating version control and GitOps tools such as Argo CD, Flux CD, Helm, and Kustomize with Kubernetes. You’ll learn about scaling GitOps across multiple clusters, architectural designs for efficient cloud-native operations, and the cultural transformation needed to support GitOps adoption within an organization. As you progress, you’ll be able to automate infrastructure and implement CI/CD processes on OpenShift, MS Azure, and AWS platforms using GitOps, Terraform, OpenTofu, and Argo CD. You’ll also explore examples and best practices for integrating observability, enhancing security, managing financial operations (FinOps), and future trends such as AI and sustainability in GitOps. By the end of this book, you’ll have gained the skills you need to apply GitOps strategies for robust Kubernetes and cloud deployments, thereby boosting your productivity and efficiency.
Contents:
Cover
Title Page
Copyright and Credits
Contributors
Table of Contents
Preface
Part 1: Understanding GitOps via Uncomplicated Orchestrations/ Kubernetes
Chapter 1: An Introduction to GitOps
Technical requirements
GitOps unveiled - reshaping development culture and practices
Traditional CI/CD with DevOps against GitOps
The fundamentals of GitOps and the advantages of adopting it for platform engineering
Why GitOps?
The integration between GitOps, IaC, and Kubernetes
GitOps and IaC
GitOps and Kubernetes
Kubernetes and Argo CD
Kubernetes and Flux CD
Summary
Further reading
Chapter 2: Navigating Cloud-native Operations with GitOps
An overview of the integration of GitOps and cloud-native technology
An introduction to Kubernetes
What is Kubernetes?
Kubernetes architecture
Exploring K3s as a lightweight Kubernetes distribution
Local cluster setup
K3s setup and installation verification
Kubernetes manifest
Our first deployment with K3s
Port forwarding
Getting started with containers
Docker setup
Docker alternatives
Dockerfile
Sample workflow - effortless CD with Docker and K3s
Local development
Dockerizing the application and running it locally
Publishing the image to a container registry
Deploying to K3s
Chapter 3: Version Control and Integration with Git and GitHub
Exploring version control systems - local, centralized, and distributed
Why Git?
Git setup
Creating and cloning a Git repository
The basics of Git
Exploring GitHub
GitHub's ecosystem
GitHub flow
Integrating GitOps and GitHub
Chapter 4: Kubernetes with GitOps Tools
Overview of popular GitOps tools.
A deep dive into Helm and Kustomize
Helm
Kustomize
Argo CD integration with Kubernetes
Argo CD setup
Flux integration with Kubernetes
Flux setup
Deploying to Kubernetes with Flux
Comparing Argo CD and Flux
Part 2: Harnessing Advanced Orchestrations, Culture, and Control in GitOps Practices
Chapter 5: GitOps at Scale and Multitenancy
Traditional CI/CD versus GitOps CD
Platform engineering versus IDPs
Understanding the App of Apps approach
Use cases of App of Apps combined with examples
The ApplicationSets approach
Which approach should be used?
Understanding multi-cluster management
One cockpit to rule them all
One cockpit - multiple fleet and commander concept
Understanding effective Git repository strategies
Environment branches
Environment per Git
Folders for environments
Scaling with ApplicationSet generators
Building a service catalog for Kubernetes
Building the service catalog
Exploring native multitenancy with Argo CD
Exploring multitenancy with vCluster and Argo CD
Bonus - simplified connection to multiple vClusters - a handy bash script
Limitations solved in multitenancy with GitOps - a review
Wrapping up - insights and lessons from multitenancy experiences
References
Chapter 6: GitOps Architectural Designs and Operational Control
Exploring diverse GitOps architectural frameworks for Kubernetes environments
Examining the impact of architectural choices on GitOps' effectiveness
Architectural choices impacting GitOps
Making informed architectural decisions
Tailoring designs for scalability, resilience, and efficiency in cloud-native deployments
Scalability in cloud-native architectures
Resilience through redundancy and isolation
Efficiency with proactive optimization.
Tailoring designs with GitOps
Centralized control - managing clusters with a solo Argo instance
The approach - centralized control
When to use the centralized control approach
When to avoid the centralized control approach
Dedicated instances - instance per cluster with Argo CD
When to use dedicated Argo CD instances
When to avoid dedicated Argo CD instances
Dedicated instances - instance per cluster with Flux CD
The middle way - instance per logical group with Argo CD
When to use the middle-way approach
When not to use the middle-way approach
The cockpit and fleet approach with Argo CD
Delving deeper into the approach
Operational dynamics
When to use the cockpit and fleet approach
When not to use the cockpit and fleet approach
Choosing the right approach for your GitOps needs
Centralized Kubernetes cluster creation - leveraging Cluster API and Argo CD for streamlined cluster deployment
Introduction to Cluster API
How Cluster API is leveraged by different companies
A deep dive into Cluster API and GitOps - hands-on
Initializing the management cluster
Creating your first workload cluster
Chapter 7: Cultural Transformation in IT for Embracing GitOps
Treating infrastructure as an application
Understanding IaC
Understanding infrastructure as applications in Argo CD's GitOps framework
Embracing infra-as-apps - bridging GitOps and infrastructure management
How IaC can be used to deploy infrastructure
Why infra-as-apps is a game-changer?
Understanding the principles of immutable infrastructure
The essence of immutable infrastructure
Integrating immutable infrastructure with GitOps
Introducing DORA metrics
Understanding the need for continual improvement in GitOps
Overcoming cultural barriers to adopt GitOps.
A project's story - exchange, experiences, and learnings
Essential Q&amp
A from another recent project
Part 3: Hands-on Automating Infrastructure and CI/CD with GitOps
Chapter 8: GitOps with OpenShift
Introduction to Red Hat OpenShift
Red Hat OpenShift environment setup
Troubleshooting OpenShift CRC setup issues
Setting Up GitOps in Red Hat OpenShift
Leveraging Red Hat OpenShift's CI/CD for GitOps
Automation and configuration best practices
A comparison of Kubernetes Red Hat OpenShift
Chapter 9: GitOps for Azure and AWS Deployments
Azure and AWS accounts
Cloud GitOps essentials - Azure and AWS
Azure GitOps essentials
AWS GitOps essentials
GitOps applications in cloud environments
Cross-cloud strategies
GitOps strategies for Azure and AWS deployments for Kubernetes
Azure GitOps strategies
AWS GitOps strategies
Chapter 10: GitOps for Infrastructure Automation - Terraform and Flux CD
Introducing infrastructure automation with Terraform and Flux CD
Setting up Terraform in a GitOps workflow
Tofu Controller (formerly Weave TF-Controller)
Getting started with the setup
Exploring Flux CD - enabling CD in Kubernetes
Combining Terraform and Flux CD for enhanced automation
Providing new infrastructure by updating Terraform files
Enhanced disaster recovery capabilities
Creating and managing multi-stage environments
Version control and automation with Terraform and Flux CD
Security and best practices with Terraform and Flux CD
Best practices for configuration and maintenance
Best practices for managing multi-environment configurations
Git workflow strategies
Multi-environment management with Terraform and Flux CD
Summary.
Chapter 11: Deploying Real-World Projects with GitOps on Kubernetes
Establishing a GitOps and Kubernetes development environment
Implementing CI/CD with GitOps
Final objective and implementation
CI/CD pipeline using GitHub Actions and Terraform
Using Argo CD for the continuous deployment
Designing for scalability and efficiency
Architectural principles
Resource management
Testing for scalability
Resources management and scalability
Optimizing resource usage
Implementing the HPA
Testing for scalability - an example
Monitoring and securing your application
Monitoring
Setting up Prometheus and Grafana
Understanding Kubernetes security
Part 4: Operational Excellence Through GitOps Best Practices
Chapter 12: Observability with GitOps
Exploring the fundamentals of SRE for GitOps and Kubernetes
The intersection of SRE with GitOps
SRE principles in a Kubernetes context
Understanding internal (white box) versus external (black box) observability
Internal or white box observability explained
External or black box observability defined
Balancing internal and external observability
Exploring SLO-driven multi-stage performance with DORA
Integrating SLOs with DORA metrics
Applying a multi-stage approach
Implementing distributed tracing in GitOps with Linkerd
Implementing monitoring in GitOps with tools such as Uptime Kuma and OpenTelemetry
Uptime Kuma - the external watchdog for your online services
OpenTelemetry - a unified observability framework
Looking at alerting strategies in a GitOps framework
Some relevant alerting rules
Diving deeper into node overcommitment in Kubernetes
Scaling observability with GitOps
Scaling observability components
Organizational strategies for effective observability.
Selecting the right observability tools for specific use cases.
Notes:
OCLC-licensed vendor bibliographic record.
Description based on publisher supplied metadata and other sources.
ISBN:
1-83588-422-9
OCLC:
1454586715

The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.

Find

Home Release notes

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Find catalog Using Articles+ Using your account