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

2019-03-26  本文已影响0人  Yellowtail

概述

前面,在 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
上一篇下一篇

猜你喜欢

热点阅读