Muutke küpsiste eelistusi

E-raamat: Kubernetes: Up and Running: Dive into the Future of Infrastructure

4.06/5 (1144 hinnangut Goodreads-ist)
  • Formaat: 328 pages
  • Ilmumisaeg: 02-Aug-2022
  • Kirjastus: O'Reilly Media
  • Keel: eng
  • ISBN-13: 9781098110154
Teised raamatud teemal:
  • Formaat - EPUB+DRM
  • Hind: 47,96 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.
  • Formaat: 328 pages
  • Ilmumisaeg: 02-Aug-2022
  • Kirjastus: O'Reilly Media
  • Keel: eng
  • ISBN-13: 9781098110154
Teised raamatud teemal:

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

In just five years, Kubernetes has radically changed the way developers and ops personnel build, deploy, and maintain applications in the cloud. With this book's updated third edition, you'll learn how this popular container orchestrator can help your company achieve new levels of velocity, agility, reliability, and efficiency--whether you're new to distributed systems or have been deploying cloud native apps for some time.

Brendan Burns, Joe Beda, Kelsey Hightower, and Lachlan Evenson--who have worked on Kubernetes at Google and beyond--explain how this system fits into the life cycle of a distributed application. Software developers, engineers, and architects will learn ways to use tools and APIs to automate scalable distributed systems for online services, machine learning applications, or even a cluster of Raspberry Pi computers.

This guide shows you how to:

  • Create a simple cluster to learn how Kubernetes works
  • Dive into the details of deploying an application using Kubernetes
  • Learn specialized objects in Kubernetes, such as DaemonSets, jobs, ConfigMaps, and secrets
  • Explore deployments that tie together the lifecycle of a complete application
  • Get practical examples of how to develop and deploy real-world applications in Kubernetes

