Skip to content

Commit 2c62e0f

Browse files
ArmandoHerradivya-mohan0209tengqm
authored
Update docs/setup/best-practices/certificates.md (#44617)
* Update Certificates Best Practices.md I've organized the required Server/Client certificates requiring PKI in a Kubernetes Cluster and improved the descriptions each point had. * Added reviewer suggested changes * Added explanation about kubelet server/client certificates * Added some additional corrections I had missed * Update content/en/docs/setup/best-practices/certificates.md Co-authored-by: divya-mohan0209 <[email protected]> * Update content/en/docs/setup/best-practices/certificates.md Co-authored-by: Qiming Teng <[email protected]> * Wrapping long lines and changing how API Server is mentioned --------- Co-authored-by: divya-mohan0209 <[email protected]> Co-authored-by: Qiming Teng <[email protected]>
1 parent 6e8b85e commit 2c62e0f

File tree

1 file changed

+29
-9
lines changed

1 file changed

+29
-9
lines changed

content/en/docs/setup/best-practices/certificates.md

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,36 @@ This page explains the certificates that your cluster requires.
2121

2222
Kubernetes requires PKI for the following operations:
2323

24-
* Client certificates for the kubelet to authenticate to the API server
25-
* Kubelet [server certificates](/docs/reference/access-authn-authz/kubelet-tls-bootstrapping/#client-and-serving-certificates)
26-
for the API server to talk to the kubelets
24+
### Server certificates
25+
2726
* Server certificate for the API server endpoint
28-
* Client certificates for administrators of the cluster to authenticate to the API server
29-
* Client certificates for the API server to talk to the kubelets
30-
* Client certificate for the API server to talk to etcd
31-
* Client certificate/kubeconfig for the controller manager to talk to the API server
32-
* Client certificate/kubeconfig for the scheduler to talk to the API server.
33-
* Client and server certificates for the [front-proxy](/docs/tasks/extend-kubernetes/configure-aggregation-layer/)
27+
* Server certificate for the etcd server
28+
* [Server certificates](/docs/reference/access-authn-authz/kubelet-tls-bootstrapping/#client-and-serving-certificates)
29+
for each kubelet (every {{< glossary_tooltip text="node" term_id="node" >}} runs a kubelet)
30+
* Optional server certificate for the [front-proxy](/docs/tasks/extend-kubernetes/configure-aggregation-layer/)
31+
32+
### Client certificates
33+
34+
* Client certificates for each kubelet, used to authenticate to the API server as a client of
35+
the Kubernetes API
36+
* Client certificate for each API server, used to authenticate to etcd
37+
* Client certificate for the controller manager to securely communicate with the API server
38+
* Client certificate for the scheduler to securely communicate with the API server
39+
* Client certificates, one for each node, for kube-proxy to authenticate to the API server
40+
* Optional client certificates for administrators of the cluster to authenticate to the API server
41+
* Optional client certificate for the [front-proxy](/docs/tasks/extend-kubernetes/configure-aggregation-layer/)
42+
43+
### Kubelet's server and client certificates
44+
45+
To establish a secure connection and authenticate itself to the kubelet, the API Server
46+
requires a client certificate and key pair.
47+
48+
In this scenario, there are two approaches for certificate usage:
49+
using shared certificates or separate certificates;
50+
51+
* Shared Certificates: The kube-apiserver can utilize the same certificate and key pair it uses to authenticate its clients. This means that the existing certificates, such as `apiserver.crt` and `apiserver.key`, can be used for communicating with the kubelet servers.
52+
53+
* Separate Certificates: Alternatively, the kube-apiserver can generate a new client certificate and key pair to authenticate its communication with the kubelet servers. In this case, a distinct certificate named `kubelet-client.crt` and its corresponding private key, `kubelet-client.key` are created.
3454

3555
{{< note >}}
3656
`front-proxy` certificates are required only if you run kube-proxy to support

0 commit comments

Comments
 (0)