刚接触Kubernetes的人可通过《Kubernetes实践入门》一书的ConfigMap部分进行学习
起因或背景
我希望能够创建和部署能够运行未来应用程序的环境,以此来获得更多关于基础设施方面的知识。而且,我还希望能够进一步更新自己的知识水平。
在其中我遇到了这本书,并希望将自己所做的事情逐渐留下来,作为给未来自己的一封信,也希望能够重新审视。
本次引用与参考,以及我个人学习所需要的书籍介绍。
关于真正的学习
我打算一边阅读书籍,一边逐章节地慢慢学习。同时,我也想借助GitHub的源代码来学习。这一章的学习可能主要是通过模仿书籍上的示例来进行的……
开始勉强
マニュフェスト作成するまで
https://github.com/kubernetes-practical-guide/examples/tree/master/ch3.4.2.1/manifests/mattermost
マニフェスト作成結果になるまで
https://github.com/kubernetes-practical-guide/examples/tree/master/ch3.4.2.2
从 Pod 模板的 env 中调用并存储键和值到 ConfigMap。
$ kubectl create cm common-env -o yaml --dry-run \
--from-literal MYSQL_USER=myuser \
--from-literal MYSQL_PASSWORD=mypassword \
--from-literal MYSQL_DATABASE=mattermost > cm.yaml
$ cat cm.yaml
apiVersion: v1
data:
MYSQL_DATABASE: mattermost
MYSQL_PASSWORD: mypassword
MYSQL_USER: myuser
kind: ConfigMap
metadata:
creationTimestamp: null
name: common-env
containers:
- image: k8spracticalguide/mattermost:4.10.2
name: mattermost
env:
- name: MM_USERNAME
valueFrom:
configMapKeyRef:
name: common-env
key: MYSQL_USER
- name: MM_PASSWORD
valueFrom:
configMapKeyRef:
name: common-env
key: MYSQL_PASSWORD
- name: DB_NAME
valueFrom:
configMapKeyRef:
name: common-env
key: MYSQL_DATABASE
MM_USERNAME / MM_PASSWORD / DB_NAME を ConfigMap を参照するように修正した
env:
- name: MYSQL_ROOT_PASSWORD
value: rootpassword
envFrom:
- configMapRef:
name: common-env
MYSQQL_ROOT_PASSWORD 以外を CoinfigMap を参照するように修正した
Environment:
MM_USERNAME: <set to the key 'MYSQL_USER' of config map 'common-env'> Optional: false
MM_PASSWORD: <set to the key 'MYSQL_PASSWORD' of config map 'common-env'> Optional: false
DB_NAME: <set to the key 'MYSQL_DATABASE' of config map 'common-env'> Optional: false
DB_HOST:
Environment Variables from:
common-env ConfigMap Optional: false
Environment:
MYSQL_ROOT_PASSWORD: rootpassword
在Pod内以文件形式读取数据的内容。
$ curl -L -O https://raw.githubusercontent.com/kubernetes-practical-guide/examples/master/ch3.4.2.2/config.json
$ kubectl create cm mm-config-file -o yaml --dry-run --from-file config.json > cm-file.yaml
volumeMounts:
- name: cm-volume
mountPath: /mm/config #マウントするボリューム名を指定
volumes:
- name: cm-volume
configMap:
name: mm-config-file
items:
- key: config.json
path: config.json
- config.json ファイルが Volume に保存されているのを確認
$ kubectl exec -it mattermost-846bf547c-zfwld -- ls /mm/config/
config.json
下一步是继续学习第3.4.2章节。
- Secret を使って今回設定した設定値を管理する方法を学びます
最终
嗯,我稍微回顾一下到目前为止的章节,大概只完成了三分之一左右吧。但我认为接下来会变得更有趣,所以我想在下一次之前更深入地理解ConfigMap。
这之前的发表
-
- 《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实践入门》实战学习)体验篇第二部分》
-
- 《Kubernetes入门指南(书籍《Kubernetes实践入门》实战学习)体验篇第三部分(Label操作)》
-
- 《Kubernetes入门指南(书籍《Kubernetes实践入门》实战学习)体验篇第三部分(OwnerReference操作)》
- 《Kubernetes入门指南(书籍《Kubernetes实践入门》实战学习)清单篇》