南昌个人网站制作怎么做海沧区建设局网站
CCE创建工作负载变量引用
背景,看到cce创建负载时会生成变量,如下。在skywaking-agent的使用,想要调用cce负载变量生成service_name。
 -Dskywalking.agent.authentication里含有敏感信息需要写到配置项。简单粗糙的都写到配置项好像不合适。
创建my_service负载后默认创建变量
PAAS_APP_NAME
PAAS_NAMESPACE
PAAS_PROJECT_ID
 
1、以dockerfile直接调用,调用不到
FROM centos:v7.0.0
ADD target/*.jar app.jarENV JAVA_OPTS "-Xms2048m -Xmx2048m "
ENV JAVA_OPT  "-Dskywalking.agent.service_name=skywalking-test.$(PAAS_APP_NAME).test"ENTRYPOINT java  $JAVA_OPT  $JAVA_OPTS -jar /app.jar 
 
/]# ps -ef 
UID          PID    PPID  C STIME TTY          TIME CMD
root           1       0 71 10:49 ?        00:00:32 java -Dskywalking.agent.service_name=skywalking-test.$(PAAS_APP_NAME).test -Xms2048m -Xmx2048m 
 
构建时引用不到cce的变量,且以字符串的形式给了java-options,不会再产生调用
2、以自定义变量调用cce变量:以下仅$(PAAS_APP_NAME)生效了,使用还是要标准些
自定义	my_app_name		$PAAS_APP_NAME		-->		my_app_name=$PAAS_APP_NAME
自定义	my_app_name2	${PAAS_APP_NAME}	-->		my_app_name2=${PAAS_APP_NAME}
自定义	my_app_name3	$(PAAS_APP_NAME)	-->		my_app_name3=my_service  #正确引用  调用还是要标准些
自定义	my_app_name4	$(apm-test)			-->		my_app_name4=$(apm-test)		#调配置项
 
最终
FROM centos:v7.0.0
ADD target/*.jar app.jarENV JAVA_OPTS "-Xms2048m -Xmx2048m "ENTRYPOINT java  $JAVA_OPT  $JAVA_OPTS -jar /app.jar 
 
cce变量配置
JAVA_OPT  -javaagent:/skywalking-agent.jar -Dskywalking.agent.service_name=skywalking-test.$(PAAS_APP_NAME).test
 
以变量形式配置时,可以调用,但是插拔性不强,去掉就找不回了,而且不够安全。还是想以配置项导入或卸掉
2、配置项调用PAAS_APP_NAME时是调用不到的
配置项导入 --			apm-test	
JAVA_OPT -Dskywalking.agent.service_name=skywalking-test.$PAAS_APP_NAME.test
# 以键值写入数据库,调用时是固定的
 
3、以start.sh启动,
 虽然复杂点,但是多处插拔,比较灵活。dockerfile、与cce的变量strat.sh都可以调用
FROM centos:v7.0.0
ADD target/*.jar app.jar
COPY start.sh /start.sh
ENV JAVA_OPTS "-Xms2048m -Xmx2048m "
ENTRYPOINT ["/bin/bash","/start.sh"]
 
调用cce的PAAS_APP_NAME
#!/bin/bash
JAVA_OPT="-Dskywalking.agent.service_name=skywalking-test.$PAAS_APP_NAME.test"  # 调用cce的PAAS_APP_NAME
java  $JAVA_OPT $JAVA_OPTS -jar /app.jar
 
也可以这样
#!/bin/bash
JAVA_OPTS="-Dskywalking.agent.service_name=skywalking-test.$PAAS_APP_NAME.test $JAVA_OPTS"  # 调用cce的PAAS_APP_NAME,调用dockerfile的JAVA_OPTS
java  $JAVA_OPTS -jar /app.jar    # 多个变量,方便使用不通的操作
 
最终三部分
dockerfile、start.sh可以sed灵活更改,配置项放敏感信息更安全
dockerfile
 基础启动配置
FROM centos:v7.0.0
ADD target/*.jar app.jar
COPY start.sh /start.sh
ENV JAVA_OPTS "-Xms2048m -Xmx2048m "
ENTRYPOINT ["/bin/bash","/start.sh"]
 
cce配置项
 存储共用配置、authentication敏感信息
#诸多共用性agent选项配置一个
JAVA_OPT -javaagent:/skywalking-agent.jar -Dskywalking.collector.backend_service=100.12.15.15:12800 -Dskywalking.agent.authentication=SvqIBCDuhAp3yzMK
 
start.sh
追加临时的变量参数,直接调用cce的负载变量
#!/bin/bash
JAVA_OPTS="-Dskywalking.agent.service_name=skywalking-test.$PAAS_APP_NAME.test $JAVA_OPTS"  # 调用cce的PAAS_APP_NAME,调用dockerfile的JAVA_OPTS
java  $JAVA_OP $JAVA_OPT $JAVA_OPTS -jar /app.jar    # 多个变量,方便使用不通的操作,JAVA_OP预留,这里没有使用
