zoukankan      html  css  js  c++  java
  • kubernetes 的configMap和sercet配置信息

    简介:

    启动pod,pod启动时可以将configMap资源关联到当前pod上来,从中读一个数据c传递给pod内的容器的一个变量。任然是变量注入的方式来给容器传配置信息。

    把每一个configMap当一个存储卷,直接挂在到容器的某个目录上,这个目录恰好是运行程序读取配置信息的文件路径。支持动态修改的,如果configMap配置信息改变了,通知所有pod中应用重载。是通过明文传数据的,安全性不高。

    sercet与configMap的功能相似,但是传递数据是 通过base64编码机制。

    配置容器化应用的方式: 1.通过自定义命令行参数来实现   args:[]

                2.把配置文件直接写入镜像  (实现太单一,耦合度太紧密) 

                  3.环境变量  (1) Cloud Native的应用程序一般可以直接通过环境变量加载配置

                    (2) 通过entrypoint脚本来预处理变量为配置文件中的配置信息

               4.存储卷  

               5.configMap的核心作用让配置信息和镜像文件解耦,镜像可以做成骨架,配置信息可以通过configMap注入,使得一个镜像文件可以应付多个不同配置信息,为应  用程序运行不同配置的环境而工作。在configMap中所有数据都保存键值格式。

    一、创建configMap

    kubectl create configmap nginx-config --from-literal=nginx_port=9999 --from-literal=server_name=www.yiruiduan.com 通过命令行设置键值

    查看configMap的描述

    kubectl create configmap nginx-yiruiduan --from-file=./yiruiduan.conf 通过加载文件 文件名就是键,文件内容就是值

    查看描述

     在pod中应用有两种方式加载环境变量或者volume挂载:

    1)通过env加载的方式,注入配置信息。只有在启动pod的时候生效

    apiVersion: v1
    kind: Pod
    metadata:
      name: pod-cm-1
      namespace: default
      labels:
        app: myapp
        tier: frontend
      annotations:
        create_by: yiruiduan
    spec:
      containers:
      - name: myapp
        image: ikubernetes/myapp:v1
        ports:
        - name: http
          containerPort: 80
        - name: https
          containerPort: 443
        env:
        - name: NGINX_SERVER_PORT
          valueFrom:
            configMapKeyRef:
              name: nginx-config
              key: nginx_port
        - name: NGINX_SERVER_NAME
          valueFrom:
            configMapKeyRef:
              name: nginx-config
              key: server_name

    2)通过volume挂载的方式,动态配置信息

    apiVersion: v1
    kind: Pod
    metadata:
      name: pod-cm-3
      namespace: default
      labels:
        app: myapp
        tier: frontend
      annotations:
        create_by: yiruiduan
    spec:
      containers:
      - name: myapp
        image: ikubernetes/myapp:v1
        ports:
        - name: http
          containerPort: 80
        - name: https
          containerPort: 443
        volumeMounts:
        - name: nginxconf
          mountPath: /etc/nginx/conf.d/
          readOnly: true
      volumes:
      - name: nginxconf
        configMap:
          name: nginx-yiruiduan

    二、创建secret

     kubectl create secret generic mysql-root-password --from-literal=password=yiruiduan 通过命令行的方式创建

    使用的范式和configMap的使用方式一样可以通过env注入,也可以通过volume挂载方式。它将数据通过base64的编码。不易被人看懂

  • 相关阅读:
    TP框架 商城前台用户注册方法
    小知识
    TP框架中的一些登录代码分享
    js贪吃蛇小游戏
    关于jQ的小案例分享
    vb语法
    ruby file
    ruby的next if boolean
    ruby文件操作
    vue里面的this指向
  • 原文地址:https://www.cnblogs.com/both/p/9681940.html
Copyright © 2011-2022 走看看