111 lines
3.7 KiB
Markdown
111 lines
3.7 KiB
Markdown
---
|
||
reviewers:
|
||
- jpeeler
|
||
- pmorie
|
||
title: 配置 Pod 使用投射卷作存储
|
||
content_template: templates/task
|
||
weight: 70
|
||
---
|
||
|
||
<!--
|
||
---
|
||
reviewers:
|
||
- jpeeler
|
||
- pmorie
|
||
title: Configure a Pod to Use a Projected Volume for Storage
|
||
content_template: templates/task
|
||
weight: 70
|
||
---
|
||
-->
|
||
|
||
{{% capture 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.
|
||
-->
|
||
|
||
本文介绍怎样通过[`投射`](/docs/concepts/storage/volumes/#projected) 卷将现有的多个卷资源挂载到相同的目录。
|
||
当前,`secret`、`configMap`、`downwardAPI` 和 `serviceAccountToken` 卷可以被投射。
|
||
|
||
{{< note >}}
|
||
<!--
|
||
`serviceAccountToken` is not a volume type.
|
||
-->
|
||
`serviceAccountToken` 不是一种卷类型
|
||
{{< /note >}}
|
||
{{% /capture %}}
|
||
|
||
{{% capture prerequisites %}}
|
||
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
|
||
{{% /capture %}}
|
||
|
||
{{% capture 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 配置投射卷
|
||
|
||
本练习中,您将从本地文件来创建包含有用户名和密码的 Secret。然后创建运行一个容器的 Pod,该 Pod 使用[`投射`](/docs/concepts/storage/volumes/#projected) 卷将 Secret 挂载到相同的路径下。
|
||
|
||
下面是 Pod 的配置文件:
|
||
|
||
{{< codenew file="pods/storage/projected.yaml" >}}
|
||
|
||
1. <!--Create the Secrets:-->创建 Secrets:
|
||
```shell
|
||
<!--# Create files containing the username and password:--># 创建包含用户名和密码的文件:
|
||
echo -n "admin" > ./username.txt
|
||
echo -n "1f2d1e2e67df" > ./password.txt-->
|
||
|
||
<!--# Package these files into secrets:--># 将上述文件引用到 Secret:
|
||
kubectl create secret generic user --from-file=./username.txt
|
||
kubectl create secret generic pass --from-file=./password.txt
|
||
```
|
||
|
||
1. <!--Create the Pod:-->创建 Pod:
|
||
|
||
```shell
|
||
kubectl create -f https://k8s.io/examples/pods/storage/projected.yaml
|
||
```
|
||
|
||
<!--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
|
||
|
||
1. <!--In another terminal, get a shell to the running Container:-->在另外一个终端中,打开容器的 shell:
|
||
```shell
|
||
kubectl exec -it test-projected-volume -- /bin/sh
|
||
```
|
||
|
||
1. <!--In your shell, verify that the `projected-volume` directory contains your projected sources:-->在 shell 中,确认 `projected-volume` 目录包含你的投射源:
|
||
```shell
|
||
ls /projected-volume/
|
||
```
|
||
{{% /capture %}}
|
||
|
||
{{% capture whatsnext %}}
|
||
|
||
<!--
|
||
* Learn more about [`projected`](/docs/concepts/storage/volumes/#projected) volumes.
|
||
* Read the [all-in-one volume](https://github.com/kubernetes/community/blob/{{< param "githubbranch" >}}/contributors/design-proposals/node/all-in-one-volume.md) design document.
|
||
-->
|
||
|
||
* 进一步了解[`投射`](/docs/concepts/storage/volumes/#projected) 卷。
|
||
* 阅读[一体卷](https://github.com/kubernetes/community/blob/{{< param "githubbranch" >}}/contributors/design-proposals/node/all-in-one-volume.md)设计文档。
|
||
{{% /capture %}}
|
||
|