zoukankan      html  css  js  c++  java
  • 关于应用配置文件的种种

    • 开发测试生产环境的区分
    • 将不同环境的配置文件放入不同的目录中。

             比如app/下的dev,stg,prd目录,在app根目录下放一个启动文件startupapp.sh

            用处是在启动catalina前把相关的文件替换掉。内容如下

    #!/bin/sh
    
    if [ $DEPLOYMODE = "dev" ] ; then
       cp /usr/tomcat/iac/dev/setclasspath.sh /usr/tomcat/bin
       cp /usr/tomcat/iac/dev/server.xml /usr/tomcat/conf
       cp /usr/tomcat/iac/dev/context.xml /usr/tomcat/conf
       cp /usr/tomcat/iac/dev/catalina.sh /usr/tomcat/bin
    fi
    
    if [ $DEPLOYMODE = "stg" ] ; then
       cp /usr/tomcat/iac/stg/setclasspath.sh /usr/tomcat/bin
       cp /usr/tomcat/iac/stg/server.xml /usr/tomcat/conf
       cp /usr/tomcat/iac/stg/context.xml /usr/tomcat/conf
       cp /usr/tomcat/iac/stg/catalina.sh /usr/tomcat/bin
    fi
    
    if [ $DEPLOYMODE = "prd" ] ; then
       cp /usr/tomcat/iac/prd/setclasspath.sh /usr/tomcat/bin
       cp /usr/tomcat/iac/prd/server.xml /usr/tomcat/conf
       cp /usr/tomcat/iac/prd/context.xml /usr/tomcat/conf
       cp /usr/tomcat/iac/prd/catalina.sh /usr/tomcat/bin
    fi
    
    /usr/tomcat/catalina.sh run
    • 可以在yaml文件中传入一个环境变量,比如
      DEPLOYMODE =dev/stg/prd
    • 数据库密码字段的密文

    生成一个base64编码的密文

    #echo -n 'zombie' | base64
    em9tYmll

    建立一个mysecret.yaml,Opaque secret就是字符串

    apiVersion: v1
    kind: Secret
    metadata:
      name: mysecret
    type: Opaque
    data:
      username: YWRtaW4=
      password: MWYyZDFlMmU2N2Rm

    挂载到deployment或者Pod

    apiVersion: v1
    kind: Pod
    metadata:
      name: secret-env-pod
    spec:
      containers:
        - name: mycontainer
          image: busybox
          imagePullPolicy: IfNotPresent
          command:
            - sleep
            - "3600"
          env:
            - name: SECRET_USERNAME
              valueFrom:
                secretKeyRef:
                  name: mysecret
                  key: username
            - name: SECRET_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: mysecret
                  key: password

     SECRET_PASSWORD会带入容器的环境变量中

    修改tomcat的catalina.sh的配置,将环境变量带入,这一步非常关键,否则在server.xml里面无法获取环境变量的值

    JAVA_OPTS="-DSECRET_PASSWORD=${SECRET_PASSWORD} $JAVA_OPTS $JSSE_OPTS"

    在应用的server.xml中进行引用,比如

    <Context password="${SECRET_PASSWORD}" debug="0" crossContext="true" path="/solr"></Context>

    方案的问题:

    • 密码带入pod环境变量后是明文
    • 如果是上生产环境,以上步骤会交给部署组负责,因此开发是无法知道加密后的字符串的
    • 同时也不能让他登陆后台进入Pod 
    • 给节点打Label操作
    kubectl label nodes kube-node node=kube-node
    
    kubectl get node -a -l "node=kube-node"

    部署的时候加上node-selector

    nodeSelector: 
           node: kube-node4
  • 相关阅读:
    Cannot complete this action,please try again. Correlation ID :bd640a9d-4c19-doff-2fe0-6ce1104b59ae
    我的工作流为什么启动不了
    关于IE下复选框的样式问题
    使用SharePoint rest语法返回已上传的SharePoint Excel 文件
    Running the complier from the Command Line
    关于inline
    来到坡国
    在oracle Virtual Box 虚拟机中搭建hadoop1.2.1完全分布式环境(转自康哥的博客)
    hadoop调试
    linux相关指令学习
  • 原文地址:https://www.cnblogs.com/ericnie/p/8315680.html
Copyright © 2011-2022 走看看