我在使用 ConfigMap 的 Kubernetes Pod 时遇到问题。我的 Pod 无法启动,出现以下错误:
Warning Failed 10s (x7 over 2m16s) kubelet, docker-desktop Error: Couldn't find key URL in ConfigMap default/env-config
我创建了 ConfigMap,如下所示:
kubectl create configmap env-config --from-file env-config.yaml
这是我的配置图:
NAME DATA AGE
env-config 1 5m38s
Nates-MacBook-Pro:k8s natereed$ kubectl describe configmap env-config
Name: env-config
Namespace: default
Labels: <none>
Annotations: <none>
Data
====
env-config.yaml:
----
apiVersion: v1
kind: ConfigMap
data:
AWS_BUCKET: mybucket
AWS_PROFILE: dev
AWS_REGION: us-east-2
JWT_SECRET: foo
POSTGRESS_DB: <mydb>
POSTGRESS_HOST: <my host>
URL: http://localhost:8100
metadata:
name: env-config
Run Code Online (Sandbox Code Playgroud)
看起来创建 ConfigMap 的命令是错误的?我不清楚为什么它创建一个带有单个键“env-config.yaml”的映射。
YAML 文件如下所示:
apiVersion: v1
kind: ConfigMap
data:
AWS_BUCKET: mybucket
AWS_PROFILE: dev
AWS_REGION: us-east-2
JWT_SECRET: foo
POSTGRESS_DB: mydb
POSTGRESS_HOST: postgreshost
URL: http://localhost:8100
metadata:
name: env-config
namespace: default
Run Code Online (Sandbox Code Playgroud)
Jul*_*sta 11
我想说出现这个问题是因为您将 ConfigMap yaml 定义作为 的参数传递--from-file。
您可以简单地使用以下方法创建它:
kubectl create -f env-config.yaml
除此之外,如果您想使用创建--from-file,那么您可以仅使用您需要的参数来定义文件,如下所示:
文件名:env-config
AWS_PROFILE: dev
AWS_REGION: us-east-2
JWT_SECRET: foo
POSTGRESS_DB: <mydb>
POSTGRESS_HOST: <my host>
URL: http://localhost:8100
Run Code Online (Sandbox Code Playgroud)
然后您可以按照之前的方式创建 ConfigMap:
kubectl create configmap env-config --from-file env-config
这将创建一个像这样的 ConfigMap:( kubectl describe configmap env-config)
Namespace: default
Labels: <none>
Annotations: <none>
Data
====
env-config:
----
AWS_BUCKET: mybucket
AWS_PROFILE: dev
AWS_REGION: us-east-2
JWT_SECRET: foo
POSTGRESS_DB: <mydb>
POSTGRESS_HOST: <my host>
URL: http://localhost:8100
Events: <none>
Run Code Online (Sandbox Code Playgroud)
在这里您可以找到一些有用的信息:
| 归档时间: |
|
| 查看次数: |
6686 次 |
| 最近记录: |