初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)Secret 編
背景
個人的にインフラの知識以上にこれからのアプリケーションが動く環境を作ってデプロイしたりしてこれからの知識を身に着けたい。そしてより一層、自分の知識のアップデートをしたいと思いました。
その中でこの本に出会い、これから少しずつやったことを残し、未来の自分への手紙としてもあり、見つめ直せればと思いました。
引用や参考と今回の自分の勉強用の書籍の紹介
技術評論社『Kubernetes実践入門』のサンプルコード
Kubernetes実践入門 プロダクションレディなコンテナ&アプリケーションの作り方
実際の学びについて
書籍を読みながら、章ごとに少しずつ進めていきたいと思います。
GitHub のソースコードも使いながら学んで行きたいと思います。
勉強開始
コマンド郡
secret で mysecret を作成する
my-username
$ kubectl create secret generic mysecret --from-file=username --from-literal=password=mypassword
secret/mysecret created
実行結果
-
username
ファイルの中身が 実行結果のusername=my-username
として設定されてるのを確認できます。 - コマンドラインの
--from-literal=password=mypassword
がpassword=mypassword
として設定されているのを確認できます。
実行結果(コマンド)
- 確認して値がBase64で表示されているのを確認できます。
$ kubectl get secrets mysecret -o yaml
apiVersion: v1
data:
password: bXlwYXNzd29yZA==
username: bXktdXNlcm5hbWU=
kind: Secret
metadata:
creationTimestamp: "2020-04-12T03:58:21Z"
name: mysecret
namespace: default
resourceVersion: "64003"
selfLink: /api/v1/namespaces/default/secrets/mysecret
uid: 0fe6f11b-74b9-4f86-895b-f62da6bda371
type: Opaque
Secret をボリュームとしてマウントする場合
apiVersion: v1
kind: Pod
metadata:
name: secret-volume
spec:
containers:
- name: nginx
image: k8spracticalguide/nginx:1.15.5
ports:
- containerPort: 80
volumeMounts:
- name: mysecret-volume # 下記の Volume 名と一致しなければならない
readOnly: true
mountPath: /secrets/mysecret
volumes:
- name: mysecret-volume
secret: # Volumeとして投入するSecretの設定 (1)
secretName: mysecret # Secret 名と一致しなければならない
マニュフェストを適用する
$ kubectl apply -f secret-volume.yaml
pod/secret-volume created
実行後(コマンド)
- key は表示され Value は非表示でした。これでよいのかな?
$ kubectl exec secret-volume -- ls /secrets/mysecret
password
username
Secret を環境変数として扱う場合
apiVersion: v1
kind: Pod
metadata:
name: secret-env
spec:
containers:
- name: nginx
image: k8spracticalguide/nginx:1.15.5
ports:
- containerPort: 80
env:
- name: SECRET_PASSWORD # 設定する環境変数名
valueFrom:
secretKeyRef: # 環境変数の値として利用するSecretのキーの参照 (2)
name: mysecret # Secret名を指定する
key: password # Secretのキー名を指定
マニュフェストを適用する
$ kubectl apply -f secret-env.yaml
pod/secret-env created
実行後(コマンド)
- Secret で設定したパスワードが環境変数に設定されているのを確認できました。
$ kubectl exec secret-env -- sh -c "env | grep SECRET_PASSWORD"
SECRET_PASSWORD=mypassword
アプリケーションの管理方法(3章)〜
今までが一応、コマンドの使い方や、Namespace
/Pod
/ReplicaSet
/Deployment
/Service
/Secret
等の概要からだと思ってやっていきます。
最後に
1章ずつ、ちょっとずつ、 ちょっとちょうどいい
を勉強のベースにやっていきます。
Author And Source
この問題について(初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)Secret 編), 我々は、より多くの情報をここで見つけました https://qiita.com/nodokaodayaka/items/8bc1a5963a7c7c177010著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .