quarkus-使用kubernetes集群配置日志记录

zqry0prt  于 2021-07-09  发布在  Java
关注(0)|答案(2)|浏览(499)

根据官方资源,日志配置依赖于application.properties文件。
现在,我需要根据所使用的集群进行一些配置(假设我们有典型的dev、staging和production环境,因此dev至少应该有一个调试级别和production信息)。
起初我认为使用kubernetes配置Map,但我看不到与quarkus日志记录有任何联系。
如何解决这个问题?
编辑:
这是我的Map

kind: ConfigMap
apiVersion: v1
metadata:
name: kube-cm-config-map
namespace: default
uid: d992d86f-c247-471d-8e31-53e9a1858b76
resourceVersion: '8484'
creationTimestamp: '2021-04-22T13:12:43Z'
managedFields:
    - manager: kubectl-create
    operation: Update
    apiVersion: v1
    time: '2021-04-22T13:12:43Z'
    fieldsType: FieldsV1
    fieldsV1:
        'f:data':
        .: {}
        'f:myenv': {}
        'f:myname': {}
    - manager: kubectl-edit
    operation: Update
    apiVersion: v1
    time: '2021-04-22T16:52:18Z'
    fieldsType: FieldsV1
    fieldsV1:
        'f:data':
        'f:log.file.level': {}
    - manager: dashboard
    operation: Update
    apiVersion: v1
    time: '2021-04-23T08:03:06Z'
    fieldsType: FieldsV1
    fieldsV1:
        'f:data':
        'f:quarkus.log.file.level': {}
data:
log.file.level: DEBUG
myenv: cl1
myname: cluster1
quarkus.log.file.level: DEBUG
nimxete2

nimxete21#

有两种方法可以使用 ConfigMap 在quarkus中读取运行时配置。
第一个是让quarkus使用 quarkus-kubernetes-config 这里描述的扩展。
配置kubernetes的第二种方法 Deployment 转向 ConfigMap 值转换为pod的环境变量。这可以通过 quarkus-kubernetes 这里描述的扩展。
因此您将在configmap中添加正确的quarkus日志记录配置(即一个键值对),然后在运行时使用上面的方法之一使用它

g6ll5ycj

g6ll5ycj2#

如果您使用kubernetes resource yaml部署应用程序,请使用下面的代码段将自定义configmap作为环境变量推送到应用程序(https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#configure-all-key-value-pairs-in-a-configmap-as-container-environment-variables(所有密钥-值对-在-a-configmap-as-container-environment中):

spec:
      containers:
        - name: 
          image:
          envFrom:
            - configMapRef:
                name: kube-cm-config-map

为每个环境使用不同的configmap,但名称相同。如果您的环境(dev/qa/etc)是kubernetes名称空间,那么很容易设置。只需在每个命名空间中复制configmap,并更改每个命名空间中的日志级别值。
另外,更改configmap属性的命名约定 log.file.levelLOG_FILE_LEVEL 看到了吗https://quarkus.io/guides/config-reference#environment_variables

相关问题