kubernetes - 容器中不存在 Kubernetes 部署对象环境变量
问题描述
我目前正在学习 Kubernetes,我面临着一堵墙。我尝试将 YAML 文件定义中的环境变量传递给我的容器。但是之后变量似乎不存在。
kubectl exec <pod name> -- printenv
给我环境变量的列表。但是我在 YAML 文件中定义的那些不存在。
我在部署中定义了环境变量,如下所示:
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-world-boot
labels:
app: hello-world-boot
spec:
selector:
matchLabels:
app: hello-world-boot
template:
metadata:
labels:
app: hello-world-boot
containers:
- name: hello-world-boot
image: lightmaze/hello-world-spring:latest
env:
- name: HELLO
value: "Hello there"
- name: WORLD
value: "to the entire world"
resources:
limits:
memory: "128Mi"
cpu: "500m"
ports:
- containerPort: 8080
selector:
app: hello-world-boot
希望有人能看到我在 YAML 中失败的地方:)
解决方案
如果我更正您的Deployment
配置中的错误,使其看起来像这样:
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-world-boot
labels:
app: hello-world-boot
spec:
selector:
matchLabels:
app: hello-world-boot
template:
metadata:
labels:
app: hello-world-boot
spec:
containers:
- name: hello-world-boot
image: lightmaze/hello-world-spring:latest
env:
- name: HELLO
value: "Hello there"
- name: WORLD
value: "to the entire world"
resources:
limits:
memory: "128Mi"
cpu: "500m"
ports:
- containerPort: 8080
并将其部署到我的本地minikube
实例中:
$ kubectl apply -f pod.yml
然后它似乎按您的预期工作:
$ kubectl exec -it hello-world-boot-7568c4d7b5-ltbbr -- printenv
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin
HOSTNAME=hello-world-boot-7568c4d7b5-ltbbr
TERM=xterm
HELLO=Hello there
WORLD=to the entire world
KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
KUBERNETES_SERVICE_HOST=10.96.0.1
KUBERNETES_SERVICE_PORT=443
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_PORT=tcp://10.96.0.1:443
LANG=C.UTF-8
JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk
JAVA_VERSION=8u212
JAVA_ALPINE_VERSION=8.212.04-r0
HOME=/home/spring
如果您查看上面的输出,您可以看到HELLO
您WORLD
在Deployment
.
推荐阅读
- python - 使用熊猫将行拆分为多行
- php - 在 php 和 laravel 24H 中减去两次
- r - 将data.frames列表转换为R中的单个data.frame
- delphi - 运行“printui.exe /s”时,返回错误代码33(error_lock_access),如何解决?
- java - 如何为数组中创建的对象分配和获取值?
- sql-server - 如何知道我安装了 SQL?
- python - C++ 中可能的 Python `exec` 等价物
- flutter - Flutter 中的可扩展 ReorderableListView
- matlab - 如何使用行中的位置矩阵获取像素值
- c# - 使用 ML.NET 模型生成器预测 Date 的值会产生奇怪的结果