Preface xiii
1 Introduction
1(14)
Velocity
2(1)
The Value of Immutability
3(1)
Declarative Configuration
4(1)
Self-Healing Systems
5(1)
Scaling Your Service and Your Teams
6(1)
Decoupling
6(1)
Easy Scaling for Applications and Clusters
6(1)
Scaling Development Teams with Microservices
7(1)
Separation of Concerns for Consistency and Scaling
8(2)
Abstracting Your Infrastructure
10(1)
Efficiency
10(2)
Cloud Native Ecosystem
12(1)
Summary
13(2)
2 Creating and Running Containers
15(14)
Container Images
16(2)
Building Application Images with Docker
18(1)
Dockerfiles
18(2)
Optimizing Image Sizes
20(1)
Image Security
21(1)
Multistage Image Builds
22(2)
Storing Images in a Remote Registry
24(1)
The Container Runtime Interface
25(1)
Running Containers with Docker
25(1)
Exploring the kuard Application
26(1)
Limiting Resource Usage
26(1)
Cleanup
27(1)
Summary
28(1)
3 Deploying a Kubernetes Cluster
29(10)
Installing Kubernetes on a Public Cloud Provider
30(1)
Installing Kubernetes with Google Kubernetes Engine
30(1)
Installing Kubernetes with Azure Kubernetes Service
30(1)
Installing Kubernetes on Amazon Web Services
31(1)
Installing Kubernetes Locally Using minikube
31(1)
Running Kubernetes in Docker
32(1)
The Kubernetes Client
33(1)
Checking Cluster Status
33(1)
Listing Kubernetes Nodes
34(2)
Cluster Components
36(1)
Kubernetes Proxy
36(1)
Kubernetes DNS
36(1)
Kubernetes UI
37(1)
Summary
37(2)
4 Common kubectl Commands
39(8)
Namespaces
39(1)
Contexts
39(1)
Viewing Kubernetes API Objects
40(1)
Creating, Updating, and Destroying Kubernetes Objects
41(1)
Labeling and Annotating Objects
42(1)
Debugging Commands
43(1)
Cluster Management
44(1)
Command Autocompletion
45(1)
Alternative Ways of Viewing Your Cluster
45(1)
Summary
46(1)
5 Pods
47(18)
Pods in Kubernetes
48(1)
Thinking with Pods
48(1)
The Pod Manifest
49(1)
Creating a Pod
50(1)
Creating a Pod Manifest
50(1)
Running Pods
51(1)
Listing Pods
52(1)
Pod Details
52(1)
Deleting a Pod
53(1)
Accessing Your Pod
54(1)
Getting More Information with Logs
54(1)
Running Commands in Your Container with exec
55(1)
Copying Files to and from Containers
55(1)
Health Checks
55(1)
Liveness Probe
55(2)
Readiness Probe
57(1)
Startup Probe
57(1)
Advanced Probe Configuration
57(1)
Other Types of Health Checks
57(1)
Resource Management
58(1)
Resource Requests: Minimum Required Resources
59(1)
Capping Resource Usage with Limits
60(1)
Persisting Data with Volumes
61(1)
Using Volumes with Pods
61(1)
Different Ways of Using Volumes with Pods
62(1)
Putting It All Together
63(1)
Summary
64(1)
6 Labels and Annotations
65(10)
Labels
65(1)
Applying Labels
66(2)
Modifying Labels
68(1)
Label Selectors
68(2)
Label Selectors in API Objects
70(1)
Labels in the Kubernetes Architecture
71(1)
Annotations
71(2)
Cleanup
73(1)
Summary
73(2)
7 Service Discovery
75(14)
What Is Service Discovery?
75(1)
The Service Object
76(1)
Service DNS
77(1)
Readiness Checks
78(1)
Looking Beyond the Cluster
79(2)
Load Balancer Integration
81(2)
Advanced Details
83(1)
Endpoints
83(1)
Manual Service Discovery
84(1)
kube-proxy and Cluster IPs
85(1)
Cluster IP Environment Variables
86(1)
Connecting with Other Environments
86(1)
Connecting to Resources Outside of a Cluster
87(1)
Connecting External Resources to Services Inside a Cluster
87(1)
Cleanup
88(1)
Summary
88(1)
8 HTTP Load Balancing with Ingress
89(14)
Ingress Spec Versus Ingress Controllers
90(1)
Installing Contour
91(1)
Configuring DNS
92(1)
Configuring a Local hosts File
92(1)
Using Ingress
93(1)
Simplest Usage
93(1)
Using Hostnames
94(2)
Using Paths
96(1)
Cleanup
97(1)
Advanced Ingress Topics and Gotchas
97(1)
Running Multiple Ingress Controllers
97(1)
Multiple Ingress Objects
98(1)
Ingress and Namespaces
98(1)
Path Rewriting
98(1)
Serving TLS
99(1)
Alternate Ingress Implementations
100(1)
The Future of Ingress
101(1)
Summary
101(2)
9 ReplicaSets
103(10)
Reconciliation Loops
104(1)
Relating Pods and ReplicaSets
104(1)
Adopting Existing Containers
105(1)
Quarantining Containers
105(1)
Designing with ReplicaSets
105(1)
ReplicaSet Spec
106(1)
Pod Templates
106(1)
Labels
107(1)
Creating a ReplicaSet
107(1)
Inspecting a ReplicaSet
108(1)
Finding a ReplicaSet from a Pod
108(1)
Finding a Set of Pods for a ReplicaSet
108(1)
Scaling ReplicaSets
109(1)
Imperative Scaling with kubectl scale
109(1)
Declaratively Scaling with kubectl apply
109(1)
Autoscaling a ReplicaSet
110(1)
Deleting ReplicaSets
111(1)
Summary
112(1)
10 Deployments
113(16)
Your First Deployment
114(2)
Creating Deployments
116(1)
Managing Deployments
117(1)
Updating Deployments
118(1)
Scaling a Deployment
118(1)
Updating a Container Image
119(1)
Rollout History
120(3)
Deployment Strategies
123(1)
Recreate Strategy
123(1)
RollingUpdate Strategy
123(3)
Slowing Rollouts to Ensure Service Health
126(2)
Deleting a Deployment
128(1)
Monitoring a Deployment
128(1)
Summary
128(1)
11 DaemonSets
129(8)
DaemonSet Scheduler
130(1)
Creating DaemonSets
131(2)
Limiting DaemonSets to Specific Nodes
133(1)
Adding Labels to Nodes
133(1)
Node Selectors
133(2)
Updating a DaemonSet
135(1)
Deleting a DaemonSet
136(1)
Summary
136(1)
12 Jobs
137(12)
The Job Object
137(1)
Job Patterns
138(1)
One Shot
138(4)
Parallelism
142(2)
Work Queues
144(4)
Cronlobs
148(1)
Summary
148(1)
13 ConfigMaps and Secrets
149(14)
ConfigMaps
149(1)
Creating ConfigMaps
149(1)
Using a ConfigMap
150(3)
Secrets
153(1)
Creating Secrets
154(1)
Consuming Secrets
155(1)
Private Container Registries
156(1)
Naming Constraints
157(1)
Managing ConfigMaps and Secrets
158(1)
Listing
158(1)
Creating
159(1)
Updating
159(2)
Summary
161(2)
14 Role-Based Access Control for Kubernetes
163(10)
Role-Based Access Control
164(1)
Identity in Kubernetes
164(1)
Understanding Roles and Role Bindings
165(1)
Roles and Role Bindings in Kubernetes
165(3)
Techniques for Managing RBAC
168(1)
Testing Authorization with can-i
168(1)
Managing RBAC in Source Control
168(1)
Advanced Topics
168(1)
Aggregating ClusterRoles
169(1)
Using Groups for Bindings
169(2)
Summary
171(2)
15 Service Meshes
173(6)
Encryption and Authentication with Mutal TLS
174(1)
Traffic Shaping
174(1)
Introspection
175(1)
Do You Really Need a Service Mesh?
176(1)
Introspecting a Service Mesh Implementation
176(1)
Service Mesh Landscape
177(1)
Summary
178(1)
16 Integrating Storage Solutions and Kubernetes
179(18)
Importing External Services
180(1)
Services Without Selectors
181(2)
Limitations of External Services: Health Checking
183(1)
Running Reliable Singletons
183(1)
Running a MySQL Singleton
183(4)
Dynamic Volume Provisioning
187(1)
Kubernetes-Native Storage with StatefulSets
188(1)
Properties of StatefulSets
189(1)
Manually Replicated MongoDB with StatefulSets
189(3)
Automating MongoDB Cluster Creation
192(3)
Persistent Volumes and StatefulSets
195(1)
One Final Thing: Readiness Probes
195(1)
Summary
196(1)
17 Extending Kubernetes
197(12)
What It Means to Extend Kubernetes
197(1)
Points of Extensibility
198(8)
Patterns for Custom Resources
206(1)
Just Data
206(1)
Compilers
207(1)
Operators
207(1)
Getting Started
207(1)
Summary
208(1)
18 Accessing Kubernetes from Common Programming Languages
209(14)
The Kubernetes API: A Client's Perspective
209(1)
Open API and Generated Client Libraries
210(1)
But What About kubectl x?
210(1)
Programming the Kubernetes API
211(1)
Installing the Client Libraries
211(1)
Authenticating to the Kubernetes API
212(2)
Accessing the Kubernetes API
214(1)
Putting It All Together: Listing and Creating Pods in Python, Java, and NET
214(2)
Creating and Patching Objects
216(1)
Watching Kubernetes APIs for Changes
217(2)
Interacting with Pods
219(3)
Summary
222(1)
19 Securing Applications in Kubernetes
223(20)
Understanding SecurityContext
223(6)
SecurityContext Challenges
229(1)
Pod Security
229(1)
What Is Pod Security?
230(1)
Applying Pod Security Standards
231(2)
Service Account Management
233(1)
Role-Based Access Control
234(1)
RuntimeClass
234(2)
Network Policy
236(3)
Service Mesh
239(1)
Security Benchmark Tools
239(2)
Image Security
241(1)
Summary
241(2)
20 Policy and Governance for Kubernetes Clusters
243(16)
Why Policy and Governance Matter
243(1)
Admission Flow
244(1)
Policy and Governance with Gatekeeper
245(1)
What Is Open Policy Agent?
245(1)
Installing Gatekeeper
246(1)
Configuring Policies
247(3)
Understanding Constraint Templates
250(1)
Creating Constraints
251(1)
Audit
252(1)
Mutation
253(2)
Data Replication
255(2)
Metrics
257(1)
Policy Library
257(1)
Summary
257(2)
21 Multicluster Application Deployments
259(10)
Before You Even Begin
260(2)
Starting at the Top with a Load-Balancing Approach
262(1)
Building Applications for Multiple Clusters
263(2)
Replicated Silos: The Simplest Cross-Regional Model
265(1)
Sharding: Regional Data
266(1)
Better Flexibility: Microservice Routing
267(1)
Summary
268(1)
22 Organizing Your Application
269(22)
Principles to Guide Us
269(1)
Filesystems as the Source of Truth
269(1)
The Role of Code Review
270(1)
Feature Gates
271(1)
Managing Your Application in Source Control
272(1)
Filesystem Layout
272(1)
Managing Periodic Versions
273(2)
Structuring Your Application for Development, Testing, and Deployment
275(1)
Goals
275(1)
Progression of a Release
275(2)
Parameterizing Your Application with Templates
277(1)
Parameterizing with Helm and Templates
277(1)
Filesystem Layout for Parameterization
278(1)
Deploying Your Application Around the World
279(1)
Architectures for Worldwide Deployment
279(1)
Implementing Worldwide Deployment
280(2)
Dashboards and Monitoring for Worldwide Deployments
282(1)
Summary
282(1)
Building Your Own Kubernetes Cluster
283(8)
Index 291
Brendan Burns is the cofounder of the Kubernetes open source project. He is also a Distinguished Engineer at Microsoft on the Azure team. Joe Beda is the lead engineer for the Google Compute Engine project. He has been at Google for ~8 years and, besides GCE, Joe has worked on Google Talk, Goog-411 and Adwords keyword suggestions. Before Google, Joe was an engineer at Microsoft working on IE and WPF. Kelsey Hightower has worn every hat possible throughout his career in tech and enjoys leadership roles focused on making things happen and shipping software. Kelsey is a strong open source advocate focused on building simple tools that make people smile. When he isn't slinging Go code, you can catch him giving technical workshops covering everything from programming to system administration. Lachie Evenson is a principal program manager on the container compute team at Microsoft Azure. He's helped numerous people onboard to Kubernetes through both hands-on teaching and conference talks.