3.0 KiB
3.0 KiB
title | content_type | weight |
---|---|---|
ストレージにProjectedボリュームを使用するようPodを設定する | task | 70 |
このページでは、projected
(投影)ボリュームを使用して、既存の複数のボリュームソースを同一ディレクトリ内にマウントする方法を説明します。
現在、secret
、configMap
、downwardAPI
およびserviceAccountToken
ボリュームを投影できます。
{{< note >}}
serviceAccountToken
はボリュームタイプではありません。
{{< /note >}}
{{% heading "prerequisites" %}}
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
ProjectedボリュームをPodに設定する
この課題では、ローカルファイルからユーザーネームおよびパスワードの{{< glossary_tooltip text="Secret" term_id="secret" >}}を作成します。
次に、単一のコンテナを実行するPodを作成し、projected
ボリュームを使用してそれぞれのSecretを同じ共有ディレクトリにマウントします。
以下にPodの設定ファイルを示します:
{{< codenew file="pods/storage/projected.yaml" >}}
-
Secretを作成します:
# ユーザーネームおよびパスワードを含むファイルを作成します: 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
-
Podを作成します:
kubectl apply -f https://k8s.io/examples/pods/storage/projected.yaml
-
Pod内のコンテナが実行されていることを確認するため、Podの変更を監視します:
kubectl get --watch pod test-projected-volume
出力は次のようになります:
NAME READY STATUS RESTARTS AGE test-projected-volume 1/1 Running 0 14s
-
別の端末にて、実行中のコンテナへのシェルを取得します:
kubectl exec -it test-projected-volume -- /bin/sh
-
シェル内にて、投影されたソースを含む
projected-volume
ディレクトリが存在することを確認します:ls /projected-volume/
クリーンアップ
PodおよびSecretを削除します:
kubectl delete pod test-projected-volume
kubectl delete secret user pass
{{% heading "whatsnext" %}}
projected
ボリュームについてさらに学ぶ- [all-in-oneボリューム](https://github.com/kubernetes/community/blob/{{< param "githubbranch" >}}/contributors/design-proposals/node/all-in-one-volume.md)のデザインドキュメントを読む