Skip to content

Commit 2a84b55

Browse files
authored
Add file paths to keys and certificates (#28367)
* Adding diagrams to certificates page * Cropped diagrams * Changed diagrams to tree output * Formatting fix * Fixed text block markup and spacing * Changed tree view of files to full-path view * Changed order of two cert files * Broke up links into separate sentences, per review comment * More changes per review comments
1 parent 88bb196 commit 2a84b55

File tree

1 file changed

+47
-3
lines changed

1 file changed

+47
-3
lines changed

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

Lines changed: 47 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,13 @@ etcd also implements mutual TLS to authenticate clients and peers.
3838

3939
## Where certificates are stored
4040

41-
If you install Kubernetes with kubeadm, certificates are stored in `/etc/kubernetes/pki`. All paths in this documentation are relative to that directory.
41+
If you install Kubernetes with kubeadm, most certificates are stored in `/etc/kubernetes/pki`. All paths in this documentation are relative to that directory, with the exception of user account certificates which kubeadm places in `/etc/kubernetes`.
4242

4343
## Configure certificates manually
4444

45-
If you don't want kubeadm to generate the required certificates, you can create them in either of the following ways.
45+
If you don't want kubeadm to generate the required certificates, you can create them using a single root CA or by providing all certificates. See [Certificates](/docs/tasks/administer-cluster/certificates/) for details on creating your own certificate authority.
46+
See [Certificate Management with kubeadm](/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/) for more on managing certificates.
47+
4648

4749
### Single root CA
4850

@@ -57,7 +59,16 @@ Required CAs:
5759
| front-proxy-ca.crt,key | kubernetes-front-proxy-ca | For the [front-end proxy](/docs/tasks/extend-kubernetes/configure-aggregation-layer/) |
5860

5961
On top of the above CAs, it is also necessary to get a public/private key pair for service account management, `sa.key` and `sa.pub`.
62+
The following example illustrates the CA key and certificate files shown in the previous table:
6063

64+
```
65+
/etc/kubernetes/pki/ca.crt
66+
/etc/kubernetes/pki/ca.key
67+
/etc/kubernetes/pki/etcd/ca.crt
68+
/etc/kubernetes/pki/etcd/ca.key
69+
/etc/kubernetes/pki/front-proxy-ca.crt
70+
/etc/kubernetes/pki/front-proxy-ca.key
71+
```
6172
### All certificates
6273

6374
If you don't wish to copy the CA private keys to your cluster, you can generate all certificates yourself.
@@ -127,6 +138,32 @@ Same considerations apply for the service account key pair:
127138
| sa.key | | kube-controller-manager | --service-account-private-key-file |
128139
| | sa.pub | kube-apiserver | --service-account-key-file |
129140

141+
The following example illustrates the file paths [from the previous tables](/docs/setup/best-practices/certificates/#certificate-paths) you need to provide if you are generating all of your own keys and certificates:
142+
143+
```
144+
/etc/kubernetes/pki/etcd/ca.key
145+
/etc/kubernetes/pki/etcd/ca.crt
146+
/etc/kubernetes/pki/apiserver-etcd-client.key
147+
/etc/kubernetes/pki/apiserver-etcd-client.crt
148+
/etc/kubernetes/pki/ca.key
149+
/etc/kubernetes/pki/ca.crt
150+
/etc/kubernetes/pki/apiserver.key
151+
/etc/kubernetes/pki/apiserver.crt
152+
/etc/kubernetes/pki/apiserver-kubelet-client.key
153+
/etc/kubernetes/pki/apiserver-kubelet-client.crt
154+
/etc/kubernetes/pki/front-proxy-ca.key
155+
/etc/kubernetes/pki/front-proxy-ca.crt
156+
/etc/kubernetes/pki/front-proxy-client.key
157+
/etc/kubernetes/pki/front-proxy-client.crt
158+
/etc/kubernetes/pki/etcd/server.key
159+
/etc/kubernetes/pki/etcd/server.crt
160+
/etc/kubernetes/pki/etcd/peer.key
161+
/etc/kubernetes/pki/etcd/peer.crt
162+
/etc/kubernetes/pki/etcd/healthcheck-client.key
163+
/etc/kubernetes/pki/etcd/healthcheck-client.crt
164+
/etc/kubernetes/pki/sa.key
165+
/etc/kubernetes/pki/sa.pub
166+
```
130167
## Configure certificates for user accounts
131168

132169
You must manually configure these administrator account and service accounts:
@@ -146,7 +183,7 @@ The value of `<nodeName>` for `kubelet.conf` **must** match precisely the value
146183

147184
1. Run `kubectl` as follows for each config:
148185

149-
```shell
186+
```
150187
KUBECONFIG=<filename> kubectl config set-cluster default-cluster --server=https://<host ip>:6443 --certificate-authority <path-to-kubernetes-ca> --embed-certs
151188
KUBECONFIG=<filename> kubectl config set-credentials <credential-name> --client-key <path-to-key>.pem --client-certificate <path-to-cert>.pem --embed-certs
152189
KUBECONFIG=<filename> kubectl config set-context default-system --cluster default-cluster --user <credential-name>
@@ -162,4 +199,11 @@ These files are used as follows:
162199
| controller-manager.conf | kube-controller-manager | Must be added to manifest in `manifests/kube-controller-manager.yaml` |
163200
| scheduler.conf | kube-scheduler | Must be added to manifest in `manifests/kube-scheduler.yaml` |
164201

202+
The following files illustrate full paths to the files listed in the previous table:
165203

204+
```
205+
/etc/kubernetes/admin.conf
206+
/etc/kubernetes/kubelet.conf
207+
/etc/kubernetes/controller-manager.conf
208+
/etc/kubernetes/scheduler.conf
209+
```

0 commit comments

Comments
 (0)