配置 Vault-Helm PVC
Configuring Vault-Helm PVC
我是 K8S 的新手,我一直在尝试在 k8s 上实现 vault。
我一直在尝试使用 Helm 在 K8S 上部署 Hashicorp Vault,如他们网站上所写。
-- https://www.vaultproject.io/docs/platform/k8s/helm/run/
-- https://github.com/hashicorp/vault-helm - 分支 0.4.0
我遇到了一个我不太清楚的问题。
在文件中,要编辑 Values.yaml 以便为我的环境配置它
在这样做的同时,我尝试将其配置为根据需要写入存储。
此配置位于文件中,如下所示:
# This configures the Vault Statefulset to create a PVC for data
# storage when using the file backend.
# See https://www.vaultproject.io/docs/configuration/storage/index.html to know more
dataStorage:
enabled: true
# Size of the PVC created
size: 10Gi
# Name of the storage class to use. If null it will use the
# configured default Storage Class.
storageClass: null
# Access Mode of the storage device being used for the PVC
accessMode: ReadWriteOnce
当 运行 这样做时,它应该创建一个名为 "data" 的 PVC 作为默认值
具体来说:
"data-vault-0"
这是从 kubectl describe pod vault-0 收到的消息
error while running "VolumeBinding" filter plugin for pod "vault-0": pod has unbound immediate > PersistentVolumeClaims
以下命令 kubectl describe pvc data-vault-0 显示如下:
persistentvolume-controller storageclass.storage.k8s.io "data" not found
我遵循了它应该配置 PVC 的方式,它使用了一个名为
的帮助文件
_helpers.tpl
在该帮助文件中,显示配置如下:
{{/*
Set's up the volumeClaimTemplates when data or audit storage is required. HA
might not use data storage since Consul is likely it's backend, however, audit
storage might be desired by the user.
*/}}
{{- define "vault.volumeclaims" -}}
{{- if and (ne .mode "dev") (or .Values.server.dataStorage.enabled .Values.server.auditStorage.enabled) }}
volumeClaimTemplates:
{{- if and (eq (.Values.server.dataStorage.enabled | toString) "true") (eq .mode "standalone") }}
- metadata:
name: data
spec:
accessModes:
- {{ .Values.server.dataStorage.accessMode | default "ReadWriteOnce" }}
resources:
requests:
storage: {{ .Values.server.dataStorage.size }}
{{- if .Values.server.dataStorage.storageClass }}
storageClassName: {{ .Values.server.dataStorage.storageClass }}
{{- end }}
{{ end }}
我用 pvc 和 pv 深入研究了 k8s。
在我看来,我需要定义一个 pv,然后才能正确加载整个图表
问题是...
我有点不知道如何去做,以便它可以与这张图表一起工作
我需要使用单独的 k8s 部署进行部署吗?比如为 pv 编写特定的 yaml 然后 运行 图表?
有没有人处理过这个问题,可以指点一下?
谢谢!
创建存储空间class
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: local-storage
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
在要存储 PV 的节点上创建目录
然后在k8s中创建PV。请参阅下面的示例。
- 为这个节点分配标签"app.kubernetes.io/instance: vault"
- 从 Helm 修复 PVC。 PVC 应包含 storageClassName: 规范中的本地存储。您可以在仪表板中执行此操作(复制并删除旧的然后添加新的)。
示例 PV(用您的数据替换 vault_node_hostname)
# mkdir -p /srv/cluster/storage/001
# cat PersistentVolume001.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: vol001
spec:
capacity:
storage: 1Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Delete
storageClassName: local-storage
local:
path: /srv/cluster/storage/001
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- vault_node_hostname
# kubectl create -f PersistentVolume001.yaml
我是 K8S 的新手,我一直在尝试在 k8s 上实现 vault。 我一直在尝试使用 Helm 在 K8S 上部署 Hashicorp Vault,如他们网站上所写。 -- https://www.vaultproject.io/docs/platform/k8s/helm/run/ -- https://github.com/hashicorp/vault-helm - 分支 0.4.0
我遇到了一个我不太清楚的问题。 在文件中,要编辑 Values.yaml 以便为我的环境配置它 在这样做的同时,我尝试将其配置为根据需要写入存储。 此配置位于文件中,如下所示:
# This configures the Vault Statefulset to create a PVC for data
# storage when using the file backend.
# See https://www.vaultproject.io/docs/configuration/storage/index.html to know more
dataStorage:
enabled: true
# Size of the PVC created
size: 10Gi
# Name of the storage class to use. If null it will use the
# configured default Storage Class.
storageClass: null
# Access Mode of the storage device being used for the PVC
accessMode: ReadWriteOnce
当 运行 这样做时,它应该创建一个名为 "data" 的 PVC 作为默认值 具体来说:
"data-vault-0"
这是从 kubectl describe pod vault-0 收到的消息
error while running "VolumeBinding" filter plugin for pod "vault-0": pod has unbound immediate > PersistentVolumeClaims
以下命令 kubectl describe pvc data-vault-0 显示如下:
persistentvolume-controller storageclass.storage.k8s.io "data" not found
我遵循了它应该配置 PVC 的方式,它使用了一个名为
的帮助文件_helpers.tpl
在该帮助文件中,显示配置如下:
{{/*
Set's up the volumeClaimTemplates when data or audit storage is required. HA
might not use data storage since Consul is likely it's backend, however, audit
storage might be desired by the user.
*/}}
{{- define "vault.volumeclaims" -}}
{{- if and (ne .mode "dev") (or .Values.server.dataStorage.enabled .Values.server.auditStorage.enabled) }}
volumeClaimTemplates:
{{- if and (eq (.Values.server.dataStorage.enabled | toString) "true") (eq .mode "standalone") }}
- metadata:
name: data
spec:
accessModes:
- {{ .Values.server.dataStorage.accessMode | default "ReadWriteOnce" }}
resources:
requests:
storage: {{ .Values.server.dataStorage.size }}
{{- if .Values.server.dataStorage.storageClass }}
storageClassName: {{ .Values.server.dataStorage.storageClass }}
{{- end }}
{{ end }}
我用 pvc 和 pv 深入研究了 k8s。 在我看来,我需要定义一个 pv,然后才能正确加载整个图表 问题是... 我有点不知道如何去做,以便它可以与这张图表一起工作 我需要使用单独的 k8s 部署进行部署吗?比如为 pv 编写特定的 yaml 然后 运行 图表?
有没有人处理过这个问题,可以指点一下?
谢谢!
创建存储空间class
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: local-storage reclaimPolicy: Delete volumeBindingMode: WaitForFirstConsumer
在要存储 PV 的节点上创建目录 然后在k8s中创建PV。请参阅下面的示例。
- 为这个节点分配标签"app.kubernetes.io/instance: vault"
- 从 Helm 修复 PVC。 PVC 应包含 storageClassName: 规范中的本地存储。您可以在仪表板中执行此操作(复制并删除旧的然后添加新的)。
示例 PV(用您的数据替换 vault_node_hostname)
# mkdir -p /srv/cluster/storage/001
# cat PersistentVolume001.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: vol001
spec:
capacity:
storage: 1Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Delete
storageClassName: local-storage
local:
path: /srv/cluster/storage/001
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- vault_node_hostname
# kubectl create -f PersistentVolume001.yaml