在Kubernetes环境中引用变量的方法

在Kubernetes环境中,变量的引用主要通过环境变量和ConfigMaps来实现。这两种方式都可以让你在Pod的定义中引用变量,从而使你的应用更加灵活和可配置。

首先,我们来看看如何使用环境变量。Kubernetes允许你在Pod定义中设置环境变量。这些可以是硬编码值,也可以是其他Kubernetes资源(如其他Pods或Secrets)的值。

例如,在下面的YAML文件中:

复制代码
apiVersion: v1
kind: Pod
metadata:
  name: envar-demo
spec:
  containers:
    - name: envar-demo-container
      image: gcr.io/google-samples/node-hello:1.0
      env:
        - name: DEMO_GREETING   # 环境变量名字 
          valueFrom:
            fieldRef:
              fieldPath : status.podIP   # 引用podIP作为DEMO_GREETING 的值 

上述代码片段创建了一个名为 envar-demo 的pod,并设置了一个名为 DEMO_GREETING 的环境变量,其值从 pod 自身状态信息 status.podIP 中获取。

其次, 我们来看一下ConfigMaps。ConfigMap 是 Kubernetes 提供给我们存储配置信息并供应给 pods 使用的一种资源对象. 定义 ConfigMap 后, 我们就能够将它挂载到 pod 中去.

例如,在下面创建 ConfigMap 的 YAML 文件:

复制代码
apiVersion : v1
kind : ConfigMap
metadata :
  name : game-demo 
data :
  # 属性类似于键值对 
  player_initial_lives: "3"
  ui_properties_file_name: "user-interface.properties"

然后在 Pod 中引用这个 ConfigMap:

复制代码
apiVersion: v1
kind: Pod
metadata:
  name: configmap-demo-pod 
spec:
 containers:
   - name : demo-container 
     image : gcr.io/google-samples/node-hello:1.0  
     envFrom :
       - configMapRef :
           # 引用上面创建的ConfigMap game-demo  
           name : game-demo   

在这个例子中,我们创建了一个名为 game-demo 的ConfigMap,其中包含两个键值对。然后我们在Pod定义中通过 envFromconfigmapRef 引用了这个ConfigMap。结果是Pod内的容器将拥有两个新的环境变量:player_initial_livesui_properties_file_name, 它们的值分别是"3"和"user-interface.properties"。

总结一下,在Kubernetes环境中引用变量主要有两种方式:一种是通过环境变量,另一种是通过ConfigMaps。前者适合于简单、直接地设置和获取值;后者则更适合于存储和管理复杂、多样化的配置信息。

相关推荐
易番番ERP1 小时前
品牌代理商SKU繁多,ERP如何高效处理新旧规格替换?
数据库·微服务·云原生·sku·易番番erp
栩栩云生1 小时前
别再硬记 AWS 和 k8s 命令了!一行命令把十几个云平台的 CLI 全接进 AI
kubernetes·agent·mcp
对象存储与RustFS2 小时前
给 Kubernetes 找一个对象存储后端:RustFS Helm 部署 + 应用接入实录
后端·云原生·kubernetes
郝开2 小时前
Docker Compose 本地环境搭建:kkFileView
运维·docker·容器
分布式存储与RustFS5 小时前
给 Kubernetes 找一个对象存储后端:RustFS Helm 部署 + 应用接入实录
云原生·kubernetes·开源·对象存储·分布式存储·s3·rustfs
IT大白鼠6 小时前
容器安全入门:K8s常见基础安全风险通俗解读
安全·容器·kubernetes
伞伞悦读7 小时前
Docker 安装 MinIO 完整教程(新手友好版)
docker·容器·eureka
Lethehong7 小时前
把Blinko放进极空间:Docker 部署自托管笔记,并实现多设备远程访问
笔记·docker·容器
ltl18 小时前
CoreDNS 深度拆解:ndots、search domain 与那些坑人的 DNS
kubernetes
摇滚侠19 小时前
《Docker技术入门与实战 第4版》阅读笔记 2 Docker 镜像
笔记·docker·容器