我有1个客户端节点,1个主节点和3个数据节点的ELK集群。主节点和数据节点已附加卷。每个数据节点的卷为200GB。这些卷均未加密,现在我要加密这些卷。
当我们只有一个statefulset副本并使用一个卷挂载时,此方法有效。但对于3个副本,它无法连接到该卷。 kubernetes中有一个选项提供带有“ encrypted”标志的卷定义,但是我们必须在Deployment / statefulset中指定声明名称。我们可以在statefulset中指定声明名称,但前提是要指定一个声明。但是由于我的麋鹿群集有3个数据节点,因此我们无法在状态集中指定一个特定的声明名称。
我尝试通过将存储类“ encrypted”标志设置为true来动态地做到这一点,如下所示:
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: esvolume-2
provisioner: kubernetes.io/aws-ebs
parameters:
type: gp2
zones: eu-west-1c
iopsPerGB: "600"
fsType: ext4
encrypted: "true"
然后我们必须在声明中使用此存储类,如下所示:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: esdata-2
labels:
app: mo-es-data
spec:
storageClassName: esvolume-2
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 200Gi
然后需要在状态集中指定声明名称,如下所示:
volumeMounts:
- name: esdata-2
mountPath: /data
#imagePullSecrets:
#- name: mo-docker-registry
volumeClaimTemplates:
- metadata:
name: esdata-2
所以我不能采用这种解决方案。
也无法进行手动替换,因为3个卷已附加到一个有状态集。
我希望对卷进行加密,但无法对其进行加密。
请帮助我,在这种情况下如何实现卷的加密?