Skip to content

Commit 6c3369e

Browse files
committed
Copy tasks/tls/certificate-rotation from en/ directory.
1 parent 6eaacd5 commit 6c3369e

File tree

2 files changed

+89
-0
lines changed

2 files changed

+89
-0
lines changed

content/ja/docs/tasks/tls/_index.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
title: "TLS"
3+
weight: 100
4+
description: Understand how to protect traffic within your cluster using Transport Layer Security (TLS).
5+
---
6+
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
---
2+
reviewers:
3+
- jcbsmpsn
4+
- mikedanese
5+
title: Configure Certificate Rotation for the Kubelet
6+
content_type: task
7+
---
8+
9+
<!-- overview -->
10+
This page shows how to enable and configure certificate rotation for the kubelet.
11+
12+
13+
{{< feature-state for_k8s_version="v1.8" state="beta" >}}
14+
15+
## {{% heading "prerequisites" %}}
16+
17+
18+
* Kubernetes version 1.8.0 or later is required
19+
20+
21+
22+
<!-- steps -->
23+
24+
## Overview
25+
26+
The kubelet uses certificates for authenticating to the Kubernetes API. By
27+
default, these certificates are issued with one year expiration so that they do
28+
not need to be renewed too frequently.
29+
30+
Kubernetes 1.8 contains [kubelet certificate
31+
rotation](/docs/reference/command-line-tools-reference/kubelet-tls-bootstrapping/), a beta feature
32+
that will automatically generate a new key and request a new certificate from
33+
the Kubernetes API as the current certificate approaches expiration. Once the
34+
new certificate is available, it will be used for authenticating connections to
35+
the Kubernetes API.
36+
37+
## Enabling client certificate rotation
38+
39+
The `kubelet` process accepts an argument `--rotate-certificates` that controls
40+
if the kubelet will automatically request a new certificate as the expiration of
41+
the certificate currently in use approaches. Since certificate rotation is a
42+
beta feature, the feature flag must also be enabled with
43+
`--feature-gates=RotateKubeletClientCertificate=true`.
44+
45+
46+
The `kube-controller-manager` process accepts an argument
47+
`--experimental-cluster-signing-duration` that controls how long certificates
48+
will be issued for.
49+
50+
## Understanding the certificate rotation configuration
51+
52+
When a kubelet starts up, if it is configured to bootstrap (using the
53+
`--bootstrap-kubeconfig` flag), it will use its initial certificate to connect
54+
to the Kubernetes API and issue a certificate signing request. You can view the
55+
status of certificate signing requests using:
56+
57+
```sh
58+
kubectl get csr
59+
```
60+
61+
Initially a certificate signing request from the kubelet on a node will have a
62+
status of `Pending`. If the certificate signing requests meets specific
63+
criteria, it will be auto approved by the controller manager, then it will have
64+
a status of `Approved`. Next, the controller manager will sign a certificate,
65+
issued for the duration specified by the
66+
`--experimental-cluster-signing-duration` parameter, and the signed certificate
67+
will be attached to the certificate signing requests.
68+
69+
The kubelet will retrieve the signed certificate from the Kubernetes API and
70+
write that to disk, in the location specified by `--cert-dir`. Then the kubelet
71+
will use the new certificate to connect to the Kubernetes API.
72+
73+
As the expiration of the signed certificate approaches, the kubelet will
74+
automatically issue a new certificate signing request, using the Kubernetes
75+
API. Again, the controller manager will automatically approve the certificate
76+
request and attach a signed certificate to the certificate signing request. The
77+
kubelet will retrieve the new signed certificate from the Kubernetes API and
78+
write that to disk. Then it will update the connections it has to the
79+
Kubernetes API to reconnect using the new certificate.
80+
81+
82+
83+

0 commit comments

Comments
 (0)