首页 > 解决方案 > Hashicorp Vault 在 /sys/expire/id/auth/kubernetes/login/ 下创建了太多文件

问题描述

我有一个简单的 k8s 部署,其中运行 10-15 个 pod,包括一些 statefulset。对于我们的核心服务,我们使用 vault sidecar injector 从 vault 注入秘密。我们使用 NFS 卷作为存储后端。我们观察到的一件事是在保管库 /sys/expire/id/auth/kubernetes/login/ 路径中创建了太多的文件(150000-200000)。

self._client.create_kubernetes_role(name=role_name,
                                            bound_service_account_namespaces=namespaces,
                                            bound_service_account_names=account_names,
                                            policies=policies, ttl='24h')

如您所见,我们正在创建 k8s 角色并以 24 小时 TTL 绑定到命名空间和 sa。

我们使用下面的 consul 模板将 apikey 渲染到 pod 中。

{{- define "inject.apiKey" -}}
vault.hashicorp.com/agent-inject-secret-apikey: "secrets/data/apikey"
vault.hashicorp.com/secret-volume-path: {{ .Values.global.vaultPath }}
vault.hashicorp.com/agent-inject-template-apikey: |
  {{ `{{- with secret "secrets/data/apikey" -}}
      {{ .Data.data.value }}
      {{- end }}` }}
{{- end -}}

每次 pod 需要 apikey 时,它是否会创建一个新会话并存储在上述路径中?

有人可以帮忙吗?我们怎样才能清理这个?

标签: kuberneteshashicorp-vault

解决方案


推荐阅读