@@ -72,12 +72,6 @@ you already have at-rest encryption enabled. However, that check does not tell y
72
72
a previous migration to encrypted storage has succeeded. If you are not sure, see
73
73
[ ensure all relevant data are encrypted] ( #ensure-all-secrets-are-encrypted ) .
74
74
75
- {{< caution >}}
76
- ** IMPORTANT:** For high-availability configurations (with two or more control plane nodes), the
77
- encryption configuration file must be the same! Otherwise, the ` kube-apiserver ` component cannot
78
- decrypt data stored in the etcd.
79
- {{< /caution >}}
80
-
81
75
## Understanding the encryption at rest configuration
82
76
83
77
<!-- note to localizers: the highlight is to make the initial comment obvious -->
@@ -198,9 +192,12 @@ For more detailed information about the `EncryptionConfiguration` struct, please
198
192
[ encryption configuration API] ( /docs/reference/config-api/apiserver-encryption.v1/ ) .
199
193
200
194
{{< caution >}}
201
- If any resource is not readable via the encryption config (because keys were changed),
202
- the only recourse is to delete that key from the underlying etcd directly. Calls that attempt to
203
- read that resource will fail until it is deleted or a valid decryption key is provided.
195
+ If any resource is not readable via the encryption configuration (because keys were changed),
196
+ and you cannot restore a working configuration, your only recourse is to delete that entry from
197
+ the underlying etcd directly.
198
+
199
+ Any calls to the Kubernetes API that attempt to read that resource will fail until it is deleted
200
+ or a valid decryption key is provided.
204
201
{{< /caution >}}
205
202
206
203
### Available providers {#providers}
@@ -402,7 +399,7 @@ Generate a 32-byte random key and base64 encode it. You can use this command:
402
399
403
400
404
401
{{< note >}}
405
- Keep the encryption key confidential, including whilst you generate it and
402
+ Keep the encryption key confidential, including while you generate it and
406
403
ideally even after you are no longer actively using it.
407
404
{{< /note >}}
408
405
@@ -508,6 +505,18 @@ Kubernetes cluster has multiple control plane hosts, so there is more to do.
508
505
If you have multiple API servers in your cluster, you should deploy the
509
506
changes in turn to each API server.
510
507
508
+ {{< caution >}}
509
+ For cluster configurations with two or more control plane nodes, the encryption configuration
510
+ should be identical across each control plane node.
511
+
512
+ If there is a difference in the encryption provider configuration between control plane
513
+ nodes, this difference may mean that the kube-apiserver can't decrypt data.
514
+ {{< /caution >}}
515
+
516
+ When you are planning to update the encryption configuration of your cluster, plan this
517
+ so that the API servers in your control plane can always decrypt the stored data
518
+ (even part way through rolling out the change).
519
+
511
520
Make sure that you use the ** same** encryption configuration on each
512
521
control plane host.
513
522
0 commit comments