刚接触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。

这之前的发表

    1. 《Kubernetes入门指南(书籍《Kubernetes实践入门》实战学习)Pod篇》

 

    1. 《Kubernetes入门指南(书籍《Kubernetes实践入门》实战学习)NameSpace篇》

 

    1. 《Kubernetes入门指南(书籍《Kubernetes实践入门》实战学习)Label篇》

 

    1. 《Kubernetes入门指南(书籍《Kubernetes实践入门》实战学习)ReplicaSet篇》

 

    1. 《Kubernetes入门指南(书籍《Kubernetes实践入门》实战学习)Deployment篇》

 

    1. 《Kubernetes入门指南(书籍《Kubernetes实践入门》实战学习)Service篇》

 

    1. 《Kubernetes入门指南(书籍《Kubernetes实践入门》实战学习)ConfigMap篇》

 

    1. 《Kubernetes入门指南(书籍《Kubernetes实践入门》实战学习)Secret篇》

 

    1. 《Kubernetes入门指南(书籍《Kubernetes实践入门》实战学习)操作篇》

 

    1. 《Kubernetes入门指南(书籍《Kubernetes实践入门》实战学习)体验篇》

 

    1. 《Kubernetes入门指南(书籍《Kubernetes实践入门》实战学习)体验篇第二部分》

 

    1. 《Kubernetes入门指南(书籍《Kubernetes实践入门》实战学习)体验篇第三部分(Label操作)》

 

    1. 《Kubernetes入门指南(书籍《Kubernetes实践入门》实战学习)体验篇第三部分(OwnerReference操作)》

 

    《Kubernetes入门指南(书籍《Kubernetes实践入门》实战学习)清单篇》
广告
将在 10 秒后关闭
bannerAds