GitOps and Kubernetes 1st Edition by Billy Yuen, Alexander Matyushentsev, Jesse Suen, Todd Ekenstam – Ebook PDF Instant Download/Delivery: 1638350728, 978- 1638350729
Full download GitOps and Kubernetes 1st Edition after payment
Product details:
ISBN 10: 1638350728
ISBN 13: 978-1638350729
Author: Billy Yuen, Alexander Matyushentsev, Jesse Suen, Todd Ekenstam
GitOps and Kubernetes teaches you how to use Git and the GitOps methodology to manage a Kubernetes cluster.
Summary
GitOps and Kubernetes introduces a radical idea—managing your infrastructure with the same Git pull requests you use to manage your codebase. In this in-depth tutorial, you’ll learn to operate infrastructures based on powerful-but-complex technologies such as Kubernetes with the same Git version control tools most developers use daily. With these GitOps techniques and best practices, you’ll accelerate application development without compromising on security, easily roll back infrastructure changes, and seamlessly introduce new team members to your automation process.
Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
About the technology
With GitOps you use the Git version control system to organize and manage your infrastructure just like any other codebase. It’s an excellent model for applications deployed as containers and pods on Kubernetes.
About the book
GitOps and Kubernetes teaches you how to use Git and the GitOps methodology to manage a Kubernetes cluster. The book interleaves theory with practice, presenting core Ops concepts alongside easy-to-implement techniques so you can put GitOps into action. Learn to develop pipelines that trace changes, roll back mistakes, and audit container deployment.
What’s inside
Managing secrets the GitOps way
Controlling access with Git, Kubernetes, and Pipeline
Branching, namespaces, and configuration
About the reader
For developers and operations engineers familiar with continuous delivery, Git, and Kubernetes.
About the author
Billy Yuen, Alexander Matyushentsev, Todd Ekenstam, and Jesse Suen are principal engineers at Intuit. They are widely recognized for their work in GitOps for Kubernetes.
GitOps and Kubernetes 1st Table of contents:
Part 1: Background
1. Why GitOps?
-
1.1 Evolution to GitOps
- 1.1.1 Traditional Ops: The traditional operations and configuration management practices.
- 1.1.2 DevOps: Introduction of DevOps as a bridge between development and operations teams.
- 1.1.3 GitOps: The GitOps model, where Git becomes the source of truth for infrastructure and application deployment.
-
1.2 Developer Benefits of GitOps
- 1.2.1 Infrastructure as Code: Infrastructure is managed through code in Git.
- 1.2.2 Self-Service: Developers gain the ability to manage their environments.
- 1.2.3 Code Reviews: Version control through Git and the benefit of code review practices.
- 1.2.4 Git Pull Requests: Workflow enhanced by Git pull requests for deployment changes.
-
1.3 Operational Benefits of GitOps
- 1.3.1 Declarative: GitOps embraces declarative configuration for infrastructure.
- 1.3.2 Observability: Continuous monitoring and real-time feedback.
- 1.3.3 Auditability and Compliance: Detailed tracking of changes for auditing and compliance.
- 1.3.4 Disaster Recovery: Recovery processes based on Git histories and configurations.
2. Kubernetes and GitOps
-
2.1 Kubernetes Introduction
- 2.1.1 What is Kubernetes?: An introduction to Kubernetes as an orchestration platform for containerized applications.
- 2.1.2 Other Container Orchestrators: Overview of other tools like Docker Swarm, Mesos, etc.
- 2.1.3 Kubernetes Architecture: Explanation of the components such as nodes, pods, services, etc.
- 2.1.4 Deploying to Kubernetes: How applications are deployed and managed in Kubernetes.
-
2.2 Declarative vs. Imperative Object Management
- 2.2.1 How Declarative Configuration Works: The power of declaring the desired state instead of imperatively managing it.
-
2.3 Controller Architecture
- 2.3.1 Controller Delegation: Managing state using controllers in Kubernetes.
- 2.3.2 Controller Pattern: Design patterns for building Kubernetes controllers.
- 2.3.3 NGINX Operator: A specific example of using operators for managing NGINX deployments.
-
2.4 Kubernetes + GitOps: Integrating GitOps with Kubernetes for better management.
-
2.5 Getting Started with CI/CD
- 2.5.1 Basic GitOps Operator: Setup for a simple GitOps operator.
- 2.5.2 Continuous Integration Pipeline: Integrating CI pipelines with GitOps for continuous delivery.
Part 2: Patterns and Processes
3. Environment Management
-
3.1 Introduction to Environment Management
- 3.1.1 Components of an Environment: Key elements that make up an environment (e.g., network, namespaces).
- 3.1.2 Namespace Management: Organizing resources in namespaces.
- 3.1.3 Network Isolation: Controlling network access between environments.
- 3.1.4 Preprod and Prod Clusters: Managing preproduction and production environments.
-
3.2 Git Strategies
- 3.2.1 Single Branch (Multiple Directories): Using one branch with separate directories.
- 3.2.2 Multiple Branches: Managing different environments using multiple branches.
- 3.2.3 Multirepo vs. Monorepo: The choice between multiple repositories versus a single repository.
-
3.3 Configuration Management
- 3.3.1 Helm: Managing Kubernetes configurations using Helm.
- 3.3.2 Kustomize: Kubernetes configuration customization and management.
- 3.3.3 Jsonnet: Using Jsonnet for Kubernetes configuration templating.
- 3.3.4 Configuration Management Summary: A wrap-up of configuration management tools.
-
3.4 Durable vs. Ephemeral Environments: Discussing long-lasting versus temporary environments.
4. Pipelines
-
4.1 Stages in CI/CD Pipelines
- 4.1.1 GitOps Continuous Integration: The role of continuous integration in GitOps.
- 4.1.2 GitOps Continuous Delivery: Implementing continuous delivery with GitOps.
-
4.2 Driving Promotions
- 4.2.1 Code vs. Manifest vs. App Config: Managing the flow of code, manifests, and application configurations.
- 4.2.2 Code and Image Promotion: Managing the promotion of code and images across environments.
- 4.2.3 Environment Promotion: Moving applications through different environments (dev → prod).
- 4.2.4 Putting It All Together: Bringing the concepts into a unified GitOps process.
-
4.3 Other Pipelines
- 4.3.1 Rollback: Implementing rollback functionality in GitOps pipelines.
- 4.3.2 Compliance Pipeline: Ensuring compliance through CI/CD pipelines.
5. Deployment Strategies
-
5.1 Deployment Basics
- 5.1.1 Why ReplicaSet is Not a Good Fit for GitOps: Understanding why ReplicaSets are limited in GitOps scenarios.
- 5.1.2 How Deployment Works with ReplicaSets: Understanding the deployment process in Kubernetes.
- 5.1.3 Traffic Routing: Managing traffic routing between versions of applications.
- 5.1.4 Configuring Minikube for Other Strategies: Setting up Minikube for other deployment strategies.
-
5.2 Blue-Green
- 5.2.1 Blue-Green with Deployment: Deploying using Blue-Green strategy with Kubernetes Deployment.
- 5.2.2 Blue-Green with Argo Rollouts: Implementing Blue-Green deployment with Argo Rollouts.
-
5.3 Canary
- 5.3.1 Canary with Deployment: Implementing Canary releases with Kubernetes Deployment.
- 5.3.2 Canary with Argo Rollouts: Managing Canary deployments using Argo Rollouts.
-
5.4 Progressive Delivery
- 5.4.1 Progressive Delivery with Argo Rollouts: Advanced strategies for progressive delivery using Argo Rollouts.
6. Access Control and Security
-
6.1 Introduction to Access Control
- 6.1.1 What is Access Control?: Understanding how access control works in GitOps environments.
- 6.1.2 What to Secure: Identifying key areas to secure within the system.
- 6.1.3 Access Control in GitOps: Specific considerations for securing GitOps workflows.
-
6.2 Access Limitations
- 6.2.1 Git Repository Access: Securing access to Git repositories.
- 6.2.2 Kubernetes RBAC: Role-Based Access Control in Kubernetes.
- 6.2.3 Image Registry Access: Securing access to container image registries.
-
6.3 Patterns
- 6.3.1 Full Access: Granting full access across the GitOps pipeline.
- 6.3.2 Deployment Repo Access: Restricted access to deployment repositories.
- 6.3.3 Code Access Only: Limiting access to code repositories only.
-
6.4 Security Concerns
- 6.4.1 Preventing Image Pull from Untrusted Registries: Securing the image pull process.
- 6.4.2 Cluster-Level Resources in a Git Repository: Securing cluster-level resources stored in Git repositories.
7. Secrets
-
7.1 Kubernetes Secrets
- 7.1.1 Why Use Secrets?: The importance of securing sensitive data in Kubernetes.
- 7.1.2 How to Use Secrets: Managing secrets in Kubernetes.
-
7.2 GitOps and Secrets
- 7.2.1 No Encryption: Risks of storing secrets without encryption.
- 7.2.2 Distributed Git Repos: Managing secrets in distributed Git repositories.
- 7.2.3 No Granular (File-Level) Access Control: Issues with access control at the file level.
- 7.2.4 Insecure Storage: Potential risks of insecure storage of secrets.
- 7.2.5 Full Commit History: Concerns with keeping secrets in commit history.
-
7.3 Secrets Management Strategies
- 7.3.1 Storing Secrets in Git: Best practices for storing secrets in Git.
- 7.3.2 Baking Secrets into Container Images: Securing secrets within container images.
- 7.3.3 Out-of-Band Management: Managing secrets outside GitOps pipelines.
- 7.3.4 External Secrets Management Systems: Leveraging external tools for managing secrets.
- 7.3.5 Encrypting Secrets in Git: Techniques to encrypt secrets within Git repositories.
- 7.3.6 Comparison of Strategies: Comparison of different secrets management strategies.
-
7.4 Tooling
- 7.4.1 HashiCorp Vault: Using Vault for secrets management.
- 7.4.2 Vault Agent Sidecar Injector: Injecting secrets using Vault Agent.
- 7.4.3 Sealed Secrets: Using Sealed Secrets for encrypted storage of secrets.
- 7.4.4 Kustomize Secret Generator Plugin: Managing secrets using Kustomize.
8. Observability
-
8.1 What is Observability?
- 8.1.1 Event Logging: Tracking events for observability.
- 8.1.2 Metrics: Gathering metrics for system performance monitoring.
- 8.1.3 Tracing: Distributed tracing for deep system analysis.
- 8.1.4 Visualization: Visualizing the data for easier interpretation.
- 8.1.5 Importance of Observability in GitOps: Why observability is critical for GitOps.
-
8.2 Application Health
- 8.2.1 Resource Status: Monitoring the status of resources.
- 8.2.2 Readiness and Liveness: Health checks for applications.
- 8.2.3 Application Monitoring and Alerting: Real-time monitoring and alerting for app health.
-
8.3 GitOps Observability
- 8.3.1 GitOps Metrics: Key performance indicators for GitOps.
- 8.3.2 Application Sync Status: Ensuring the application is in sync with Git.
- 8.3.3 Configuration Drift: Identifying and addressing configuration drift.
- 8.3.4 GitOps Change Log: Tracking changes to the GitOps pipeline.
Part 3: Tools
9. Argo CD
-
9.1 What is Argo CD?: Overview of Argo CD for GitOps-driven Kubernetes deployments.
- 9.1.1 Main Use Cases: Key scenarios for Argo CD.
- 9.1.2 Core Concepts: Fundamental principles of Argo CD.
- 9.1.3 Sync and Health Statuses: Monitoring sync and health in Argo CD.
- 9.1.4 Architecture: How Argo CD is architected.
-
9.2 Deploy Your First Application: Hands-on tutorial for deploying an app with Argo CD.
-
9.3 Deep Dive into Argo CD Features: Exploring advanced features like resource hooks and post-deployment verification.
-
9.4 Enterprise Features
- 9.4.1 Single Sign-On: Enabling single sign-on in Argo CD.
- 9.4.2 Access Control: Managing access within Argo CD.
- 9.4.3 Declarative Management: Using declarative management with Argo CD.
10. Jenkins X
- 10.1 What is Jenkins X?: Overview of Jenkins X as a CI/CD platform for Kubernetes.
- 10.2 Exploring Prow, Jenkins X Pipeline Operator, and Tekton: Deep dive into Jenkins X pipeline components.
- 10.3 Importing Projects into Jenkins X: Step-by-step guide to import projects and manage releases.
11. Flux
-
11.1 What is Flux?: Introduction to Flux for continuous delivery in Kubernetes.
- 11.1.1 What Flux Does: Key functionality and use cases.
- 11.1.2 Docker Registry Scanning: Scanning images from Docker registries.
- 11.1.3 Architecture: The architecture behind Flux.
-
11.2 Simple Application Deployment: Hands-on guide to deploying an app with Flux.
- 11.2.1 Deploying the First Application: Step-by-step deployment guide.
- 11.2.2 Observing Application State: Monitoring the state of the deployed application.
- 11.2.3 Upgrading the Deployment Image: How to update deployed applications.
- 11.2.4 Using Kustomize for Manifest Generation: Using Kustomize in Flux for configuration management.
- 11.2.5 Securing Deployment Using GPG: Security best practices with GPG.
-
11.3 Multitenancy with Flux: Managing multitenant environments using Flux.
People also search for GitOps and Kubernetes 1st :
kubernetes go client examples
gitops kubernetes example
kubernetes in action vs kubernetes up and running
what is kubernetes with example
how to deploy to kubernetes using argo cd and gitops
Tags:
Billy Yuen,Alexander Matyushentsev,Jesse Suen,Todd Ekenstam,GitOps,Kubernetes 1st