@@ -10,25 +10,22 @@ min-kubernetes-server-version: v1.6
10
10
This page shows how to securely inject sensitive data, such as passwords and
11
11
encryption keys, into Pods.
12
12
-->
13
- 本文展示如何安全地将敏感数据(如密码和加密密钥)注入到 Pods 中。
14
-
13
+ 本文展示如何安全地将敏感数据(如密码和加密密钥)注入到 Pod 中。
15
14
16
15
## {{% heading "prerequisites" %}}
17
16
18
-
19
17
{{< include "task-tutorial-prereqs.md" >}}
20
18
21
-
22
19
<!--
23
20
### Convert your secret data to a base-64 representation
24
21
25
22
Suppose you want to have two pieces of secret data: a username `my-app` and a password
26
23
`39528$vdg7Jb`. First, use a base64 encoding tool to convert your username and password to a base64 representation. Here's an example using the commonly available base64 program:
27
24
-->
28
- ### 将 secret 数据转换为 base-64 形式
25
+ ### 将 Secret 数据转换为 base-64 形式 {#convert-your-secret-data-to-a-base64-representation}
29
26
30
27
假设用户想要有两条 Secret 数据:用户名 ` my-app ` 和密码 ` 39528$vdg7Jb ` 。
31
- 首先使用 [ Base64 编码] ( https://www.base64encode.org/ ) 将用户名和密码转化为 base-64 形式。
28
+ 首先使用 [ Base64 编码] ( https://www.base64encode.org/ ) 将用户名和密码转化为 base-64 形式。
32
29
下面是一个使用常用的 base64 程序的示例:
33
30
34
31
``` shell
@@ -43,10 +40,10 @@ and the base-64 representation of your password is `Mzk1MjgkdmRnN0pi`.
43
40
结果显示 base-64 形式的用户名为 ` bXktYXBw ` ,
44
41
base-64 形式的密码为 ` Mzk1MjgkdmRnN0pi ` 。
45
42
43
+ {{< caution >}}
46
44
<!--
47
45
Use a local tool trusted by your OS to decrease the security risks of external tools.
48
46
-->
49
- {{< caution >}}
50
47
使用你的操作系统所能信任的本地工具以降低使用外部工具的风险。
51
48
{{< /caution >}}
52
49
@@ -58,14 +55,16 @@ Use a local tool trusted by your OS to decrease the security risks of external t
58
55
Here is a configuration file you can use to create a Secret that holds your
59
56
username and password:
60
57
-->
61
- ## 创建 Secret
58
+ ## 创建 Secret {#create-a-secret}
62
59
63
- 这里是一个配置文件,可以用来创建存有用户名和密码的 Secret:
60
+ 这里是一个配置文件,可以用来创建存有用户名和密码的 Secret:
64
61
65
62
{{< codenew file="pods/inject/secret.yaml" >}}
66
63
67
- 1 . <!-- Create the Secret -->
68
- 创建 Secret:
64
+ <!--
65
+ 1. Create the Secret
66
+ -->
67
+ 1 . 创建 Secret:
69
68
70
69
``` shell
71
70
kubectl apply -f https://k8s.io/examples/pods/inject/secret.yaml
@@ -78,24 +77,30 @@ username and password:
78
77
79
78
``` shell
80
79
kubectl get secret test-secret
81
- ```
80
+ ```
82
81
83
- <!-- Output: -->
84
- 输出:
82
+ <!--
83
+ Output:
84
+ -->
85
+ 输出:
85
86
86
87
```
87
88
NAME TYPE DATA AGE
88
89
test-secret Opaque 2 1m
89
90
```
90
91
91
- 1 . <!-- View more detailed information about the Secret:-->
92
- 查看 Secret 相关的更多详细信息:
92
+ <!--
93
+ 1. View more detailed information about the Secret:
94
+ -->
95
+ 3 . 查看 Secret 相关的更多详细信息:
93
96
94
97
``` shell
95
98
kubectl describe secret test-secret
96
99
```
97
100
98
- <!-- Output: -->
101
+ <!--
102
+ Output:
103
+ -->
99
104
输出:
100
105
101
106
```
@@ -118,7 +123,7 @@ username and password:
118
123
If you want to skip the Base64 encoding step, you can create the
119
124
same Secret using the `kubectl create secret` command. For example:
120
125
-->
121
- ### 直接用 kubectl 创建 Secret
126
+ ### 直接用 kubectl 创建 Secret {#create-a-secret-directly-with-kubectl}
122
127
123
128
如果你希望略过 Base64 编码的步骤,你也可以使用 ` kubectl create secret `
124
129
命令直接创建 Secret。例如:
@@ -134,15 +139,14 @@ through each step explicitly to demonstrate what is happening.
134
139
这是一种更为方便的方法。
135
140
前面展示的详细分解步骤有助于了解究竟发生了什么事情。
136
141
137
-
138
142
<!--
139
143
## Create a Pod that has access to the secret data through a Volume
140
144
141
145
Here is a configuration file you can use to create a Pod:
142
146
-->
143
- ## 创建一个可以通过卷访问 secret 数据的 Pod
147
+ ## 创建一个可以通过卷访问 Secret 数据的 Pod {#create-a-pod-that-has-access-to-the-secret-data-through-a-volume}
144
148
145
- 这里是一个可以用来创建 pod 的配置文件:
149
+ 这里是一个可以用来创建 Pod 的配置文件:
146
150
147
151
{{< codenew file="pods/inject/secret-pod.yaml" >}}
148
152
@@ -162,13 +166,14 @@ Here is a configuration file you can use to create a Pod:
162
166
163
167
<!-- Output: -->
164
168
输出:
169
+
165
170
```
166
171
NAME READY STATUS RESTARTS AGE
167
172
secret-test-pod 1/1 Running 0 42m
168
173
```
169
174
170
175
1 . <!-- Get a shell into the Container that is running in your Pod:-->
171
- 获取一个 shell 进入 Pod 中运行的容器:
176
+ 获取一个 Shell 进入 Pod 中运行的容器:
172
177
173
178
``` shell
174
179
kubectl exec -i -t secret-test-pod -- /bin/bash
@@ -181,7 +186,7 @@ Here is a configuration file you can use to create a Pod:
181
186
-->
182
187
Secret 数据通过挂载在 ` /etc/secret-volume ` 目录下的卷暴露在容器中。
183
188
184
- 在 shell 中,列举 ` /etc/secret-volume ` 目录下的文件:
189
+ 在 Shell 中,列举 ` /etc/secret-volume ` 目录下的文件:
185
190
186
191
``` shell
187
192
# 在容器中 Shell 运行下面命令
@@ -201,6 +206,7 @@ Here is a configuration file you can use to create a Pod:
201
206
In your shell, display the contents of the `username` and `password` files:
202
207
-->
203
208
在 Shell 中,显示 ` username ` 和 ` password ` 文件的内容:
209
+
204
210
``` shell
205
211
# 在容器中 Shell 运行下面命令
206
212
echo " $( cat /etc/secret-volume/username ) "
@@ -223,9 +229,9 @@ Here is a configuration file you can use to create a Pod:
223
229
### Define a container environment variable with data from a single Secret
224
230
225
231
-->
226
- ## 使用 Secret 数据定义容器变量
232
+ ## 使用 Secret 数据定义容器变量 {#define-container-env-var-using-secret-data}
227
233
228
- ### 使用来自 Secret 中的数据定义容器变量
234
+ ### 使用来自 Secret 中的数据定义容器变量 {#define-a-container-env-var-with-data-from-a-single-secret}
229
235
230
236
<!--
231
237
* Define an environment variable as a key-value pair in a Secret:
@@ -239,7 +245,7 @@ Here is a configuration file you can use to create a Pod:
239
245
<!--
240
246
* Assign the `backend-username` value defined in the Secret to the `SECRET_USERNAME` environment variable in the Pod specification.
241
247
-->
242
- * 在 Pod 规约中,将 Secret 中定义的值 ` backend-username ` 赋给 ` SECRET_USERNAME ` 环境变量
248
+ * 在 Pod 规约中,将 Secret 中定义的值 ` backend-username ` 赋给 ` SECRET_USERNAME ` 环境变量。
243
249
244
250
{{< codenew file="pods/inject/pod-single-secret-env-variable.yaml" >}}
245
251
@@ -272,7 +278,7 @@ Here is a configuration file you can use to create a Pod:
272
278
<!--
273
279
### Define container environment variables with data from multiple Secrets
274
280
-->
275
- ### 使用来自多个 Secret 的数据定义环境变量
281
+ ### 使用来自多个 Secret 的数据定义环境变量 {#define-container-env-var-with-data-from-multi-secrets}
276
282
277
283
<!--
278
284
* As with the previous example, create the Secrets first.
@@ -317,16 +323,15 @@ Here is a configuration file you can use to create a Pod:
317
323
BACKEND_USERNAME=backend-admin
318
324
```
319
325
320
-
321
326
<!--
322
327
## Configure all key-value pairs in a Secret as container environment variables
323
328
-->
324
- ## 将 Secret 中的所有键值偶对定义为环境变量
329
+ ## 将 Secret 中的所有键值偶对定义为环境变量 {#configure-all-key-value-pairs-in-a-secret-as-container-env-var}
325
330
331
+ {{< note >}}
326
332
<!--
327
333
This functionality is available in Kubernetes v1.6 and later.
328
334
-->
329
- {{< note >}}
330
335
此功能在 Kubernetes 1.6 版本之后可用。
331
336
{{< /note >}}
332
337
@@ -365,18 +370,20 @@ This functionality is available in Kubernetes v1.6 and later.
365
370
kubectl exec -i -t envfrom-secret -- /bin/sh -c ' echo "username: $username\npassword: $password\n"'
366
371
```
367
372
368
- <!--
369
- The output is
370
- -->
373
+ <!--
374
+ The output is
375
+ -->
371
376
输出为:
372
377
373
378
```
374
379
username: my-app
375
380
password: 39528$vdg7Jb
376
381
```
377
382
378
- <!-- ### References -->
379
- ### 参考
383
+ <!--
384
+ ### References
385
+ -->
386
+ ### 参考 {#references}
380
387
381
388
* [ Secret] (/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#secret-v1-core)
382
389
* [ Volume] (/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#volume-v1-core)
@@ -389,6 +396,5 @@ This functionality is available in Kubernetes v1.6 and later.
389
396
* Learn about [Volumes](/docs/concepts/storage/volumes/).
390
397
-->
391
398
* 进一步了解 [ Secret] ( /zh-cn/docs/concepts/configuration/secret/ ) 。
392
- * 了解 [ Volumes] ( /zh-cn/docs/concepts/storage/volumes/ ) 。
393
-
399
+ * 了解[ 卷] ( /zh-cn/docs/concepts/storage/volumes/ ) 。
394
400
0 commit comments