You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/en/docs/setup/production-environment/tools/kubeadm/troubleshooting-kubeadm.md
+18-1Lines changed: 18 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -408,7 +408,7 @@ be advised that this is modifying a design principle of the Linux distribution.
408
408
409
409
## `kubeadm upgrade plan` prints out `context deadline exceeded` error message
410
410
411
-
This error message is shown when upgrading a Kubernetes cluster with `kubeadm` in the case of running an external etcd. This is not a critical bug and happens because older versions of kubeadm perform a version check on the external etcd cluster. You can proceed with `kubeadm upgrade apply ...`.
411
+
This error message is shown when upgrading a Kubernetes cluster with `kubeadm` in the case of running an external etcd. This is not a critical bug and happens because older versions of kubeadm perform a version check on the external etcd cluster. You can proceed with `kubeadm upgrade apply ...`.
412
412
413
413
This issue is fixed as of version 1.19.
414
414
@@ -420,3 +420,20 @@ To workaround the issue, re-mount the `/var/lib/kubelet` directory after perform
420
420
421
421
This is a regression introduced in kubeadm 1.15. The issue is fixed in 1.20.
422
422
423
+
## Cannot use the metrics-server securely in a kubeadm cluster
424
+
425
+
In a kubeadm cluster, the [metrics-server](https://github.com/kubernetes-sigs/metrics-server)
426
+
can be used insecurely by passing the `--kubelet-insecure-tls` to it. This is not recommended for production clusters.
427
+
428
+
If you want to use TLS between the metrics-server and the kubelet there is a problem,
429
+
since kubeadm deploys a self-signed serving certificate for the kubelet. This can cause the following errors
430
+
on the side of the metrics-server:
431
+
```
432
+
x509: certificate signed by unknown authority
433
+
x509: certificate is valid for IP-foo not IP-bar
434
+
```
435
+
436
+
See [Enabling signed kubelet serving certificates](/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/#kubelet-serving-certs)
437
+
to understand how to configure the kubelets in a kubeadm cluster to have properly signed serving certificates.
438
+
439
+
Also see [How to run the metrics-server securely](https://github.com/kubernetes-sigs/metrics-server/blob/master/FAQ.md#how-to-run-metrics-server-securely).
Copy file name to clipboardExpand all lines: content/en/docs/tasks/administer-cluster/kubeadm/kubeadm-certs.md
+68Lines changed: 68 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -207,3 +207,71 @@ After a certificate is signed using your preferred method, the certificate and t
207
207
Kubeadm does not support rotation or replacement of CA certificates out of the box.
208
208
209
209
For more information about manual rotation or replacement of CA, see [manual rotation of CA certificates](/docs/tasks/tls/manual-rotation-of-ca-certificates/).
210
+
211
+
## Enabling signed kubelet serving certificates {#kubelet-serving-certs}
212
+
213
+
By default the kubelet serving certificate deployed by kubeadm is self-signed.
214
+
This means a connection from external services like the
215
+
[metrics-server](https://github.com/kubernetes-sigs/metrics-server) to a
216
+
kubelet cannot be secured with TLS.
217
+
218
+
To configure the kubelets in a new kubeadm cluster to obtain properly signed serving
219
+
certificates you must pass the following minimal configuration to `kubeadm init`:
220
+
221
+
```yaml
222
+
apiVersion: kubeadm.k8s.io/v1beta2
223
+
kind: ClusterConfiguration
224
+
---
225
+
apiVersion: kubelet.config.k8s.io/v1beta1
226
+
kind: KubeletConfiguration
227
+
serverTLSBootstrap: true
228
+
```
229
+
230
+
If you have already created the cluster you must adapt it by doing the following:
231
+
- Find and edit the `kubelet-config-{{< skew latestVersion >}}` ConfigMap in the `kube-system` namespace.
0 commit comments