自学内容网 自学内容网

Kubernetes 配置管理

一、什么是 ConfigMap?

在传统架构中,配置文件往往被保存在宿主机上,程序启动是可以指定某个配置文件,但是使用容器部署时,容器所在的节点并不固定,所以不能使用这种方式,此处在构建镜像时,如果把配置文件也放在容器里面,那么配置文件一旦有更改的话,也是一件非常麻烦的事情。所以k8s 抽象了一个 configMap的概念,将配置与 pod 和组件分开,这有助于保持工作负载的可移植性,使配置更易于更改和管理。比如在生产环境中,可以将 Nginx、Redis 等应用的配置文件存储在 ConfigMap 上,然后将其挂载即可使用、

相对于 secret,ConfigMap 更倾向于存储和共享非敏感、未加密的配置信息,假如是集群中使用敏感信息,最好使用 secret。

ConfigMap 用来在键值对数据库(etcd)中保存非加密数据。一般用来保存配置文件。

ConfigMap 可以用作环境变量、命令行参数或者存储卷。

ConfigMap 将环境配置信息与容器镜像 解耦,便于配置的修改。

ConfigMap 在设计上不是用来保存大量数据的。

ConfigMap 中保存的数据不可超过1 MiB。

二、创建ConfigMap

  1. 针对目录创建configmap
    1. 先创建测试目录

    1. 在测试目录下写入几个测试文件

    1. 创建一个configmap

    1. 查看创建的configmap的信息

    1. 以yaml文件的方式查看创建的configmap的详细信息

  1. 针对文件创建configmap
    1. 在测试目录下创建一个新的测试文件

    1. 在创建时直接跟上文件名称

    1. 以yaml文件的格式查看针对文件创建的configmap

  1. 创建带有key值的configmap

  1. 针对文件创建指定数量的带有key值的configmap

    1. 以yaml文件的格式查看创建出来的configmap详细信息

  1. 创建为Pod引用变量的configmap
    1. 在测试目录下创建一个变量文件

    1. 针对变量文件创建configmap

    1. 查看详细信息

  1. 创建基于字符值的configmap

  1. 删除configmap

  1. 基于valueFrom的方式创建configmap(变量的名称可以和初始的名称不一样,可已有选择性的选择一部分变量)
    1. 先以字符的形式创建configmap

    1. 创建有变量的Pod

    1. 查看log

  1. 基于envFrom的方式创建configmap(变量的名称和初始名称一致)
    1. 使用envFrom从configmap定义变量

    1. 创建此Pod

    1. 查看log

  1. 以文件的形式挂载configmap
    1. 先创建测试文件

    1. 使用带有key的命令创建configmap

    1. 查看创建的configmap

    1. 编写文件,将名为spec-config的configMap 挂载到容器的/etc/config 目录下

    1. 创建此Pod

(/etc/conf目录会被覆盖)

    1. 查看Pod创建结果

    1. 登录到容器,查看挂载结果

  1. 自定义文件名挂载configmap
    1. 编写Pod文件

    1. 创建此Pod

    1. 查看创建结果

    1. 登录容器查看挂载结果

    1. 查看挂载文件的权限

  1. 指定挂载的文件权限
    1. 编写Pod文件,指定文件的权限(dapi-teste3-pod.yaml)

    1. 创建此Pod

    1. 查看创建结果

    1. 登录容器查看文件的权限

  1. 利用SubPath解决挂载覆盖的问题
    1. 创建测试用的配置文件

    1. 使用带有key的命令创建configmap

    1. 查看configmap

    1. 创建Pod文件,挂载文件

    1. 创建此Pod

    1. 查看创建结果

    1. 登录容器查看挂载结果

然后:cat /etc/nginx/nginx.conf

  1. 利用secret加密数据管理
    1. 使用kubectl创建secret
      1. 首先创建账户信息

      1. 以文件的方式创建secret

      1. 查看secret

      1. 查看加密详细信息

    1. 使用yaml文件创建secret
      1. 先对明文进行编码(手动创建 Secret 时,每一项内容必须是 base64 编码的)

      1. 创建一个yaml文件(db-user-secret.yaml),格式如下

      1. 通过此yaml文件创建一个secret

      1. 查看创建的secret

  1. 解码secret
    1. 查看创建的secret,以获取加密的信息

    1. 把加密过的数据复制出来,使用base64,解密


原文地址:https://blog.csdn.net/TBF610218/article/details/142599854

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!