Muutke küpsiste eelistusi

GitOps and Kubernetes: Continuous Deployment with Argo CD, Jenkins X, and Flux [Pehme köide]

  • Formaat: Paperback / softback, 350 pages, kõrgus x laius x paksus: 235x185x20 mm, kaal: 625 g
  • Ilmumisaeg: 07-Jun-2021
  • Kirjastus: Manning Publications
  • ISBN-10: 1617297275
  • ISBN-13: 9781617297274
  • Formaat: Paperback / softback, 350 pages, kõrgus x laius x paksus: 235x185x20 mm, kaal: 625 g
  • Ilmumisaeg: 07-Jun-2021
  • Kirjastus: Manning Publications
  • ISBN-10: 1617297275
  • ISBN-13: 9781617297274
GitOps and Kubernetes introduces a radical ideamanaging your infrastructure with the same Git pull requests you use to manage your codebase. In this in-depth tutorial, youll learn to operate infrastructures based on powerful-but-complex technologies with the same Git version control tools most developers use daily.

 

GitOps and Kubernetes is half reference, half practical tutorial for operating Kubernetes the GitOps way. Through fast-paced chapters, youll unlock the benefits of GitOps for flexible configuration management, monitoring, robustness, multi-environment support, and discover tricks and tips for managing secrets in the unique GitOps fashion.

 

Key Features

·   Multiple-environments management with branching, namespace, and configuration

·   Access Control with Git, Kubernetes, and Pipeline

·   Using Kubernetes with Argo CD, JenkinsX, and Flux

·   Multi-step deployment strategies like Blue-Green, Canary in a declarative GitOps model

 

For developers familiar with Continuous Delivery principles and the basics of Git and Kubernetes.

 

About the technology

The tools to monitor and manage software delivery and deployment can be complex to set up and intimidating to learn. But with the GitOps method, you can manage your entire Kubernetes infrastructure with Git pull requests, giving you a single control interface and making it easy to assess and roll back changes!

 

