从书籍《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 を再作成するコントローラを追加する

 

    ③マウントしたファイルの更新を検知してリロードする

关于这两个问题,我想暂时搁置写经的讨论。

之前的帖子

    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实践入门》写作指南)- 体验篇2》

 

    1. 《Kubernetes初学者入门(书籍《Kubernetes实践入门》写作指南)- 体验篇3(Label操作)》

 

    1. 《Kubernetes初学者入门(书籍《Kubernetes实践入门》写作指南)- 体验篇3(OwnerReference操作)》

 

    1. 《Kubernetes初学者入门(书籍《Kubernetes实践入门》写作指南)- 配置文件篇》

 

    《Kubernetes初学者入门(书籍《Kubernetes实践入门》写作指南)- 配置文件(ConfigMap)篇》
广告
将在 10 秒后关闭
bannerAds