马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
概述
官网:https://kubernetes.io/zh-cn/docs/tasks/inject-data-application/define-environment-variable-container/
创建 Pod 时,可以为其下的容器设置环境变量。通过配置文件的 env 大概 envFrom 字段来设置环境变量。
- env:为每一个变量指定一个值,类似key=value的形式
- envFrom:通过引用 ConfigMap 或 Secret 来设置容器的环境变量。 使用 envFrom 时,引用的 ConfigMap 或 Secret 中的所有键值对都被设置为容器的环境变量
env设置环境变量
简单设置方式
示例:- apiVersion: v1
- kind: Pod
- metadata:
- name: env-configmap-pod
- spec:
- containers:
- - name: app
- # 打印环境变量
- command: ["/bin/sh", "-c", "printenv"]
- image: busybox:latest
- # 设置环境变量
- env:
- - name: USERNAME
- value: root
- - name: PASSWORD
- value: huangsir
复制代码 通过ConfigMap设置环境变量
学习ConfigMap检察这篇文章:K8s新手系列之ConfigMap资源
创建ConfigMap- kind: ConfigMap
- metadata:
- name: special-config
- data:
- USER_NAME: huangsir
- APP: haha
- COLOR: red
复制代码 创建Pod引用ConfigMap- apiVersion: v1
- kind: Pod
- metadata:
- name: env-configmap-pod
- spec:
- containers:
- - name: app
- # 打印环境变量
- command: ["/bin/sh", "-c", "printenv"]
- image: busybox:latest
- # 设置环境变量
- env:
- - name: USERNAME
- # 指定value值从哪里来
- valueFrom:
- # 指定值从configMap引用
- configMapKeyRef:
- # configMap的名称
- name: special-config
- # configMap中Data的Key
- key: USER_NAME
复制代码 通过Secret设置环境变量
学习Secret请检察这篇文章:K8s新手系列之Secret资源
创建secret- apiVersion: v1
- kind: Secret
- metadata:
- name: db-secret
- data:
- # base64编码后的,源内容为root
- username: cm9vdAo=
- password: cm9vdAo=
- type: Opaque
复制代码 创建Pod引用Secret- apiVersion: v1
- kind: Pod
- metadata:
- name: env-configmap-pod
- spec:
- containers:
- - name: app
- # 打印环境变量
- command: ["/bin/sh", "-c", "printenv"]
- image: busybox:latest
- # 设置环境变量
- env:
- - name: USERNAME
- # 指定value值从哪里来
- valueFrom:
- # 指定值从Secret引用
- secretKeyRef:
- # Secret的名称
- name: db-secret
- # Secret中Data的Key
- key: username
复制代码 envFrom设置环境变量
引用ConfigMap
envFrom会将ConfigMap中所有的键值对都设置为环境变量- apiVersion: v1
- kind: Pod
- metadata:
- name: env-configmap-pod
- spec:
- containers:
- - name: app
- # 打印环境变量
- command: ["/bin/sh", "-c", "printenv"]
- image: busybox:latest
- # 设置环境变量
- envFrom:
- configMapRef:
- # 设置configMap的名称
- name: special-config
复制代码 引用Secret
envFrom会将Secret中所有的键值对都设置为环境变量- apiVersion: v1
- kind: Pod
- metadata:
- name: env-configmap-pod
- spec:
- containers:
- - name: app
- # 打印环境变量
- command: ["/bin/sh", "-c", "printenv"]
- image: busybox:latest
- # 设置环境变量
- envFrom:
- secretRef:
- # 设置Secret的名称
- name: db-Secret
复制代码 在配置中使用环境变量
在资源文件中配置的环境变量可以在文件中的其他地方使用,例如可用在为 Pod 的容器设置的命令和参数中。
使用$(env-name)来引用设置的环境变量
示例:- apiVersion: v1
- kind: Pod
- metadata:
- name: print-greeting
- spec:
- containers:
- - name: env-print-demo
- image: bash
- env:
- - name: GREETING
- value: "Warm greetings to"
- - name: HONORIFIC
- value: "The Most Honorable"
- - name: NAME
- value: "Kubernetes"
- command: ["echo"]
- args: ["$(GREETING) $(HONORIFIC) $(NAME)"]
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |