从书籍《Kubernetes实践入门》的实例中学习,我们将讲解初学者如何编写Kubernetes的清单文件(Secret)
背景
我想要建立并部署应用程序运行环境,以追求比基础设施知识更深入的知识。我希望学习未来的知识,同时将自己的知识更新至更高水平。
在那中遇到这本书,并且逐渐留下所做的事情,作为写给未来自己的信,希望能够反思并重新审视。
引用和参考以及对我当前学习用书的介绍
关于实际学习
我希望一边阅读书籍,一边逐章前进一点点。
我也希望在学习过程中使用GitHub的源代码。
这章的学习可能主要是对书籍内容的模仿。
勉強開始 – 迫使自己開始
使用秘密工具进行处理机密情报.
-
- ConfigMap で設定することもできるけど、秘密情報には向いていない
-
- ConfigMap だったら秘密情報も見れてしまう
- そうか、だから Secret があるということだと思います。
apiVersion: v1
data:
MYSQL_DATABASE: mattermost
MYSQL_USER: myuser
kind: ConfigMap
制作秘密情报的宣言
$ kubectl create secret generic common-env -o yaml --dry-run \
--from-literal MYSQL_ROOT_PASSWORD=rootpassword \
--from-literal MYSQL_PASSWORD=mypassword > secret.yaml
$ cat secret.yaml
apiVersion: v1
data:
MYSQL_PASSWORD: bXlwYXNzd29yZA==
MYSQL_ROOT_PASSWORD: cm9vdHBhc3N3b3Jk
kind: Secret
metadata:
creationTimestamp: null
name: common-env
保密的安全性
我在书籍中也有,但值的部分是经过Base64编码的!我来确认一下。
$ echo bXlwYXNzd29yZA== | base64 -d
mypassword # 上記のコマンドで設定した値になっていることを確認
从 Pod 模板中调用 Secret 的值
- name: MM_PASSWORD
valueFrom:
secretKeyRef: #configMapKeyRef -> secretKeyRef に変更
name: common-env
key: MYSQL_PASSWORD
spec:
containers:
- image: k8spracticalguide/mysql:5.7.22
name: mysql
envFrom:
- configMapRef:
name: common-env
- secretRef: # 追加
name: common-env # 追加
$ kubectl describe po mattermost-7fd45dcf9f-pm6tc
〜省略〜
Environment:
MM_USERNAME: <set to the key 'MYSQL_USER' of config map 'common-env'> Optional: false
MM_PASSWORD: <set to the key 'MYSQL_PASSWORD' in secret 'common-env'> Optional: false
DB_NAME: <set to the key 'MYSQL_DATABASE' of config map 'common-env'> Optional: false
DB_HOST:
由于 MYSQL_PASSWORD 设置为 secret,所以似乎没问题。
$ kubectl describe po db-7f9fbfcc6-clpxn
〜省略〜
Environment Variables from:
common-env ConfigMap Optional: false
common-env Secret Optional: false
接下来我们将学习第3.5章。
- アプリケーション同士の通信する方法を学びます
最后
在阅读本书时,有两个图标。而这次,我觉得 锚点图标 中的“ConfigMap 和 Secret 值的加载”这一部分的 ① 很有见地。
当我更新部署后成功地找到了确认最后反映值的方法,我感到非常开心,并且再次深深地意识到这是文字向我解释的地方啊~
-
- ②ConfigMap の更新を検知して Pod を再作成するコントローラを追加する
- ③マウントしたファイルの更新を検知してリロードする
关于这两个问题,我想暂时搁置写经的讨论。
之前的帖子
-
- 《Kubernetes初学者入门(书籍《Kubernetes实践入门》写作指南)- Pod篇》
-
- 《Kubernetes初学者入门(书籍《Kubernetes实践入门》写作指南)- Namespace篇》
-
- 《Kubernetes初学者入门(书籍《Kubernetes实践入门》写作指南)- Label篇》
-
- 《Kubernetes初学者入门(书籍《Kubernetes实践入门》写作指南)- ReplicaSet篇》
-
- 《Kubernetes初学者入门(书籍《Kubernetes实践入门》写作指南)- Deployment篇》
-
- 《Kubernetes初学者入门(书籍《Kubernetes实践入门》写作指南)- Service篇》
-
- 《Kubernetes初学者入门(书籍《Kubernetes实践入门》写作指南)- ConfigMap篇》
-
- 《Kubernetes初学者入门(书籍《Kubernetes实践入门》写作指南)- Secret篇》
-
- 《Kubernetes初学者入门(书籍《Kubernetes实践入门》写作指南)- 操作篇》
-
- 《Kubernetes初学者入门(书籍《Kubernetes实践入门》写作指南)- 体验篇》
-
- 《Kubernetes初学者入门(书籍《Kubernetes实践入门》写作指南)- 体验篇2》
-
- 《Kubernetes初学者入门(书籍《Kubernetes实践入门》写作指南)- 体验篇3(Label操作)》
-
- 《Kubernetes初学者入门(书籍《Kubernetes实践入门》写作指南)- 体验篇3(OwnerReference操作)》
-
- 《Kubernetes初学者入门(书籍《Kubernetes实践入门》写作指南)- 配置文件篇》
- 《Kubernetes初学者入门(书籍《Kubernetes实践入门》写作指南)- 配置文件(ConfigMap)篇》