如何在容器内访问 Kubernetes 集群环境变量?

杰特

例如,我在公共云集群中运行一个 Pod。Pod 有一个运行应用程序的主容器。集群有一个名为 的环境变量ABC在主容器中,我希望访问环境变量ABC这样做的最佳方法是什么?

严厉的曼瓦尔

非常简单的选择

apiVersion: v1
kind: Pod
metadata:
  name: envar-demo
  labels:
    purpose: demonstrate-envars
spec:
  containers:
  - name: envar-demo-container
    image: gcr.io/google-samples/node-hello:1.0
    env:
    - name: DEMO_GREETING
      value: "Hello from the environment"
    - name: DEMO_FAREWELL
      value: "Such a sweet sorrow"

阅读更多:https : //kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/

选项1

如果变量不是很重要,您可以使用 configmap 来存储和 config map 将被注入到 POD 并且您的应用程序可以从操作系统访问变量。

阅读有关 configmap 的更多信息:https ://kubernetes.io/docs/concepts/configuration/configmap/

示例配置映射:

apiVersion: v1
kind: ConfigMap
metadata:
  name: special-config
  namespace: default
data:
  SPECIAL_LEVEL: very
  SPECIAL_TYPE: charm 

示例吊舱

apiVersion: v1
kind: Pod
metadata:
  name: dapi-test-pod
spec:
  containers:
    - name: test-container
      image: k8s.gcr.io/busybox
      command: [ "/bin/sh", "-c", "ls /etc/config/" ]
      volumeMounts:
      - name: config-volume
        mountPath: /etc/config
  volumes:
    - name: config-volume
      configMap:
        # Provide the name of the ConfigMap containing the files you want
        # to add to the container
        name: special-config
  restartPolicy: Never

您还可以根据需要注入带有变量列表的文件。

选项2

如果您的变量很重要,您也可以使用秘密:https : //kubernetes.io/docs/concepts/configuration/secret/

选项 3

如果您想采用最佳实践和选项,您可以将保管库与 Kubernetes 一起使用来管理所有不同的微服务变量管理。

保险库:https : //www.vaultproject.io/

示例:https : //github.com/travelaudience/kubernetes-vault-example

键值对管理并提供良好的安全选项。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Kubernetes容器环境变量

如何使 kubernetes 集群中的 POD 可以访问全局环境变量

如何使用kubernetes env访问容器环境变量?

如何在 kubernetes 容器中创建环境变量

Azure Kubernetes容器环境变量

Kubernetes init 容器问题与环境变量

Kubernetes Kubectl访问环境变量

使用Kong可访问的IP地址设置环境变量以将请求发送到Kubernetes集群

如何临时更改kubernetes容器的环境变量?

Kubernetes集群中Docker映像中的环境变量

如何在Kubernetes中取消设置环境变量?

如何在kubernetes的环境变量中设置mountPath的值?

如何在Kubernetes中将作为环境变量的Docker镜像的摘要传递给容器

如何在kubernetes / openshift的init容器args中使用环境变量?

kubernetes-将容器信息公开为环境变量

使用Consul存储kubernetes容器的环境变量

如何通过JAAS配置Kafka环境变量kubernetes

Google云容器集群环境变量的秘密

Kubernetes:如何从另一个环境变量引用一个环境变量?

Kubernetes 使用服务集群 IP 和端口作为环境变量

kubernetes舵:如何在父图表中设置子图表的环境变量

sslcert和sslkey如何在Kubernetes中作为环境变量传递?

如何在Kubernetes配置文件中添加环境变量?

容器中不存在Kubernetes部署对象环境变量

kubernetes - 使用同一 Pod 上其他容器的端口来设置环境变量

更新kubernetes机密不会更新正在运行的容器环境变量

使用环境变量将两个容器与 Kubernetes 连接

使用“ envFrom”和“ configMapRef”(kustomize / kubernetes / laravel)时,pod /容器内的环境变量不可用

如何通过Kubernetes statefulset环境变量更改Postgresql max_connections配置?