我刚接触K8S,我一直在尝试在k8s上实现保险库。 我一直在尝试使用Helm在其网站上所写的在K8S上部署Hashicorp Vault。 -https://www.vaultproject.io/docs/platform/k8s/helm/run/ -https://github.com/hashicorp/vault-helm-分支0.4.0
我遇到了一个我不太清楚的问题。 在文件中,要对Values.yaml进行编辑以针对我的环境进行配置 这样做时,我尝试将其配置为根据需要写入存储。 此配置位于文件中,如下所示:
[
{
"cmid": 1,
"src": "x",
"dst": "y",
"proto": "TCP",
"ports": 80,
"service": "* Ad-hoc Submission"
},
{
"cmid": 1,
"src": "c",
"dst": "u",
"proto": "TCP",
"ports": 80,
"service": "* Ad-hoc Submission"
}
]
按原样运行时,它应该创建一个名为“ data”的PVC,这就是默认值 具体来说:
“数据仓库0”
这是从kubectl收到的描述pod vault-0的消息
为Pod“ vault-0”运行“ VolumeBinding”过滤器插件时出错:pod具有未绑定的立即> PersistentVolumeClaims
接着,命令kubectl describe pvc data-vault-0,显示如下:
未找到持久卷控制器storageclass.storage.k8s.io“数据”
我按照其配置PVC的方式进行了跟踪,它使用了一个名为的帮助程序文件
_helpers.tpl
在该帮助文件中,其配置如下:
# 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
我用pvc和pv深入到k8s。
在我看来,我需要定义一个PV,然后才可以正确加载整个图表
问题是...
我在如何做到这一点上有点迷失,以便它可以与此图表一起使用
我是否需要使用单独的k8s部署进行部署?比如为PV编写特定的Yaml,然后运行图表?
以前有没有人处理过这个问题并且可以提供指针?
谢谢!
答案 0 :(得分:2)
创建存储类
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: local-storage
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
在要存储PV和的节点上创建目录 然后在k8s中创建PV。参见下面的示例。
示例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