【发布时间】:2021-01-07 17:57:16
【问题描述】:
我已经搜索了一段时间,但我对 kustomize 还是很陌生。我花了一些时间来理解叠加层等的概念。
我正在尝试使用 kustomization 文件将现有秘密挂载到 pod 中。我无法在部署中执行此操作,因为它是单个部署,kustomize 处理了 3 个不同版本的部署。每个都需要不同的秘密安装。
因此,显而易见的答案是使用基础或覆盖中的 kustomize 文件将机密作为卷安装。
我找到了有关使用 kustomize 生成密钥的信息,但该密钥已经存在并作为 kubernetes 密钥传递到其他地方。
总结一下……
base/
├─ kustomization.yaml
├─ statefulset.yaml
├─ service.yaml
├─ instance1/
│ ├─ kustomization.yaml
├─ instance2/
│ ├─ kustomization.yaml
├─ instance3/
│ ├─ kustomization.yaml
所以我希望在实例位置处理秘密到卷的安装,因为秘密将不同,例如 1,2 和 3。
这可能吗?
TIA
编辑:
我已经为密钥添加了一个文件(它用于证书,因此每个实例都不同)。
base/
├─ kustomization.yaml
├─ statefulset.yaml
├─ service.yaml
├─ instance1/
│ ├─ kustomization.yaml
│ ├─ pki.yaml
├─ instance2/
│ ├─ kustomization.yaml
├─ instance3/
│ ├─ kustomization.yaml
我的补丁文件 (pki.yaml) 如下所示:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: de
spec:
template:
containers:
- name: de
volumeMounts:
- mountPath: "/opt/de/pki"
name: pki
readOnly: true
volumes:
- name: pki
secret:
secretName: de_1_pki
然后在./base/instance1/kustomization.yaml 我有:
commonLabels:
app: de-1
resources:
- ../base
nameSuffix: -1
images:
- newName: de-1
name: de
patches:
- pki.yaml
为了完整起见,我的./base/kustomization.yaml 文件:
kind: Kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
commonLabels:
app: de
affinity: directory
resources:
- service.yaml
- statefulset.yaml
我在部署上述内容时遇到错误。所以在我挖得太深之前,只是想知道我是否在吠叫正确的树?
【问题讨论】:
-
只需将此部分添加为叠加层中的 sts 补丁。
-
特定实例没有覆盖。覆盖仅包含环境细节。想必我可以把补丁放到base的实例目录下吧?
-
@x4k3p 我已经根据您的建议编辑了我的问题,我是不是找对了树?
-
在这里想知道我的逻辑是否有偏差。 instance1/2/3 真的应该是叠加层吗?
-
使用覆盖似乎是合理的。当您尝试部署当前配置时出现什么错误?
标签: kubernetes kustomize