【问题标题】:Mounting a k8s secret using kustomize使用 kustomize 挂载 k8s 密钥
【发布时间】: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


【解决方案1】:

我设法通过大量修补来解决这个问题。

我将实例的基本规范移至叠加层,然后以这种方式添加补丁。

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    • 2019-08-05
    相关资源
    最近更新 更多