Billy Yuen, Alexander Matyushentsev, Todd Ekenstam, and Jesse Suen are principal engineers for the Intuit platform. They are widely recognized as industry leads in GitOps for Kubernetes, having presented numerous related talks at industry conferences.
preface xi
acknowledgments xii
About this book xiii
About the authors xviii
About the cover illustration xx
Part 1 Background
1(52)
1 Why GitOps?
3(17)
1.1 Evolution to GitOps
4(5)
Traditional Ops
4(2)
DevOps
6(1)
GitOps
7(2)
1.2 Developer benefits of GitOps
9(4)
Infrastructure as code 9m Self-service
10(1)
Code reviews
11(1)
Git pull requests
12(1)
1.3 Operational benefits of GitOps
13(7)
Declarative
13(2)
Observability
15(1)
Auditability and compliance
16(3)
Disaster recovery
19(1)
2 Kubernetes and GitOps
20(33)
2.1 Kubernetes introduction
20(10)
What is Kubernetes?
21(1)
Other container orchestrators
22(1)
Kubernetes architecture
22(3)
Deploying to Kubernetes
25(5)
2.2 Declarative vs. imperative object management
30(7)
How declarative configuration works
34(3)
2.3 Controller architecture
37(7)
Controller delegation
37(1)
Controller pattern
38(2)
NGINX operator
40(4)
2.4 Kubernetes + GitOps
44(1)
2.5 Getting started with CI/CD
44(9)
Basic GitOps operator
45(2)
Continuous integration pipeline
47(6)
Part 2 Patterns and processes
53(186)
3 Environment management
55(31)
3.1 Introduction to environment management
56(12)
Components of an environment
57(2)
Namespace management
59(5)
Network isolation
64(3)
Preprod and prod clusters
67(1)
3.2 Git strategies
68(3)
Single branch (multiple directories)
69(1)
Multiple branches
70(1)
Multirepo vs. monorepo
70(1)
3.3 Configuration management
71(12)
Helm
72(4)
Kustomize
76(3)
Jsonnet
79(4)
Configuration management summary
83(1)
3.4 Durable vs. ephemeral environments
83(3)
4 Pipelines
86(23)
4.1 Stages in CI/CD pipelines
86(12)
GitOps continuous integration
88(6)
GitOps continuous delivery
94(4)
4.2 Driving promotions
98(4)
Code vs. manifest vs. app config
98(1)
Code and image promotion
99(2)
Environment promotion
101(1)
Putting it all together
102(1)
4.3 Other pipelines
102(7)
Rollback
103(3)
Compliance pipeline
106(3)
5 Deployment strategies
109(39)
5.1 Deployment basics
110(13)
Why ReplicaSet is not a good fit for GitOps
111(3)
How Deployment works with ReplicaSets
114(6)
Traffic routing
120(2)
Configuring minikube for other strategies
122(1)
5.2 Blue-green
123(10)
Blue-green with Deployment
125(5)
Blue-green with Argo Rollouts
130(3)
5.3 Canary
133(7)
Canary with Deployment
134(4)
Canary with Argo Rollouts
138(2)
5.4 Progressive delivery
140(8)
Progressive delivery with Argo Rollouts
140(8)
6 Access control and security
148(28)
6.1 Introduction to access control
149(6)
What is access control?
149(1)
What to secure
150(3)
Access control in GitOps
153(2)
6.2 Access limitations
155(16)
Git repository access
155(8)
Kubernetes RBAC
163(5)
Image registry access
168(3)
6.3 Patterns
171(2)
Full access
171(1)
Deployment repo access
172(1)
Code access only
172(1)
6.4 Security concerns
173(3)
Preventing image pull from untrusted registries
173(1)
Cluster-level resources in a Git repository
174(2)
7 Secrets
176(27)
7.1 Kubernetes Secrets
177(4)
Why use Secrets?
177(1)
How to use Secrets
178(3)
7.2 GitOps and Secrets
181(1)
No encryption
181(1)
Distributed Git repos
181(1)
No granular (file-level) access control
181(1)
Insecure storage
181(1)
Full commit history
182(1)
7.3 Secrets management strategies
182(5)
Storing Secrets in Git
182(1)
Baking Secrets into the container image
182(1)
Out-of band management
183(1)
External Secrets management systems
184(1)
Encrypting Secrets in Git
185(1)
Comparison of strategies
186(1)
7.4 Tooling
187(16)
HashiCorp Vault
187(3)
Vault Agent Sidecar Injector
190(4)
Sealed Secrets
194(4)
Kustomize Secret generator plugin
198(5)
8 Observability
203(36)
8.1 What is observability?
204(15)
Event logging
205(4)
Metrics
209(3)
Tracing
212(5)
Visualization
217(2)
Importance of observability in GitOps
219(1)
8.2 Application health
219(8)
Resource status
220(4)
Readiness and liveness
224(1)
Application monitoring and alerting
225(2)
8.3 GitOps observability
227(12)
GitOps metrics
227(1)
Application sync status
228(4)
Configuration drift
232(2)
GitOps change log
234(5)
Part 3 Tools
239(60)
9 Argo CD
241(26)
9.1 What is Argo CD?
241(8)
Main use cases
242(1)
Core concepts
243(1)
Sync and health statuses
244(2)
Architecture
246(3)
9.2 Deploy your first application
249(4)
Deploying the first application
249(2)
Inspect the application using the user interface
251(2)
9.3 Deep dive into Argo CD features
253(4)
GitOps-driven deployment
253(1)
Resource hooks
254(3)
Postdeployment verification
257(1)
9.4 Enterprise features
257(10)
Single sign-on
258(3)
Access control
261(2)
Declarative management
263(4)
10 Jenkins X
267(17)
10.1 What is Jenkins X?
267(2)
10.2 Exploring Prow, Jenkins X pipeline operator, and Tekton
269(4)
10.3 Importing projects into Jenkins X
273(11)
Importing a project
274(7)
Promoting a release to the production environment
281(3)
11 Flux
284(15)
11.1 What is Flux?
284(5)
What Flux does
285(1)
Docker registry scanning
286(2)
Architecture
288(1)
11.2 Simple application deployment
289(7)
Deploying the first application
289(1)
Observing application state
290(1)
Upgrading the deployment image
291(1)
Using Kustomize for manifest generation
292(2)
Securing deployment using GPG
294(2)
11.3 Multitenancy with Flux
296(3)
Appendix A Setting up a test Kubernetes cluster 299(3)
Appendix B Setting up GitOps tools 302(11)
Appendix C Configuring GPG key 313(2)
index 315
Billy Yuen, Alexander Matyushentsev, Todd Ekenstam, and Jesse Suen are principal engineers for the Intuit platform. They are widely recognized as industry leads in GitOps for Kubernetes, having presented numerous related talks at industry conferences.