Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes部署缺少Kustomize';s散列后缀_Kubernetes_Kustomize - Fatal编程技术网

Kubernetes部署缺少Kustomize';s散列后缀

Kubernetes部署缺少Kustomize';s散列后缀,kubernetes,kustomize,Kubernetes,Kustomize,我是库伯内特斯的新手。在我的项目中,我尝试使用Kustomize为我的部署生成configMaps。Kustomize在configMap名称后添加了一个散列,但我无法让它同时更改部署以使用新的configMap名称 部署: apiVersion: apps/v1 kind: Deployment metadata: name: env-receiver-deployment labels: app: env-receiver-app project: env-proje

我是库伯内特斯的新手。在我的项目中,我尝试使用Kustomize为我的部署生成configMaps。Kustomize在configMap名称后添加了一个散列,但我无法让它同时更改部署以使用新的configMap名称

部署:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: env-receiver-deployment
  labels:
    app: env-receiver-app
    project: env-project
spec:
  replicas: 1
  selector:
    matchLabels:
      app: env-receiver-app
  template:
    metadata:
      labels:
        app: env-receiver-app
        project: env-project
    spec:
      containers:
      - name: env-receiver-container
        image: eu.gcr.io/influxdb-241011/env-receiver:latest
        resources: {}
        ports:
        - containerPort: 8080
        envFrom:
        - configMapRef:
            name: env-receiver-config
        args: [ "-port=$(ER_PORT)", "-dbaddr=$(ER_DBADDR)", "-dbuser=$(ER_DBUSER)", "-dbpass=$(ER_DBPASS)" ]

kustomize.yml:

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
configMapGenerator:
- name: env-receiver-config
  literals:
  - ER_PORT=8080
  - ER_DBADDR=http://localhost:8086
  - ER_DBUSER=writeuser
  - ER_DBPASS=writeuser
然后我运行kustomize,应用部署并检查它是否应用了环境

$ kubectl apply -k .
configmap/env-receiver-config-258g858mgg created
$ kubectl apply -f k8s/deployment.yml
deployment.apps/env-receiver-deployment unchanged
$ kubectl describe pod env-receiver-deployment-76c678dcf-5r2hl 
Name:               env-receiver-deployment-76c678dcf-5r2hl
[...]
    Environment Variables from:
      env-receiver-config  ConfigMap  Optional: false
    Environment:           <none>
[...]

看起来我缺少一个步骤来告诉部署新configMap的名称。这是什么?

问题似乎来自这样一个事实:您通过kustomize生成配置映射,但通过kubectl直接部署而不使用kustomize

基本上,kustomize将在您的所有资源中查找所有
env receiver config
,并用哈希后缀版本替换它们

要使其正常工作,您的所有资源都必须通过kustomize。 为此,您需要将以下内容添加到您的
kustomization.yml

resources:
  - yourDeployment.yml

然后运行
kubectl apply-k.
。它应该使用正确的ConfigMap名称创建ConfigMap和部署。问题似乎来自这样一个事实:您通过kustomize生成配置映射,但通过kubectl直接生成部署,而不使用kustomize

基本上,kustomize将在您的所有资源中查找所有
env receiver config
,并用哈希后缀版本替换它们

要使其正常工作,您的所有资源都必须通过kustomize。 为此,您需要将以下内容添加到您的
kustomization.yml

resources:
  - yourDeployment.yml
然后运行
kubectl apply-k.
。它应该使用正确的ConfigMap名称创建ConfigMap和部署