website/content/zh/docs/tasks/configure-pod-container/configure-projected-volume-...

132 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 配置 Pod 使用投射卷作存储
content_type: task
weight: 70
---
<!--
reviewers:
- jpeeler
- pmorie
title: Configure a Pod to Use a Projected Volume for Storage
content_type: task
weight: 70
-->
<!-- overview -->
<!--
This page shows how to use a [`projected`](/docs/concepts/storage/volumes/#projected) volume to mount
several existing volume sources into the same directory. Currently, `secret`, `configMap`, `downwardAPI`,
and `serviceAccountToken` volumes can be projected.
-->
本文介绍怎样通过[`projected`](/zh/docs/concepts/storage/volumes/#projected) 卷将现有的多个卷资源挂载到相同的目录。
当前,`secret`、`configMap`、`downwardAPI` 和 `serviceAccountToken` 卷可以被投射。
<!--
`serviceAccountToken` is not a volume type.
-->
{{< note >}}
`serviceAccountToken` 不是一种卷类型
{{< /note >}}
## {{% heading "prerequisites" %}}
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
<!-- steps -->
<!--
## Configure a projected volume for a pod
In this exercise, you create username and password Secrets from local files. You then create a Pod that runs one Container, using a [`projected`](/docs/concepts/storage/volumes/#projected) Volume to mount the Secrets into the same shared directory.
Here is the configuration file for the Pod:
-->
## 为 Pod 配置 projected 卷
本练习中,您将从本地文件来创建包含有用户名和密码的 Secret。然后创建运行一个容器的 Pod
该 Pod 使用[`projected`](/zh/docs/concepts/storage/volumes/#projected) 卷将 Secret 挂载到相同的路径下。
下面是 Pod 的配置文件:
{{< codenew file="pods/storage/projected.yaml" >}}
1. <!--Create the Secrets:-->
创建 Secret:
```shell
# 创建包含用户名和密码的文件:
echo -n "admin" > ./username.txt
echo -n "1f2d1e2e67df" > ./password.txt-->
# 将上述文件引用到 Secret
kubectl create secret generic user --from-file=./username.txt
kubectl create secret generic pass --from-file=./password.txt
```
2. <!--Create the Pod:-->
创建 Pod
```shell
kubectl create -f https://k8s.io/examples/pods/storage/projected.yaml
```
3. <!--
Verify that the Pod's Container is running, and then watch for changes to
the Pod:
-->
确认 Pod 中的容器运行正常,然后监视 Pod 的变化:
```shell
kubectl get --watch pod test-projected-volume
```
<!--The output looks like this:-->
输出结果和下面类似:
```
NAME READY STATUS RESTARTS AGE
test-projected-volume 1/1 Running 0 14s
```
4. <!--In another terminal, get a shell to the running Container:-->
在另外一个终端中,打开容器的 shell
```shell
kubectl exec -it test-projected-volume -- /bin/sh
```
5. <!--In your shell, verify that the `projected-volume` directory contains your projected sources:-->
在 shell 中,确认 `projected-volume` 目录包含你的投射源:
```shell
ls /projected-volume/
```
<!--
## Clean up
-->
## 清理
<!--
Delete the Pod and the Secrets:
-->
删除 Pod 和 Secret:
```shell
kubectl delete pod test-projected-volume
kubectl delete secret user pass
```
## {{% heading "whatsnext" %}}
<!--
* Learn more about [`projected`](/docs/concepts/storage/volumes/#projected) volumes.
* Read the [all-in-one volume](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/node/all-in-one-volume.md) design document.
-->
* 进一步了解[`projected`](/zh/docs/concepts/storage/volumes/#projected) 卷。
* 阅读[一体卷](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/node/all-in-one-volume.md)设计文档。