美文网首页
阿里云 Kubernetes 集群,部署的时候给Java传递参数

阿里云 Kubernetes 集群,部署的时候给Java传递参数

作者: Yellowtail | 来源:发表于2019-03-26 10:56 被阅读0次

    概述

    前面,在 Docker Swarm集群
    我们尝试过设置环境变量给Java传递参数
    这次尝试下在 Kubernetes 集群下进行这个操作

    镜像

    镜像和上次的一样,代码如下

    @SpringBootApplication
    public class DemoApplication {
        
        private static final Logger LOGGER = LoggerFactory.getLogger(DemoApplication.class);
    
        public static void main(String[] args) {
            
            Map<String, String> m = System.getenv();
            
            m.forEach( (k, v) -> {
                LOGGER.info("key {}, value {}", k, v);
            });
        
            LOGGER.info("--------------------------------------" );
        
             Properties p = System.getProperties();
             
             p.keySet().forEach( k -> {
                 String v = (String) p.get(k);
                 
                 LOGGER.info("key {}, value {}", k, v);
             });
        
            SpringApplication.run(DemoApplication.class, args);
        
            }
    }
    

    yaml 配置

    
    ##################################################################################################
    # 测试 yaml 配置环境变量
    ##################################################################################################
    apiVersion: v1
    kind: Service   # 定义一个服务
    metadata:
      name: test-env-dev-service
      labels:
        app: test-env-dev  
    spec:
      ports:
      - port: 8080   # port是service对外暴露的端口,targetPort是容器暴露的端口,如果不写 targetPort, 那么就默认和port 一样,这个是必填的,不写报错,所以随便写一个
        name: http
      selector:
        app: test-env-dev   # 这个service 把所有的 labels 为“app: test-env-dev” 的pod选中,抽象为一个service,统一对外提供服务
    ---
    apiVersion: extensions/v1beta1
    kind: Deployment         # 定义部署,多个 Deployment 可以组成一个 service
    metadata:
      name: test-env-dev-v1
    spec:
      replicas: 1     #副本数量
      template:
        metadata:
          labels:
            app: test-env-dev      #定义一个标签,可以被service 使用
            version: v1
        spec:
          imagePullSecrets:
          - name: geek-secret     #pull 私有镜像的时候,使用的密钥文件
          containers:
          - name: test-env-dev
            image: registry.cn-shenzhen.aliyuncs.com/cuishiwen/b-async-task-dev:latest
            imagePullPolicy: Always    # Always:不管镜像是否存在都会进行一次拉取,适合我们标记为 latest的私有镜像
            env:
            - name: container_type
              value: async-task
                
    ---
    
    

    注意最后三行

    env:
            - name: container_type
              value: async-task
    

    最后日志输出为

    image.png

    相关文章

      网友评论

          本文标题:阿里云 Kubernetes 集群,部署的时候给Java传递参数

          本文链接:https://www.haomeiwen.com/subject/wozwvqtx.html