繁体   English   中英

如何在kubernetes yaml文件的环境变量中分配集群,名称空间和pod名称

[英]How to assign cluster, namespace and pod name in kubernetes yaml file's environment variable

我需要从部署在Kubernetes集群中的容器将集群,名称空间和Pod名称传递给AppDynamics代理。

我尝试了以下操作,但是不起作用。

containers:
      - env:
        - name: JAVA_OPTS
          value: -Dappdynamics.agent.nodeName=$HOST-$spec.nodeName-spec.PodName

- name: appdynamics.agent.nodeName
  value= $HOST-$spec.nodeName-spec.PodName

任何人都可以在这里帮助我如何收集详细信息并传递给AppD。 提前致谢。

你可以得到POD_NAMEPOD_NAMESPACE传递它们通过环境变量fieldRef

apiVersion: v1
kind: Pod
metadata:
  name: test-env
spec:
  containers:
    - name: test-container
      image: my-test-image:latest
      env:
        - name: MY_NODE_NAME
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName
        - name: MY_POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: MY_POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: MY_POD_IP
          valueFrom:
            fieldRef:
              fieldPath: status.podIP
        - name: MY_POD_SERVICE_ACCOUNT
          valueFrom:
            fieldRef:
              fieldPath: spec.serviceAccountName
        - name: REFERENCE_EXAMPLE
          value: "/$(MY_NODE_NAME)/$(MY_POD_NAMESPACE)/$(MY_POD_NAME)/data.log"
  restartPolicy: Never

编辑添加了示例env REFERENCE_EXAMPLE来显示如何引用变量。 感谢这个答案指出了$()插值。

您可以参考supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP如文档中提到这里

但是, CLUSTERNAME不是可用的标准属性。 根据此PR#22043 ,如果使用GCE,则应将CLUSTERNAME注入.metadata字段。

否则,您将必须在.metadata字段中手动指定CLUSTERNAME ,然后使用fieldRef将其作为环境变量注入。

ewok2030和Praveen建议使用以下格式帮助我。 确保将变量用作JAVA_OPTS之前必须声明的只有一件事。

容器:

   - env:

    - name: APPD_NODE_NAME
       valueFrom: 
        fieldRef:
          fieldPath: spec.nodeName
    - name: APPD_POD_NAMESPACE
      valueFrom:
        fieldRef:
          fieldPath: metadata.namespace
    - name: APP_POD_NAME
      valueFrom: 
        fieldRef:
          fieldPath: metadata.name
    - name: JAVA_OPTS
      value: -Xmx712m -Xms556m -Dpdp.logging.level=WARN -Dappdynamics.agent.nodeName=$(APPD_NODE_NAME)-$(APPD_POD_NAMESPACE)-$(APP_POD_NAME)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM