zoukankan      html  css  js  c++  java
  • 【k8s】cm-生成环境变量

    环境

    1. kubernetes 1.20.6
    2. Spring Boot 2.5.0-RC1

    目标

    将 cm 中的配置信息,设置到 Pod 的环境变量中,如果 cm 有修改,环境变量中的值并不会同步修改,除非重启。

    示例

    准备 cm

    [root@master ~]# kubectl create cm cm1 --from-literal=name=jiangbo --from-literal=age=44
    configmap/cm1 created
    [root@master ~]# kubectl describe cm cm1
    Name:         cm1
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>
    
    Data
    ====
    age:
    ----
    44
    name:
    ----
    jiangbo
    Events:  <none>
    

    直接生成

    apiVersion: v1
    kind: Pod
    metadata:
      name: spring-k8s
    spec:
      containers:
        - name: spring-k8s
          envFrom:
            - configMapRef:
                name: cm1
          image: jiangbo920827/spring-k8s:liveness
          ports:
            - containerPort: 8080
    
    [root@master ~]# kubectl exec spring-k8s -- sh -c 'printenv name age'
    jiangbo
    44
    

    增加统一前缀

    apiVersion: v1
    kind: Pod
    metadata:
      name: spring-k8s
    spec:
      containers:
        - name: spring-k8s
          envFrom:
            - prefix: ENV_
              configMapRef:
                name: cm1
          image: jiangbo920827/spring-k8s:liveness
          ports:
            - containerPort: 8080
    
    [root@master ~]# kubectl exec spring-k8s -- sh -c 'env | grep ENV'
    ENV_name=jiangbo
    ENV_age=44
    

    自定义 KEY

    apiVersion: v1
    kind: Pod
    metadata:
      name: spring-k8s
    spec:
      containers:
        - name: spring-k8s
          env:
            - name: CHINESE_NAME
              valueFrom:
                configMapKeyRef:
                  name: cm1
                  key: name
            - name: ENV_AGE
              valueFrom:
                configMapKeyRef:
                  name: cm1
                  key: age
          image: jiangbo920827/spring-k8s:liveness
          ports:
            - containerPort: 8080
    
    [root@master ~]# kubectl exec spring-k8s -- env
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin
    HOSTNAME=spring-k8s
    CHINESE_NAME=jiangbo
    ENV_AGE=44
    KUBERNETES_SERVICE_HOST=10.96.0.1
    KUBERNETES_SERVICE_PORT=443
    KUBERNETES_SERVICE_PORT_HTTPS=443
    KUBERNETES_PORT=tcp://10.96.0.1:443
    KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
    KUBERNETES_PORT_443_TCP_PROTO=tcp
    KUBERNETES_PORT_443_TCP_PORT=443
    KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
    LANG=C.UTF-8
    JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk/jre
    JAVA_VERSION=8u212
    JAVA_ALPINE_VERSION=8.212.04-r0
    HOME=/root
    

    总结

    使用 cm 生成环境变量,一旦生成就不可以修改。

    附录

  • 相关阅读:
    C++的XML编程经验――LIBXML2库使用指南
    C/C++:sizeof('a')的值为什么不一样?
    Linux core dump file详解
    非阻塞socket的连接
    Java环境设置、HelloWorld例子、Ant环境及运行
    linux下杀死进程命令
    IP协议详解
    内置函数(上)
    异常处理
    递归函数与二分法
  • 原文地址:https://www.cnblogs.com/jiangbo44/p/14956932.html
Copyright © 2011-2022 走看看