如何在Kubernetes部署中使用init容器准备环境变量?

s8vozzvw  于 12个月前  发布在  Kubernetes
关注(0)|答案(1)|浏览(129)

我试着用init容器准备环境变量,这样这些变量就可以在“实际”容器中使用。下面是我使用的基本代码:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp-deployment
  labels:
    app.kubernetes.io/name: MyApp
spec:
  replicas: 1  # You can adjust the number of replicas as needed
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
      - name: myapp-container
        image: busybox:1.28
        command: ['sh', '-c', 'echo here && echo $MY_VARIABLE && sleep 3600']
      initContainers:
      - name: init-myservice
        image: busybox:1.28
        command: ['sh', '-c', 'export MY_VARIABLE="some_value" && sleep 1']

字符串
但是,主容器无法识别我在initContainer中创建的变量。
你能帮我怎么做到这一点?

f0ofjuux

f0ofjuux1#

你可以做的是为初始化容器和主容器定义一个共享卷。在初始化容器中,在共享卷中创建一个文件,并将所有必需的环境变量作为键值对包含在内。
然后在主容器中,从共享卷(source/shared-vol/myVars.txt)中的文件导出键值对,并运行启动脚本。

相关问题