gpt4 book ai didi

Kubernetes 部署缺少 Kustomize 的哈希后缀

转载 作者:行者123 更新时间:2023-12-02 11:52:08 24 4
gpt4 key购买 nike

我是 Kubernetes 的新手。在我的项目中,我尝试使用 Kustomize 为我的部署生成 configMap。 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>
[...]

但它仍然从 env-receiver-config 获取环境变量,而不是 env-receiver-config-258g858mgg

我目前的解决方法是在 kustomize.yml 中禁用哈希后缀。

generatorOptions:
disableNameSuffixHash: true

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

最佳答案

看起来问题出在您通过 kustomize 生成配置映射,但不使用 kustomize 直接通过 kubectl 进行部署。

基本上,kustomize 会查找所有资源中的所有 env-receiver-config 并将它们替换为带哈希后缀的版本。

要使其正常工作,所有您的资源都必须经过 kustomize。为此,您需要在 kustomization.yml 中添加:

resources:
- yourDeployment.yml

然后只需运行 kubectl apply -k .。它应该使用正确的 ConfigMap 名称创建 ConfigMap 和 Deployment

关于Kubernetes 部署缺少 Kustomize 的哈希后缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56210674/

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