Foreword |
|
xiii | |
Preface |
|
xiv | |
Acknowledgements |
|
xv | |
About this book |
|
xvii | |
About the author |
|
xx | |
About the cover illustration |
|
xxi | |
|
|
1 | (23) |
|
|
2 | (1) |
|
Deploying, upgrading, and routing |
|
|
3 | (1) |
|
|
3 | (1) |
|
|
3 | (1) |
|
|
3 | (1) |
|
|
4 | (3) |
|
Workloads with unpredictable, latency-insensitive demand |
|
|
4 | (2) |
|
Stitching together events from multiple sources |
|
|
6 | (1) |
|
Decomposing monoliths in small increments |
|
|
7 | (1) |
|
|
7 | (5) |
|
|
11 | (1) |
|
|
12 | (2) |
|
1.6 What's in the Knative box? |
|
|
14 | (2) |
|
|
14 | (1) |
|
|
15 | (1) |
|
|
15 | (1) |
|
1.7 Keeping things under control |
|
|
16 | (6) |
|
|
17 | (2) |
|
|
19 | (3) |
|
|
22 | (2) |
|
2 Introducing Knative Serving |
|
|
24 | (15) |
|
|
25 | (7) |
|
|
25 | (1) |
|
|
26 | (1) |
|
|
27 | (1) |
|
|
28 | (1) |
|
|
29 | (1) |
|
|
30 | (2) |
|
|
32 | (7) |
|
The controller and reconcilers |
|
|
32 | (1) |
|
|
33 | (1) |
|
|
34 | (1) |
|
Autoscaler, Activator, and Queue-Proxy |
|
|
35 | (4) |
|
3 Configurations and Revision |
|
|
39 | (61) |
|
3.1 Those who cannot remember the past are condemned to redeploy it |
|
|
40 | (1) |
|
3.2 The bedtime story version of the history of deployment as a concept |
|
|
41 | (7) |
|
The Blue/Green deployment |
|
|
42 | (3) |
|
|
45 | (1) |
|
|
45 | (2) |
|
|
47 | (1) |
|
3.3 The anatomy of Configurations |
|
|
48 | (6) |
|
|
51 | (1) |
|
Taking it all in with kubectl describe |
|
|
52 | (2) |
|
3.4 The anatomy of Revisions |
|
|
54 | (27) |
|
|
55 | (2) |
|
|
57 | (1) |
|
|
58 | (3) |
|
|
61 | (2) |
|
The environment, directly |
|
|
63 | (2) |
|
The environment, indirectly |
|
|
65 | (4) |
|
|
69 | (2) |
|
|
71 | (2) |
|
Setting consumption limits |
|
|
73 | (2) |
|
|
75 | (2) |
|
|
77 | (3) |
|
|
80 | (1) |
|
4.1 Using kn to work with Routes |
|
|
81 | (1) |
|
4.2 The anatomy of Routes |
|
|
82 | (2) |
|
4.3 The anatomy of Traffic Targets |
|
|
84 | (16) |
|
configurationName and revisionName |
|
|
85 | (2) |
|
|
87 | (1) |
|
|
88 | (12) |
|
|
100 | (32) |
|
5.1 The autoscaling problem |
|
|
101 | (2) |
|
5.2 Autoscaling when there are zero instances |
|
|
103 | (3) |
|
|
106 | (1) |
|
5.3 Autoscaling when there are one or a few instances |
|
|
106 | (2) |
|
5.4 Autoscaling when there are many instances |
|
|
108 | (1) |
|
|
109 | (3) |
|
|
109 | (1) |
|
|
109 | (3) |
|
5.6 The actual calculation |
|
|
112 | (8) |
|
To panic, or not to panic, that is the question |
|
|
118 | (2) |
|
5.7 Configuring autoscaling |
|
|
120 | (9) |
|
|
121 | (2) |
|
|
123 | (1) |
|
|
124 | (1) |
|
|
125 | (2) |
|
Setting decision intervals |
|
|
127 | (1) |
|
|
127 | (1) |
|
Setting the panic threshold |
|
|
128 | (1) |
|
Setting the target burst capacity |
|
|
128 | (1) |
|
|
129 | (1) |
|
|
129 | (3) |
|
6 Introduction to Eventing |
|
|
132 | (27) |
|
6.1 The road to CloudEvents |
|
|
133 | (3) |
|
6.2 The anatomy of CloudEvents |
|
|
136 | (6) |
|
|
137 | (1) |
|
|
138 | (2) |
|
|
140 | (2) |
|
6.3 A word about event formats and protocol bindings |
|
|
142 | (2) |
|
|
142 | (1) |
|
|
143 | (1) |
|
|
144 | (1) |
|
|
144 | (9) |
|
6.5 The basic architecture of Eventing |
|
|
153 | (6) |
|
|
153 | (1) |
|
|
154 | (1) |
|
|
154 | (1) |
|
|
155 | (1) |
|
|
155 | (4) |
|
|
159 | (45) |
|
|
159 | (6) |
|
|
160 | (1) |
|
Using kn to work with Sources |
|
|
161 | (4) |
|
|
165 | (2) |
|
7.3 The mysterious SinkBinding (and its sidekick, ContainerSource) |
|
|
167 | (2) |
|
Provisioning and binding are not the same |
|
|
168 | (1) |
|
|
169 | (3) |
|
|
171 | (1) |
|
|
172 | (1) |
|
|
173 | (10) |
|
Filtering on custom attributes |
|
|
176 | (5) |
|
Nice things that Eventing adds for you |
|
|
181 | (2) |
|
|
183 | (5) |
|
|
183 | (5) |
|
8.4 The anatomy of Sequences |
|
|
188 | (4) |
|
|
188 | (1) |
|
|
188 | (1) |
|
Channel Template and Channels |
|
|
189 | (2) |
|
Mixing Sequences and filters |
|
|
191 | (1) |
|
|
192 | (8) |
|
|
193 | (7) |
|
8.6 Dealing with failures |
|
|
200 | (4) |
|
|
201 | (1) |
|
|
202 | (1) |
|
|
203 | (1) |
|
9 From Conception to Production |
|
|
204 | (31) |
|
9.1 Turning your software into something runnable |
|
|
205 | (7) |
|
|
205 | (3) |
|
Using Cloud Native Buildpacks (CNBs) and the pack tool |
|
|
208 | (4) |
|
9.2 Getting your software to somewhere it runs |
|
|
212 | (10) |
|
9.3 Knowing how your software is running |
|
|
222 | (13) |
|
|
224 | (1) |
|
|
225 | (6) |
|
|
231 | (4) |
Appendix Installing Knative for Development |
|
235 | (6) |
Index |
|
241 | |