1 option
Implementing GitOps with Kubernetes : automate, manage, scale, and secure infrastructure and cloud-native applications on AWS and Azure / Pietro Libro, Artem Lajko.
- 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&
- 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.