Skip to content

Commit 9c854c6

Browse files
authored
Merge pull request #27065 from oke-py/27064
Translate docs/tasks/configmap-secret/managing-secret-using-config-file/ into Japanese
2 parents 1dc0e0f + 04c41cb commit 9c854c6

File tree

2 files changed

+184
-1
lines changed

2 files changed

+184
-1
lines changed
Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
---
2+
title: 設定ファイルを使用してSecretを管理する
3+
content_type: task
4+
weight: 20
5+
description: リソース設定ファイルを使用してSecretを作成する
6+
---
7+
8+
<!-- overview -->
9+
10+
## {{% heading "prerequisites" %}}
11+
12+
{{< include "task-tutorial-prereqs.md" >}}
13+
14+
<!-- steps -->
15+
16+
## 設定ファイルを作成する
17+
18+
あらかじめYAMLまたはJSON形式でSecretのマニフェストを作成したうえで、オブジェクトを作成することができます。
19+
[Secret](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#secret-v1-core)リソースには、`data``stringData`の2つのマップが含まれています。
20+
`data`フィールドは任意のデータを格納するのに使用され、base64でエンコードされます。
21+
`stringData`フィールドは利便性のために用意されており、Secretデータをエンコードされていない文字列として提供することができます。
22+
`data``stringData`のキーは、英数字、`-``_``.`で構成されている必要があります。
23+
24+
たとえば、`data`フィールドを使用して2つの文字列をSecretに格納するには、次のように文字列をbase64に変換します:
25+
26+
```shell
27+
echo -n 'admin' | base64
28+
```
29+
30+
出力は次のようになります:
31+
32+
```
33+
YWRtaW4=
34+
```
35+
36+
```shell
37+
echo -n '1f2d1e2e67df' | base64
38+
```
39+
40+
出力は次のようになります:
41+
42+
```
43+
MWYyZDFlMmU2N2Rm
44+
```
45+
46+
以下のようなSecret設定ファイルを記述します:
47+
48+
```yaml
49+
apiVersion: v1
50+
kind: Secret
51+
metadata:
52+
name: mysecret
53+
type: Opaque
54+
data:
55+
username: YWRtaW4=
56+
password: MWYyZDFlMmU2N2Rm
57+
```
58+
59+
なお、Secretオブジェクトの名前は、有効な[DNSサブドメイン名](/ja/docs/concepts/overview/working-with-objects/names#dns-subdomain-names)である必要があります。
60+
61+
{{< note >}}
62+
SecretデータのシリアライズされたJSONおよびYAMLの値は、base64文字列としてエンコードされます。
63+
文字列中の改行は不正で、含まれていてはなりません。
64+
Darwin/macOSで`base64`ユーティリティーを使用する場合、長い行を分割するために`-b`オプションを使用するのは避けるべきです。
65+
逆に、Linux ユーザーは、`base64` コマンドにオプション`-w 0`を追加するか、`-w`オプションが利用できない場合には、パイプライン`base64 | tr -d '\n'`を追加する*必要があります*。
66+
{{< /note >}}
67+
68+
特定のシナリオでは、代わりに`stringData`フィールドを使用できます。
69+
このフィールドでは、base64エンコードされていない文字列を直接Secretに入れることができ、Secretの作成時や更新時には、その文字列がエンコードされます。
70+
71+
たとえば、設定ファイルを保存するためにSecretを使用しているアプリケーションをデプロイする際に、デプロイプロセス中に設定ファイルの一部を入力したい場合などが考えられます。
72+
73+
たとえば、次のような設定ファイルを使用しているアプリケーションの場合:
74+
75+
```yaml
76+
apiUrl: "https://my.api.com/api/v1"
77+
username: "<user>"
78+
password: "<password>"
79+
```
80+
81+
次のような定義でSecretに格納できます:
82+
83+
```yaml
84+
apiVersion: v1
85+
kind: Secret
86+
metadata:
87+
name: mysecret
88+
type: Opaque
89+
stringData:
90+
config.yaml: |
91+
apiUrl: "https://my.api.com/api/v1"
92+
username: <user>
93+
password: <password>
94+
```
95+
96+
## Secretを作成する
97+
98+
[`kubectl apply`](/docs/reference/generated/kubectl/kubectl-commands#apply)でSecretを作成します:
99+
100+
```shell
101+
kubectl apply -f ./secret.yaml
102+
```
103+
104+
出力は次のようになります:
105+
106+
```
107+
secret/mysecret created
108+
```
109+
110+
## Secretを確認する
111+
112+
`stringData`フィールドは、書き込み専用の便利なフィールドです。Secretを取得する際には決して出力されません。たとえば、次のようなコマンドを実行した場合:
113+
114+
```shell
115+
kubectl get secret mysecret -o yaml
116+
```
117+
118+
出力は次のようになります:
119+
120+
```yaml
121+
apiVersion: v1
122+
kind: Secret
123+
metadata:
124+
creationTimestamp: 2018-11-15T20:40:59Z
125+
name: mysecret
126+
namespace: default
127+
resourceVersion: "7225"
128+
uid: c280ad2e-e916-11e8-98f2-025000000001
129+
type: Opaque
130+
data:
131+
config.yaml: YXBpVXJsOiAiaHR0cHM6Ly9teS5hcGkuY29tL2FwaS92MSIKdXNlcm5hbWU6IHt7dXNlcm5hbWV9fQpwYXNzd29yZDoge3twYXNzd29yZH19
132+
```
133+
134+
`kubectl get`と`kubectl describe`コマンドはデフォルトではSecretの内容を表示しません。
135+
これは、Secretが不用意に他人にさらされたり、ターミナルログに保存されたりしないようにするためです。
136+
エンコードされたデータの実際の内容を確認するには、[Secretのデコード](/ja/docs/tasks/configmap-secret/managing-secret-using-kubectl/#decoding-secret)を参照してください。
137+
138+
`username`などのフィールドが`data`と`stringData`の両方に指定されている場合は、`stringData`の値が使われます。
139+
たとえば、以下のようなSecretの定義の場合:
140+
141+
```yaml
142+
apiVersion: v1
143+
kind: Secret
144+
metadata:
145+
name: mysecret
146+
type: Opaque
147+
data:
148+
username: YWRtaW4=
149+
stringData:
150+
username: administrator
151+
```
152+
153+
結果は以下の通りです:
154+
155+
```yaml
156+
apiVersion: v1
157+
kind: Secret
158+
metadata:
159+
creationTimestamp: 2018-11-15T20:46:46Z
160+
name: mysecret
161+
namespace: default
162+
resourceVersion: "7579"
163+
uid: 91460ecb-e917-11e8-98f2-025000000001
164+
type: Opaque
165+
data:
166+
username: YWRtaW5pc3RyYXRvcg==
167+
```
168+
169+
`YWRtaW5pc3RyYXRvcg==`をデコードすると`administrator`となります。
170+
171+
## クリーンアップ
172+
173+
作成したSecretを削除するには次のコマンドを実行します:
174+
175+
```shell
176+
kubectl delete secret mysecret
177+
```
178+
179+
## {{% heading "whatsnext" %}}
180+
181+
- [Secretのコンセプト](/ja/docs/concepts/configuration/secret/)を読む
182+
- [kubectlを使用してSecretを管理する](/ja/docs/tasks/configmap-secret/managing-secret-using-kubectl/)方法を知る
183+
- [kustomizeを使用してSecretを管理する](/docs/tasks/configmap-secret/managing-secret-using-kustomize/)方法を知る

content/ja/docs/tasks/configmap-secret/managing-secret-using-kubectl.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,5 +142,5 @@ kubectl delete secret db-user-pass
142142
## {{% heading "whatsnext" %}}
143143

144144
- [Secretのコンセプト](/ja/docs/concepts/configuration/secret/)を読む
145-
- [設定ファイルを使用してSecretを管理する](/docs/tasks/configmap-secret/managing-secret-using-config-file/)方法を知る
145+
- [設定ファイルを使用してSecretを管理する](/ja/docs/tasks/configmap-secret/managing-secret-using-config-file/)方法を知る
146146
- [kustomizeを使用してSecretを管理する](/docs/tasks/configmap-secret/managing-secret-using-kustomize/)方法を知る

0 commit comments

Comments
 (0)