gpt4 book ai didi

docker - Kubernetes 环境变量到容器

转载 作者:行者123 更新时间:2023-12-02 01:38:18 26 4
gpt4 key购买 nike

我想将一些值从 Kubernetes yaml 文件传递​​到容器。这些值将在我的 Java 应用程序中使用 System.getenv("x_slave_host") 读取。我有这个 dockerfile:

FROM jetty:9.4
...
ARG slave_host
ENV x_slave_host $slave_host
...
$JETTY_HOME/start.jar -Djetty.port=9090

kubernetes yaml 文件包含我添加 env 部分的部分:

apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: master
spec:
template:
metadata:
labels:
app: master
spec:
volumes:
- name: shared-data
emptyDir: {}
containers:
- name: master
image: xregistry.azurecr.io/Y:latest
ports:
- containerPort: 9090
volumeMounts:
- name: shared-data
mountPath: ~/.X/experiment
- env:
- name: slave_host
value: slavevalue
- name: jupyter
image: xregistry.azurecr.io/X:latest
ports:
- containerPort: 8000
- containerPort: 8888
volumeMounts:
- name: shared-data
mountPath: /var/folder/experiment
imagePullSecrets:
- name: acr-auth

在本地,当我使用 docker compose 做同样的事情时,它使用 args 工作。这是一个片段:

  master:
image: master
build:
context: ./master
args:
- slave_host=slavevalue
ports:
- "9090:9090"

所以现在我正在尝试在 Kubernetes 中做同样的事情。但是,我收到以下错误(在 Azure 上部署它):

    error: error validating "D:\\a\\r1\\a\\_X\\deployment\\kub-deploy.yaml": error validating data: field spec.template.spec.containers[1].name for v1.Container is required; if you choose to ignore these errors, turn validation off with --validate=false

换句话说,如何将我的 docker compose 文件重写为 kubernetes 并传递此参数。

谢谢!

最佳答案

env 部分应该添加到容器下,如下所示:

  containers:
- name: master
env:
- name: slave_host
value: slavevalue

关于docker - Kubernetes 环境变量到容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51698817/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com