【问题标题】:Add to configmap pod name in Kubernetes添加到 Kubernetes 中的 configmap pod 名称
【发布时间】:2021-09-22 09:33:10
【问题描述】:

我正在尝试弄清楚,如何在 Kubernetes 的 configmap 中更改一个字符串。我有非常简单的配置图:

apiVersion: v1
data:
  config.cfg: |-
    [authentication]
    USERNAME=user
    PASSWORD=password
     
    [podname]
    PODNAME=metadata.podName

kind: ConfigMap
metadata:
  name: name_here

而且我需要将 configmap 安装在几个 pod 中。但是 PODNAME 应该与当前的 podname 匹配。是否有可能以其他方式?谢谢!

【问题讨论】:

标签: kubernetes configmap


【解决方案1】:

我认为 ConfigMap 无法做到这一点。但是您可以在引用 pod 字段的 pod 规范中设置环境变量。

apiVersion: v1
kind: Pod
metadata:
  name: test-ref-pod-name
spec:
  containers:
    - name: test-container
      image: busybox
      command: [ "sh", "-c"]
      args:
      - env | grep PODNAME
      env:
        - name: PODNAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
  restartPolicy: Never

查看官方文档:https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/#use-pod-fields-as-values-for-environment-variables

【讨论】:

  • 这很好,但它不适用于从部署或有状态集生成的 pod 名称。此类 pod 遵循模式 --.
  • 谢谢!我看到了该选项,但问题是 - 我需要将此文件 config.cfg 安装到应用程序文件夹
【解决方案2】:

这并不能准确回答您的问题,但 pod 名称通常以 pod 内的主机名结束,并且可以作为标准环境变量访问

echo $HOSTNAME

【讨论】:

    猜你喜欢
    • 2020-07-23
    • 1970-01-01
    • 2017-07-05
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 2023-03-16
    • 2019-02-06
    • 1970-01-01
    相关资源
    最近更新 更多